Skip to main content
Module

x/zod_utilz/mod.ts>zu.makeErrorMap

Framework agnostic utilities for Zod
Go to Latest
function zu.makeErrorMap
import { zu } from "https://deno.land/x/zod_utilz@0.1.4/mod.ts";
const { makeErrorMap } = zu;

Simplifies the process of making a ZodErrorMap

Usage:

import { zu } from 'zod_utilz'

const errorMap = zu.makeErrorMap( {
    required: 'Custom required message',
    invalid_type: ( { data } ) => `${ data } is an invalid type`,
    invalid_enum_value: ( { data, options } ) =>
        `${ data } is not a valid enum value. Valid options: ${ options?.join( ' | ' ) } `,
} )

const stringSchema = z.string( { errorMap } )
zu.SPR( stringSchema.safeParse( undefined ) ).error?.issues[ 0 ].message
// Custom required message
zu.SPR( stringSchema.safeParse( 42 ) ).error?.issues[ 0 ].message
// 42 is an invalid type

const enumSchema = z.enum( [ 'foo', 'bar' ], { errorMap } )
zu.SPR( enumSchema.safeParse( 'baz' ) ).error?.issues[ 0 ].message
// baz is not a valid enum value. Valid options: foo | bar

Returns

z.ZodErrorMap