5 дней назад
История
README.md
@cutticat/json-schema-types
TypeScript type library for all JSON Schema specification versions (Draft 3, 4, 6, 7, 2019-09, 2020-12).
Contents
Overview
This library provides strictly typed definitions for JSON Schema objects according to official specifications. All major drafts are supported: Draft 3, 4, 6, 7, 2019-09, and 2020-12. Types include inline JSDoc for all fields.
Installation
pnpm i @cutticat/json-schema-types
Quick start
import type {
JsonSchemaDraft07,
JsonSchemaDraft202012,
AnyJsonSchema,
JsonSchemaByDraft,
JsonSchemaDraftVersion,
} from "@cutticat/json-schema-types"
// Typing a schema for a specific draft
const schema07: JsonSchemaDraft07 = {
$schema: "http://json-schema.org/draft-07/schema#",
type: "object",
properties: {
name: { type: "string" },
age: { type: "integer", minimum: 0 },
},
required: ["name"],
}
// Union of all supported schemas
function validateSchema(schema: AnyJsonSchema) {
// ...
}
// Type by draft identifier
type SchemaForDraft<V extends JsonSchemaDraftVersion> = JsonSchemaByDraft[V]
API
Shared types
JsonPrimitive— primitive JSON values (string | number | boolean | null)JsonValue— any valid JSON valueJsonObject,JsonArray— object and arrayJsonSchemaPrimitiveType,JsonSchemaType—typekeyword valuesJsonSchemaCommonKeywords— common metadata and annotationsJsonSchemaNumericKeywords— number validationJsonSchemaStringKeywords— string validationJsonSchemaArrayKeywords— array validationJsonSchemaObjectKeywords— object validationJsonSchemaCompositionKeywords— allOf, anyOf, oneOf, not, if/then/elseJsonSchemaConditionalKeywords— dependencies, dependentRequired, dependentSchemasJsonSchemaDefinitionKeywords— definitions, $defs, $ref, $anchor, etc.JsonSchemaLike,JsonSchemaDictionary— boolean schema or object
Types by draft
JsonSchemaDraft03,JsonSchemaDraft03Type,JsonSchemaDraft03LikeJsonSchemaDraft04,JsonSchemaDraft04Type,JsonSchemaDraft04LikeJsonSchemaDraft06,JsonSchemaDraft06Object,JsonSchemaDraft06LikeJsonSchemaDraft07,JsonSchemaDraft07Object,JsonSchemaDraft07LikeJsonSchemaDraft201909,JsonSchemaDraft201909Object,JsonSchemaDraft201909LikeJsonSchemaDraft202012,JsonSchemaDraft202012Object,JsonSchemaDraft202012Like
Registry and aggregates
JsonSchemaDraftVersion— union of draft identifiersJsonSchemaByDraft— maps a draft to its schema typeAnyJsonSchema— union of all schema types
Documentation
Detailed documentation:
Full API documentation is available in JSDoc comments. Use IDE autocomplete to browse it.
Requirements
- Node.js >= 22.0.0
- pnpm >= 10.17.0
- TypeScript >= 5.9.0
Описание
Library with JSON schema types
Конвейеры
9
успешных
1
с ошибкой