json-comb-core
    TypeScript icon, indicating that this package has built-in type declarations

    7.0.2 • Public • Published

    json-comb-core

    The inner core of json-comb

    Install

    This package is ESM only: Node 12+ is needed to use it and it must be imported instead of required:

    npm i json-comb-core

    If you need a legacy version which works with require, use version 6.9.0

    Quick Take

    import { strict as assert } from "assert";
    import {
      getKeysetSync,
      getKeyset,
      enforceKeyset,
      enforceKeysetSync,
      sortAllObjectsSync,
      noNewKeysSync,
      findUnusedSync,
    } from "json-comb-core";
    
    // STEP #1
    // =======
    
    // calculate the schema - superset of all possible keys used across
    // all JSON files
    const schema = getKeysetSync([
      {
        // <- object #1
        a: "a",
        b: "c",
        c: {
          d: "d",
          e: "e",
        },
      },
      {
        // <- object #2
        a: "a",
      },
      {
        // <- object #3
        c: {
          f: "f",
        },
      },
    ]);
    
    assert.deepEqual(schema, {
      a: false,
      b: false,
      c: {
        d: false,
        e: false,
        f: false,
      },
    });
    
    // STEP #2
    // =======
    
    // now we can normalise the object #2 for example:
    assert.deepEqual(
      enforceKeysetSync(
        {
          // <- object #2
          a: "a",
        },
        schema
      ),
      {
        a: "a",
        b: false,
        c: {
          d: false,
          e: false,
          f: false,
        },
      }
    );

    Documentation

    Please visit codsen.com for a full description of the API and examples.

    Contributing

    To report bugs or request features or assistance, raise an issue on GitHub.

    Licence

    MIT License

    Copyright (c) 2010-2021 Roy Revelt and other contributors

    ok codsen star

    Install

    npm i json-comb-core

    DownloadsWeekly Downloads

    24

    Version

    7.0.2

    License

    MIT

    Unpacked Size

    109 kB

    Total Files

    18

    Last publish

    Collaborators

    • royston