@json-schema-tools/titleizer

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.

Generated using TypeDoc