Naughty Programmer's Madness

    @json-schema-tools/titleizer
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.6 • Public • Published

    JSON Schema Titleizer

    CircleCI branch Dependabot status npm GitHub release GitHub commits since latest release

    A tool to ensure that a schema and all its subschemas have a title. If there is no title present, one will be deterministically generated based on the schemas contents.

    Features

    • circular reference detection & handling
    • synchronous - doesn't touch the filesystem or make network requests. (use @json-schema-tools/dereferencer first if you have references)
    • generate subschema-dependent titles
    • always have unique titles for your json-schema

    Getting Started

    npm install @json-schema-tools/titleizer
    const titleizer = require("@json-schema-tools/titleizer").default;
    //import titleizer from "@json-schema-tools/titleizer"
    
    const mySchema = {
      type: "object",
      properties: {
        foo: {
          title: "foo",
          type: "array",
          items: { type: "string" }
        },
        bar: {
          title: "bar",
          anyOf: [
            { type: "string" },
            { type: "number" }
          ]
        }
      }
    };
    
    console.log(JSON.stringify(titleizer(mySchema), undefined, "  "));

    Output from running the above:

    {
      "type": "object",
      "properties": {
        "foo": {
          "title": "foo",
          "type": "array",
          "items": {
            "type": "string",
            "title": "string_doaGddGA"
          }
        },
        "bar": {
          "title": "bar",
          "anyOf": [
            {
              "type": "string",
              "title": "string_doaGddGA"
            },
            {
              "type": "number",
              "title": "number_Ho1clIqD"
            }
          ]
        }
      },
      "title": "objectOf_foo_bar_Bd1o3wyq"
    }
    

    Contributing

    How to contribute, build and release are outlined in CONTRIBUTING.md, BUILDING.md and RELEASING.md respectively. Commits in this repository follow the CONVENTIONAL_COMMITS.md specification.

    Keywords

    none

    Install

    npm i @json-schema-tools/titleizer

    DownloadsWeekly Downloads

    609

    Version

    1.0.6

    License

    Apache-2.0

    Unpacked Size

    25.7 kB

    Total Files

    6

    Last publish

    Collaborators

    • belfordz