how to use zod with validator.js

3.9k Views Asked by At

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!

1

There are 1 best solutions below

1
On BEST ANSWER

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.