UNPKG

@serwist/build

Version:

A module that integrates into your build process, helping you generate a manifest of local files that should be precached.

56 lines (54 loc) 1.85 kB
class SerwistConfigError extends Error { constructor({ moduleName, message }){ super(`Invalid ${moduleName ?? "Serwist"} configuration:\n${message}`); Object.setPrototypeOf(this, new.target.prototype); } } const parsedType = (data)=>{ const t = typeof data; switch(t){ case "number": { return Number.isNaN(data) ? "NaN" : "number"; } case "object": { if (Array.isArray(data)) { return "array"; } if (data === null) { return "null"; } if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) { return data.constructor.name; } } } return t; }; const validationErrorMap = (error)=>{ switch(error.code){ case "invalid_type": { return `${error.message ?? "Received invalid type"}: expected ${error.expected}, received ${parsedType(error.input)}.`; } case "invalid_value": { return `${error.message ?? "Received invalid value"}: expected ${error.expected}, received ${parsedType(error.input)}.`; } case "invalid_union": { return `${error.message ?? "Received invalid union"}:\n${error.errors.flatMap((err)=>err.map((e)=>` → ${e.message}`)).join("\n")}`; } case "unrecognized_keys": { return `${error.message ?? "Received unrecognized keys"}: ${error.keys.join(".")}`; } case "custom": { return error.message ?? undefined; } } return undefined; }; export { SerwistConfigError as S, validationErrorMap as v };