Skip to content

un-ts/json-schema-migrate-x

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Migrate JSON-Schema `draft-04` to `draft-07`, `draft-2019-09` or `draft-2020-12`

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5