"use strict"; const { existsSync } = require("graceful-fs"); const validateSize = (s) => { if (typeof s !== "number") { throw new TypeError("Size must be a number"); } else if (s <= 0) { throw new RangeError("Size must be greater than zero"); } return s; }; const validateName = (n) => { if (typeof n !== "string") { throw new TypeError("Name must be a string"); } else if (n.trim().length <= 0) { throw new Error("Name must be a non-blank string") } return n; }; const validatePath = (p) => { if (typeof p !== "string") { throw new TypeError("Path must be a string"); } else if (p.trim().length <= 0) { throw new Error("Path must be a non-blank string"); } else if (!existsSync(p)) { throw new Error("Path does not exist"); } return p; }; const validateArray = (a) => { if (!Array.isArray(a)) { throw new TypeError("Not an array"); } return a; }; const validateObject = (o) => { if (typeof o !== "object") { throw new TypeError("Not an object"); } return o; }; const validateFunction = (f) => { if (typeof f !== "function") { throw new TypeError("Not a function") } else { const fString = f.toString(); if (/\s*function/.test(fString) && !/\W+return\W+/.test(fString)) throw new Error("Function must return a value"); } return f; } exports.validateSize = validateSize; exports.validateName = validateName; exports.validatePath = validatePath; exports.validateArray = validateArray; exports.validateObject = validateObject; exports.validateFunction = validateFunction;