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.
- 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
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"
}
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.