json-schema-migrate
json-schema-migrate copied to clipboard
Migrate JSON-Schema draft-04 to draft-07, draft-2019-09 or draft-2020-12
json-schema-migrate
Migrate JSON-Schema from draft-04 to draft-07, draft-2019-09 or draft-2020-12
Install
npm install json-schema-migrate
Usage
const migrate = require("json-schema-migrate")
const schema = {
id: "my-schema",
minimum: 1,
exclusiveMinimum: true,
}
migrate.draft7(schema)
// or migrate.draft2019(schema)
// or migrate.draft2020(schema)
console.log(schema)
// {
// $id: 'my-schema',
// exclusiveMinimum: 1
// }
You can access Ajv instance that is used to migrate schema using migrate.getAjv function:
console.log(migrate.getAjv().errorsText(errors))
Changes in schemas after migration
idis replaced with$id$schemavalue becomes draft-07, draft-2019-09 or draft-2020-12 meta-schema- draft-04 boolean form of
exclusiveMaximum/Minimumis replaced with the current number form enumwith a single allowed value is replaced withconst- Non-standard
constantis replaced withconst - empty schema is replaced with
true - schema
{"not":{}}is replaced withfalse draft2019function additionally replaces:definitionswith$defsdependencieswithdependentRequiredanddependentSchemas"id": "#foo"with"$anchor": "foo""id": "schema#foo"with"$id": "schema", "$anchor": "foo"
draft2020function additionally replaces array form ofitemswithprefixItems(andadditionalItemswithitems)