Migrate JSON-Schema `draft-04` to `draft-07`, `draft-2019-09` or `draft-2020-12`
npm install 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.
``shnpm
npm install json-schema-migrate-x
Usage
`js
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:`js
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 with const
- Non-standard constant is replaced with const
- empty schema is replaced with true
- schema {"not":{}} is replaced with false
- draft2019 function additionally replaces:
- dependencies with dependentRequired and dependentSchemas
- "id": "#foo" with "$anchor": "foo"
- "id": "schema#foo" with "$id": "schema", "$anchor": "foo"
- draft2020 function additionally replaces array form of items with prefixItems (and additionalItems with items`)
| 1stG | RxTS | UnTS |
| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
|  |  |  |
| 1stG | RxTS | UnTS |
| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
|  |  |  |
Detailed changes for each release are documented in CHANGELOG.md.
[MIT][] © [JounQin][]@[1stG.me][]
[1stG.me]: https://www.1stG.me
[JounQin]: https://github.com/JounQin
[MIT]: http://opensource.org/licenses/MIT