UNPKG

knip

Version:

Find and fix unused dependencies, exports and files in your TypeScript and JavaScript projects

27 lines (26 loc) 1.2 kB
import { core } from 'zod/mini'; const isZodErrorLike = (error) => error instanceof core.$ZodError; export class ConfigurationError extends Error { } export class LoaderError extends Error { } export const isKnownError = (error) => error instanceof ConfigurationError || error instanceof LoaderError || isZodErrorLike(error); export const hasErrorCause = (error) => !isZodErrorLike(error) && error.cause instanceof Error; export const isConfigurationError = (error) => error instanceof ConfigurationError; export const getKnownErrors = (error) => { if (isZodErrorLike(error)) return [...error.issues].map(error => { let message = error.message; const details = []; if (error.path.length > 0) details.push(`location: ${error.path.join('.')}`); if (typeof error.expected === 'string') details.push(`expected: ${error.expected}`); if (Array.isArray(error.keys)) details.push(`${error.code}: ${error.keys.join(', ')}`); if (details.length > 0) message += ` (${details.join(', ')})`; return new Error(message); }); return [error]; };