@hyperjump/json-schema
Version:
A JSON Schema validator with support for custom keywords, vocabularies, and dialects
50 lines (40 loc) • 2.23 kB
JavaScript
import { addKeyword, defineVocabulary } from "../lib/keywords.js";
import { registerSchema } from "../lib/index.js";
import "../lib/openapi.js";
import dialectSchema from "./dialect/base.js";
import vocabularySchema from "./meta/base.js";
import schema from "./schema.js";
import schemaBase from "./schema-base.js";
import schemaDraft2020 from "./schema-draft-2020-12.js";
import schemaDraft2019 from "./schema-draft-2019-09.js";
import schemaDraft07 from "./schema-draft-07.js";
import schemaDraft06 from "./schema-draft-06.js";
import schemaDraft04 from "./schema-draft-04.js";
import discriminator from "../openapi-3-0/discriminator.js";
import example from "../openapi-3-0/example.js";
import externalDocs from "../openapi-3-0/externalDocs.js";
import xml from "../openapi-3-0/xml.js";
export * from "../draft-2020-12/index.js";
addKeyword(discriminator);
addKeyword(example);
addKeyword(externalDocs);
addKeyword(xml);
defineVocabulary("https://spec.openapis.org/oas/3.2/vocab/base", {
"discriminator": "https://spec.openapis.org/oas/3.0/keyword/discriminator",
"example": "https://spec.openapis.org/oas/3.0/keyword/example",
"externalDocs": "https://spec.openapis.org/oas/3.0/keyword/externalDocs",
"xml": "https://spec.openapis.org/oas/3.0/keyword/xml"
});
registerSchema(vocabularySchema, "https://spec.openapis.org/oas/3.2/meta/base");
registerSchema(dialectSchema, "https://spec.openapis.org/oas/3.2/dialect/base");
// Current Schemas
registerSchema(schema, "https://spec.openapis.org/oas/3.2/schema");
registerSchema(schema, "https://spec.openapis.org/oas/3.2/schema/latest");
registerSchema(schemaBase, "https://spec.openapis.org/oas/3.2/schema-base");
registerSchema(schemaBase, "https://spec.openapis.org/oas/3.2/schema-base/latest");
// Alternative dialect schemas
registerSchema(schemaDraft2020, "https://spec.openapis.org/oas/3.2/schema-draft-2020-12");
registerSchema(schemaDraft2019, "https://spec.openapis.org/oas/3.2/schema-draft-2019-09");
registerSchema(schemaDraft07, "https://spec.openapis.org/oas/3.2/schema-draft-07");
registerSchema(schemaDraft06, "https://spec.openapis.org/oas/3.2/schema-draft-06");
registerSchema(schemaDraft04, "https://spec.openapis.org/oas/3.2/schema-draft-04");