@serwist/build
Version:
A module that integrates into your build process, helping you generate a manifest of local files that should be precached.
37 lines (34 loc) • 1.36 kB
text/typescript
import { z } from "zod";
export const validationErrorMap: z.ZodErrorMap = (error, ctx) => {
/*
This is where you override the various error codes
*/
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 };
}
}
// Fallback to the default message.
return { message: ctx.defaultError };
};