npm.io
0.3.5 • Published 9 months ago

@standard-community/standard-json

Licence
MIT
Version
0.3.5
Deps
0
Size
13 kB
Vulns
0
Weekly
0
Stars
44

Standard JSON

npm version npm downloads

Standard Schema Validator's JSON Schema Converter

Installation

Install the main package -

pnpm add @standard-community/standard-json

For some specific vendor, install the respective package also -

Vendor Package
Zod v3 zod-to-json-schema
Valibot @valibot/to-json-schema

Usage

import { toJsonSchema } from "@standard-community/standard-json";

// Define your validation schema
const schema = {
    // ...
};

// Convert it to JSON Schema
const jsonSchema = await toJsonSchema(schema);
Sync Usage

This is useful for -

Adding support for Unsupported validation libs
import { toJsonSchema, loadVendor } from "@standard-community/standard-json";
import { convertSchemaToJson } from "your-validation-lib";

// The lib should support Standard Schema, like Sury
// as we use 'schema["~standard"].vendor' to get the vendor name
// Eg. loadVendor(zod["~standard"].vendor, convertorFunction)
loadVendor("validation-lib-name", convertSchemaToJson)

// Define your validation schema
const schema = {
    // ...
};

// Convert it to JSON Schema
const jsonSchema = toJsonSchema(schema);
Customize the toJSONFunction of a supported lib
import { toJsonSchema, loadVendor } from "@standard-community/standard-json";
import zodHandler from "@standard-community/standard-json/zod";

// Or pass a custom implmentation
loadVendor("zod", zodHandler())

// Define your validation schema
const schema = {
    // ...
};

// Convert it to JSON Schema
const jsonSchema = await toJsonSchema(schema);

Keywords