JSON Schema Typed
JSON Schema TypeScript definitions with complete inline documentation.
NOTE: This library only supports defining schemas. You will need a separate
library for data validation.
There are 3 JSON Schema drafts included in this package:
draft-07
draft-2019-09
draft-2020-12
Install
npm install json-schema-typed
Usage
- Chose which draft you'd like to import.
-
The main package export points to the latest supported stable draft, currently
draft-2020-12
. Future releases that point the main package export to a new
draft will always incur a bump to the major semantic version.
import { type JSONSchema } from "json-schema-typed";
-
Or you can specify the exact draft you need.
import { type JSONSchema } from "json-schema-typed/draft-2020-12";
-
Define a schema
import { Format, type JSONSchema } from "json-schema-typed";
const schema: JSONSchema = {
properties: {
email: {
format: Format.Email,
type: "string",
},
},
type: "object",
};
const stringSchema: JSONSchema.String = {
maxLength: 100,
type: "string",
};
Upgrading
Version 10.0.0
has breaking changes from the previous release.
Exports supported in each draft module
Name | Type | Purpose |
---|
$schema | string | Draft meta schema URL that can be used with the $schema keyword. |
ContentEncoding | Enum object | String content encoding strategies. |
draft | string | Draft version. |
Format | Enum object | String formats. |
JSONSchema | TypeScript Type | Used to define a JSON Schema. |
keywords | string[] | All the keywords for the imported draft. |
TypeName | Enum object | Simple type names for the type keyword. |
Versioning
This library follows semantic versioning.
Maintainers
License
BSD-2-Clause