json-schema-migrate-x
This is an actively maintained fork of json-schema-migrate which helps migrate JSON-Schema from draft-04 to draft-07, draft-2019-09 or draft-2020-12.
Install
# npm
npm install json-schema-migrate-x
# yarn
yarn add json-schema-migrate-x
# pnpm
pnpm add json-schema-migrate-x
# bun
bun add json-schema-migrate-x
Usage
import * as migrate from 'json-schema-migrate-x'
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 becomesdraft-07,draft-2019-09ordraft-2020-12meta-schemadraft-04boolean form ofexclusiveMaximum/Minimumis replaced with the current number formenumwith 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:dependencieswithdependentRequiredanddependentSchemas"id": "#foo"with"$anchor": "foo""id": "schema#foo"with"$id": "schema", "$anchor": "foo"
draft2020function additionally replaces array form ofitemswithprefixItems(andadditionalItemswithitems)
Sponsors
| 1stG | RxTS | UnTS |
|---|---|---|
Backers
| 1stG | RxTS | UnTS |
|---|---|---|
Changelog
Detailed changes for each release are documented in CHANGELOG.md.