UNPKG

@cabloy/zod-errors-custom

Version:
23 lines (22 loc) 875 B
import { z } from 'zod'; export function setLocaleAdapter(localeAdapterFn) { z.util.setLocaleAdapter(localeAdapterFn); } export function setLocaleErrors(localeCurrentAdapterFn, localeErrors, localeDefault = 'en-us') { const localeErrorsInstance = {}; function getLocalErrorInstance(locale) { if (!localeErrorsInstance[locale]) { localeErrorsInstance[locale] = localeErrors[locale]().localeError; } return localeErrorsInstance[locale]; } z.config({ localeError(issue) { const localeCurrent = localeCurrentAdapterFn(); if (localeErrors[localeCurrent]) return getLocalErrorInstance(localeCurrent)(issue); if (localeCurrent !== localeDefault && localeErrors[localeDefault]) return getLocalErrorInstance(localeDefault)(issue); }, }); }