UNPKG

@serwist/build

Version:

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

55 lines (51 loc) 1.92 kB
import { z } from 'zod'; class SerwistConfigError extends Error { constructor({ moduleName, message }){ super(`Received an invalid ${moduleName ?? "Serwist"} configuration: ${message}`); Object.setPrototypeOf(this, new.target.prototype); } } const validationErrorMap = (error, ctx)=>{ switch(error.code){ case z.ZodIssueCode.invalid_type: { return { message: `${error.message ?? "Received invalid type"}: expected ${error.expected}, received ${error.received}.` }; } case z.ZodIssueCode.invalid_literal: { return { message: `${error.message ?? "Received invalid literal"}: expected ${error.expected}, received ${error.received}.` }; } case z.ZodIssueCode.unrecognized_keys: { return { message: `${error.message ?? "Received unrecognized keys"}: ${error.keys.join(",")}` }; } case z.ZodIssueCode.invalid_arguments: { return { message: `${error.message ?? "Received invalid arguments"}: ${error.argumentsError.errors.map((e)=>validationErrorMap(e, ctx)).join(",")}.` }; } case z.ZodIssueCode.invalid_return_type: { return { message: `${error.message ?? "Received invalid return type"}: ${error.returnTypeError.errors.map((e)=>validationErrorMap(e, ctx)).join(",")}.` }; } case z.ZodIssueCode.custom: { return { message: error.message ?? ctx.defaultError }; } } return { message: ctx.defaultError }; }; export { SerwistConfigError as S, validationErrorMap as v };