javascriptzodvalidator.js

how to use zod with validator.js


I have an application using zod but I'd like to use some methods from a different library (validator.js) zod documentation says:

Check out validator.js for a bunch of other useful string validation functions.

Not sure if that means this functions are implemented on zod, or I have to also install validator.js, in that other case how I can use both libraries together? cant find any example.

Thanks!


Solution

  • I think Zod means that you could install validator.js and use their validations with Zod. Zod's refine function makes this fairly straightforward. For example if you wanted to validate a string as a credit card number using Zod and validator it might look something like this

    import { z } from "zod";
    import isCreditCard  from "validator/lib/isCreditCard";
    
    const userSchema = z.object({
      name: z.string(),
      creditCard: z.string().refine(isCreditCard, {
        message: 'Must be a valid credit card number'
      }),
    })
    
    console.log(userSchema.safeParse({
      name: 'Doug',
      creditCard: '1234',
    }));
    
    console.log(userSchema.safeParse({
      name: 'steve',
      creditCard: '4000 0200 0000 0000'
    }));
    

    The first example fails with a ZodError containing our custom error message. The second example succeeds.