json-schema-migrate

Migrate JSON-Schema to draft-06

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
json-schema-migrate
2042.0.02 years ago6 years agoMinified + gzip package size for json-schema-migrate in KB

Readme

json-schema-migrate
Migrate JSON-Schema from draft-04 to draft-07, draft-2019-09 or draft-2020-12
build npm coverage

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 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:
- definitions with $defs - 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)

License

MIT