Neoanthropic Preternatural Murmurings

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

    2.0.0 • Public • Published

    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

    Install

    npm i json-schema-migrate

    DownloadsWeekly Downloads

    107,112

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    32.6 kB

    Total Files

    20

    Last publish

    Collaborators

    • esp