Awesome
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
id
is replaced with$id
$schema
value becomes draft-07, draft-2019-09 or draft-2020-12 meta-schema- draft-04 boolean form of
exclusiveMaximum/Minimum
is replaced with the current number form enum
with a single allowed value is replaced withconst
- Non-standard
constant
is replaced withconst
- empty schema is replaced with
true
- schema
{"not":{}}
is replaced withfalse
draft2019
function additionally replaces:definitions
with$defs
dependencies
withdependentRequired
anddependentSchemas
"id": "#foo"
with"$anchor": "foo"
"id": "schema#foo"
with"$id": "schema", "$anchor": "foo"
draft2020
function additionally replaces array form ofitems
withprefixItems
(andadditionalItems
withitems
)