Wondering what’s next for npm?Check out our public roadmap! »

    json-schema-deref-sync

    0.14.0 • Public • Published

    json-schema-deref-sync

    npm version build status JavaScript Style Guide License

    Dereference JSON pointers in a JSON schemas with their true resolved values. Basically a lighter, synchronous version of json-schema-deref but omits web references.

    Installation

    npm install json-schema-deref-sync

    Overview

    Let's say you have the following JSON Schema:

    {
      "description": "Just some JSON schema.",
      "title": "Basic Widget",
      "type": "object",
      "definitions": {
        "id": {
          "description": "unique identifier",
          "type": "string",
          "minLength": 1,
          "readOnly": true
        }
      },
      "properties": {
        "id": {
          "$ref": "#/definitions/id"
        },
        "bar": {
          "$ref": "bar.json"
        }
      }
    }

    Sometimes you just want that schema to be fully expanded, with $ref's being their (true) resolved values:

    {
      "description": "Just some JSON schema.",
      "title": "Basic Widget",
      "type": "object",
      "definitions": {
        "id": {
          "description": "unique identifier",
          "type": "string",
          "minLength": 1,
          "readOnly": true
        }
      },
      "properties": {
        "id": {
          "description": "unique identifier",
          "type": "string",
          "minLength": 1,
          "readOnly": true
        },
        "bar": {
          "description": "bar property",
          "type": "boolean"
        }
      }
    }

    This utility lets you do that:

    var deref = require('json-schema-deref-sync');
    var myschema = require('schema.json');
     
    var fullSchema = deref(myschema);

    API Reference

    deref(schema, options) ⇒ Object | Error

    Derefs $ref's in JSON Schema to actual resolved values. Supports local, and file refs.

    Kind: global function
    Returns: Object | Error - the deref schema oran instance of Error if error.

    Param Type Description
    schema Object The JSON schema
    options Object options
    options.baseFolder String the base folder to get relative path files from. Default is process.cwd()
    options.failOnMissing Boolean By default missing / unresolved refs will be left as is with their ref value intact. If set to true we will error out on first missing ref that we cannot resolve. Default: false.
    options.mergeAdditionalProperties Boolean By default properties in a object with $ref will be removed in the output. If set to true they will be added/overwrite the output. This will use lodash's merge function. Default: false.
    options.removeIds Boolean By default $id fields will get copied when dereferencing. If set to true they will be removed. Merged properties will not get removed. Default: false.
    options.loaders Object A hash mapping reference types (e.g., 'file') to loader functions.

    Install

    npm i json-schema-deref-sync

    DownloadsWeekly Downloads

    140,895

    Version

    0.14.0

    License

    MIT

    Unpacked Size

    23.2 kB

    Total Files

    10

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar