Back to results
IvanovES/zod-metadata(opens in a new tab)
Language: TypeScript
Extends Zod schemas with metadata
- stars
- 14
- watchers
- 1
- forks
- 4
- open issues
- 6
- Last updated
- 04/19/2025
Language: TypeScript
Extends Zod schemas with metadata
Metadata support for Zod schemas.
Warning
Zod 4 introduced metadata support (see docs) and so there is no need for this package.
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.jsSince 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.