Metadata support for Zod schemas.
npm install zod-metadata
yarn add zod-metadata
pnpm add zod-metadata
import 'zod-metadata/register';
import { z } from 'zod';
const schema = z.string().meta({
example: 'John',
number: 42,
});
schema.getMeta(); // => { example: 'John', number: 42 }
Import zod-metadata/register
at the top of your entry files:
JavaScript
require('zod-metadata/register');
TypeScript
import 'zod-metadata/register';
JavaScript
const { register } = require('zod-metadata');
const zod = require('zod');
register(zod);
TypeScript
import { register } from 'zod-metadata';
import zod from 'zod';
register(zod);
JavaScript
node -r zod-metadata/register my-script.js
// my-script.js
require('zod-metadata'); // make type declarations available
TypeScript
ts-node -r zod-metadata/register my-script.js
// my-script.ts
import {} from 'zod-metadata'; // make type declarations available
Via NODE_OPTIONS
NODE_OPTIONS='-r zod-metadata/register' node my-script.js
Since you can re-declare an interface to add stuff to it,
you can redeclare the ZodMeta
interface to add fields to it.
This may be helpful if you have handful, pre-defined keys you're going to use project-wide.