JSPM

  • Created
  • Published
  • Downloads 14872745
  • Score
    100M100P100Q233432F
  • License ISC

Converts Zod schemas to Json Schemas

Package Exports

  • zod-to-json-schema

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (zod-to-json-schema) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Zod to Json Schema

Build NPM Version NPM Downloads

Does what it says on the tin! Supports all relevant schema types as well as basic string, number and array length validations.

String pattern validation (ie email, regexp etc) is not available since Zod doesn't seem to expose the regexp source in any way I can find. Perhaps in later versions, though!

Usage:

import * as z from 'zod';
import zodToJsonSchema from 'zod-to-json-schema';

const mySchema = z.object({
  myString: z.string().min(5),
  myUnion: z.union([z.number(), z.boolean()]),
});

const jsonSchema = zodToJsonSchema(mySchema, 'mySchema');

Expected output:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$ref": "#/definitions/mySchema",
  "definitions": {
    "mySchema": {
      "type": "object",
      "properties": {
        "myString": {
          "type": "string",
          "minLength": 5
        },
        "myUnion": {
          "type": ["number", "boolean"]
        }
      },
      "additionalProperties": false,
      "required": ["myString", "myUnion"]
    }
  }
}

Changelog

Package Version Change
0.5.0 Actual fix for broken package structure 😅
0.4.0 Failed fix for broken package structure
0.3.0 Mainly project restructuring and (hopefuly) final semi-breaking change to external api (renamed main function). Added this changelog.
0.2.1 Tiny readme update.
0.2.0 Added native enum support.
0.1.0 Basic validations for all relevant types. Breaking change to external api.
0.0.0 Basic parsing without validation

Disclaimer and notes on versioning

Once I'm satisfied that this package has reached parity with Zod I will keep the major versions in lockstep with that, possibly with simultaneous minor versions of both majors 1 and 3 (zod 2 was deprecated before leaving beta). As for now though (meaning major 0 for this package), expect breaking changes to the api to appear without notice.