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
.
# 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
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))
-
id
is replaced with$id
-
$schema
value becomesdraft-07
,draft-2019-09
ordraft-2020-12
meta-schema -
draft-04
boolean form ofexclusiveMaximum/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:-
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
)
1stG | RxTS | UnTS |
---|---|---|
1stG | RxTS | UnTS |
---|---|---|
Detailed changes for each release are documented in CHANGELOG.md.