@unts/json-schema-migrate


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 @unts/json-schema-migrate
# yarn
yarn add @unts/json-schema-migrate
# pnpm
pnpm add @unts/json-schema-migrate
# bun
bun add @unts/json-schema-migrate
Usage
import * as migrate from '@unts/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 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
)

Sponsors
Backers
Changelog
Detailed changes for each release are documented in CHANGELOG.md.
License
MIT © JounQin@1stG.me