json-schema-migrate-x
TypeScript icon, indicating that this package has built-in type declarations

2.1.0 • Public • Published

json-schema-migrate-x

GitHub Actions Workflow Status Codecov type-coverage CodeRabbit Pull Request Reviews npm GitHub Release

Conventional Commits Renovate enabled JavaScript Style Guide Code Style: Prettier

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

  • 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

Sponsors

1stG RxTS UnTS
1stG Open Collective sponsors RxTS Open Collective sponsors UnTS Open Collective sponsors

Backers

1stG RxTS UnTS
1stG Open Collective backers RxTS Open Collective backers UnTS Open Collective backers

Changelog

Detailed changes for each release are documented in CHANGELOG.md.

License

MIT © JounQin@1stG.me

Package Sidebar

Install

npm i json-schema-migrate-x

Weekly Downloads

31,275

Version

2.1.0

License

MIT

Unpacked Size

34.4 kB

Total Files

23

Last publish

Collaborators

  • jounqin