{"_id":"@aidinabedi/json-schema-to-typescript","_rev":"3-81bca6f995a25e66cb6d7327774475d3","name":"@aidinabedi/json-schema-to-typescript","dist-tags":{"latest":"15.1.0"},"versions":{"15.0.3":{"name":"@aidinabedi/json-schema-to-typescript","version":"15.0.3","keywords":["json","schema","typescript","compile","transpile","api","interface","typing","share"],"author":{"url":"https://borischerny.com","name":"Boris Cherny","email":"boris@borischerny.com"},"license":"MIT","_id":"@aidinabedi/json-schema-to-typescript@15.0.3","maintainers":[{"name":"aidinabedi","email":"aidinabedi@gmail.com"}],"homepage":"https://github.com/aidinabedi/json-schema-to-typescript#readme","bugs":{"url":"https://github.com/aidinabedi/json-schema-to-typescript/issues"},"bin":{"json2ts":"dist/src/cli.js"},"dist":{"shasum":"022ef2d528561544fb61e3f02cb78106d59cfa7a","tarball":"https://registry.npmjs.org/@aidinabedi/json-schema-to-typescript/-/json-schema-to-typescript-15.0.3.tgz","fileCount":62,"integrity":"sha512-FDprPHmzlQHvg0TaI6IuzSI06GUszMnAJAbByM7Nl2rhge2wUBtqd0sLfq4fI8ZtuzyalHH2CJtGDESa+OkkVQ==","signatures":[{"sig":"MEUCIDmKgDxs3zAVgMlT8bc6gfRSeWnH6h734JmZtXwd/POsAiEAhsWuTlj3qDKEcco2I/tENtwRLjytqYFaVOz8/Yt/rGs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238594},"main":"dist/src/index.js","volta":{"node":"24.19.0"},"engines":{"node":">=16.0.0"},"gitHead":"94ddfd4ec7f56f6e241c512e1471503b5c03e73d","scripts":{"tdd":"npx bun test --watch","lint":"eslint src/*.ts test/*.ts","test":"npm run pre-test && npx bun test --timeout 300000","build":"npm run lint && npm run clean && npm run build:browser && npm run build:server","clean":"shx rm -rf dist && mkdir dist","watch":"tsc -w","format":"prettier \"{src,test}/*.ts\" --write","pre-test":"npm run clean && npm run format-check && npm run typecheck && npm run build:server","typecheck":"tsc -p tsconfig.test.json","stresstest":"seq 1 10 | xargs -I{} npm test","build:server":"tsc -d","format-check":"prettier \"{src,test}/*.ts\" --check","build:browser":"browserify src/index.ts -s jstt -p [ tsify -m commonjs ] > dist/bundle.js","prepublishOnly":"npm test"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"aidinabedi","email":"aidinabedi@gmail.com"},"browserify":{"transform":["browserify-shim"]},"repository":{"url":"git+https://github.com/aidinabedi/json-schema-to-typescript.git","type":"git"},"_npmVersion":"11.17.0","description":"compile json schema to typescript typings","directories":{},"_nodeVersion":"24.19.0","dependencies":{"lodash":"^4.18.1","js-yaml":"^5.2.3","minimist":"^1.2.8","prettier":"^3.9.6","tinyglobby":"^0.2.17","@types/lodash":"^4.17.25","@types/json-schema":"^7.0.15","@apidevtools/json-schema-ref-parser":"^11.9.3"},"_hasShrinkwrap":false,"browserify-shim":{"prettier":"global:prettier"},"devDependencies":{"bun":"^1.3.14","shx":"^0.4.0","tsify":"^5.0.4","eslint":"^10.8.0","rimraf":"^6.1.3","cli-color":"^2.0.4","@types/bun":"^1.3.11","browserify":"^17.0.1","typescript":"^6.0.3","@types/node":"^26.1.2","@types/minimist":"^1.2.5","browserify-shim":"^3.8.16","@types/cli-color":"^2.0.6","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.65.0","@typescript-eslint/eslint-plugin":"^8.65.0"},"_npmOperationalInternal":{"tmp":"tmp/json-schema-to-typescript_15.0.3_1786321087580_0.022927072004275573","host":"s3://npm-registry-packages-npm-production"}},"15.0.4":{"name":"@aidinabedi/json-schema-to-typescript","version":"15.0.4","keywords":["json","schema","typescript","compile","transpile","api","interface","typing","share"],"author":{"url":"https://borischerny.com","name":"Boris Cherny","email":"boris@borischerny.com"},"license":"MIT","_id":"@aidinabedi/json-schema-to-typescript@15.0.4","maintainers":[{"name":"aidinabedi","email":"aidinabedi@gmail.com"}],"homepage":"https://github.com/aidinabedi/json-schema-to-typescript#readme","bugs":{"url":"https://github.com/aidinabedi/json-schema-to-typescript/issues"},"bin":{"json2ts":"dist/src/cli.js"},"dist":{"shasum":"fabcaca81d393e71223f2e5570b17af13216c4d1","tarball":"https://registry.npmjs.org/@aidinabedi/json-schema-to-typescript/-/json-schema-to-typescript-15.0.4.tgz","fileCount":62,"integrity":"sha512-6Umzmul4rXpp4P07CTtQSz0au92UH08pWJfGqemKe7zc0tKY9BLK7fOnLJKzNBqcIbPwUnN1y65NCMgBpRg0tQ==","signatures":[{"sig":"MEUCID22PxrZgvbPVQl0OgZ+Kn4d3ADL7I7OTxNSGD8UvR2RAiEAiEaFGnKRpx4uGjcvxPKgCFjSgjgpqh+H5IiyRtPPzS0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238594},"main":"dist/src/index.js","volta":{"node":"24.19.0"},"engines":{"node":">=16.0.0"},"gitHead":"f5764203f2ba9b9301b95047daa40fd24b83eb10","scripts":{"tdd":"npx bun test --watch","lint":"eslint src/*.ts test/*.ts","test":"npm run pre-test && npx bun test --timeout 300000","build":"npm run lint && npm run clean && npm run build:browser && npm run build:server","clean":"shx rm -rf dist && mkdir dist","watch":"tsc -w","format":"prettier \"{src,test}/*.ts\" --write","pre-test":"npm run clean && npm run format-check && npm run typecheck && npm run build:server","typecheck":"tsc -p tsconfig.test.json","stresstest":"seq 1 10 | xargs -I{} npm test","build:server":"tsc -d","format-check":"prettier \"{src,test}/*.ts\" --check","build:browser":"browserify src/index.ts -s jstt -p [ tsify -m commonjs ] > dist/bundle.js","prepublishOnly":"npm test"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"aidinabedi","email":"aidinabedi@gmail.com"},"browserify":{"transform":["browserify-shim"]},"repository":{"url":"git+https://github.com/aidinabedi/json-schema-to-typescript.git","type":"git"},"_npmVersion":"11.17.0","description":"compile json schema to typescript typings","directories":{},"_nodeVersion":"24.19.0","dependencies":{"lodash":"^4.18.1","js-yaml":"^5.2.3","minimist":"^1.2.8","prettier":"^3.9.6","tinyglobby":"^0.2.17","@types/lodash":"^4.17.25","@types/json-schema":"^7.0.15","@apidevtools/json-schema-ref-parser":"^11.9.3"},"_hasShrinkwrap":false,"browserify-shim":{"prettier":"global:prettier"},"devDependencies":{"bun":"^1.3.14","shx":"^0.4.0","tsify":"^5.0.4","eslint":"^10.8.0","rimraf":"^6.1.3","cli-color":"^2.0.4","@types/bun":"^1.3.11","browserify":"^17.0.1","typescript":"^6.0.3","@types/node":"^26.1.2","@types/minimist":"^1.2.5","browserify-shim":"^3.8.16","@types/cli-color":"^2.0.6","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.65.0","@typescript-eslint/eslint-plugin":"^8.65.0"},"_npmOperationalInternal":{"tmp":"tmp/json-schema-to-typescript_15.0.4_1786322232335_0.7406634564860419","host":"s3://npm-registry-packages-npm-production"}},"15.1.0":{"name":"@aidinabedi/json-schema-to-typescript","version":"15.1.0","description":"compile json schema to typescript typings","main":"dist/src/index.js","bin":{"json2ts":"dist/src/cli.js"},"typings":"dist/src/index.d.ts","engines":{"node":">=16.0.0"},"scripts":{"build":"npm run lint && npm run clean && npm run build:browser && npm run build:server","build:browser":"browserify src/index.ts -s jstt -p [ tsify -m commonjs ] > dist/bundle.js","build:server":"tsc -d","clean":"shx rm -rf dist && mkdir dist","format":"prettier \"{src,test}/*.ts\" --write","format-check":"prettier \"{src,test}/*.ts\" --check","lint":"eslint src/*.ts test/*.ts","tdd":"npx bun test --watch","test":"npm run pre-test && npx bun test --timeout 300000","stresstest":"seq 1 10 | xargs -I{} npm test","prepublishOnly":"npm test","pre-test":"npm run clean && npm run format-check && npm run typecheck && npm run build:server","typecheck":"tsc -p tsconfig.test.json","watch":"tsc -w"},"repository":{"type":"git","url":"git+https://github.com/aidinabedi/json-schema-to-typescript.git"},"keywords":["json","schema","typescript","compile","transpile","api","interface","typing","share"],"author":{"name":"Boris Cherny","email":"boris@borischerny.com","url":"https://borischerny.com"},"license":"MIT","bugs":{"url":"https://github.com/aidinabedi/json-schema-to-typescript/issues"},"homepage":"https://github.com/aidinabedi/json-schema-to-typescript#readme","dependencies":{"@apidevtools/json-schema-ref-parser":"^11.9.3","@types/json-schema":"^7.0.15","@types/lodash":"^4.17.25","js-yaml":"^5.2.3","lodash":"^4.18.1","minimist":"^1.2.8","prettier":"^3.9.6","tinyglobby":"^0.2.17"},"devDependencies":{"@types/bun":"^1.3.11","@types/cli-color":"^2.0.6","@types/minimist":"^1.2.5","@types/node":"^26.1.2","@typescript-eslint/eslint-plugin":"^8.65.0","@typescript-eslint/parser":"^8.65.0","browserify":"^17.0.1","browserify-shim":"^3.8.16","bun":"^1.3.14","cli-color":"^2.0.4","eslint":"^10.8.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","rimraf":"^6.1.3","shx":"^0.4.0","tsify":"^5.0.4","typescript":"^6.0.3"},"browserify":{"transform":["browserify-shim"]},"browserify-shim":{"prettier":"global:prettier"},"volta":{"node":"24.19.0"},"allowScripts":{"es5-ext@0.10.64":true,"bun@1.3.14":true},"gitHead":"644ce4b27f7e9356196be23632ce65c2fcd80cc3","_id":"@aidinabedi/json-schema-to-typescript@15.1.0","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-5ldlmZiZ1jXoYChONj1tNDb7K0cyW3rvw2lqUzoMsc81YeoEKdU4kk48YieC9qfIfBVCgsxjt/2w17/8LoIaGg==","shasum":"48349ac0d5ce2c84faf9f65afc93212db5bee9f1","tarball":"https://registry.npmjs.org/@aidinabedi/json-schema-to-typescript/-/json-schema-to-typescript-15.1.0.tgz","fileCount":64,"unpackedSize":242301,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBJtNeR9Cam66pFTXZ2HJVN/LuC9PqqIbmEoQ8zNjvZpAiEAocsPgE6to61f+kysGcF8oQlgJjxD65wuybbsyE8E5ZE="}]},"_npmUser":{"name":"aidinabedi","email":"aidinabedi@gmail.com"},"directories":{},"maintainers":[{"name":"aidinabedi","email":"aidinabedi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/json-schema-to-typescript_15.1.0_1786375294615_0.04538923124528149"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-10T00:18:07.455Z","modified":"2026-08-10T15:21:35.038Z","15.0.3":"2026-08-10T00:18:07.721Z","15.0.4":"2026-08-10T00:37:12.493Z","15.1.0":"2026-08-10T15:21:34.753Z"},"bugs":{"url":"https://github.com/aidinabedi/json-schema-to-typescript/issues"},"author":{"name":"Boris Cherny","email":"boris@borischerny.com","url":"https://borischerny.com"},"license":"MIT","homepage":"https://github.com/aidinabedi/json-schema-to-typescript#readme","keywords":["json","schema","typescript","compile","transpile","api","interface","typing","share"],"repository":{"type":"git","url":"git+https://github.com/aidinabedi/json-schema-to-typescript.git"},"description":"compile json schema to typescript typings","maintainers":[{"name":"aidinabedi","email":"aidinabedi@gmail.com"}],"readme":"# json-schema-to-typescript [![Build Status][build]](https://github.com/aidinabedi/json-schema-to-typescript/actions?query=branch%3Amaster+workflow%3ACI) [![npm]](https://www.npmjs.com/package/json-schema-to-typescript) [![mit]](https://opensource.org/licenses/MIT) ![node]\n\n[build]: https://img.shields.io/github/actions/workflow/status/aidinabedi/json-schema-to-typescript/ci.yml?style=flat-square\n[npm]: https://img.shields.io/npm/v/@aidinabedi/json-schema-to-typescript.svg?style=flat-square\n[mit]: https://img.shields.io/npm/l/@aidinabedi/json-schema-to-typescript.svg?style=flat-square\n[node]: https://img.shields.io/badge/Node.js-16+-417e37?style=flat-square\n\n> Compile JSON Schema to TypeScript typings.\n\n## Example\n\nCheck out the [live demo](https://borischerny.com/json-schema-to-typescript-browser/).\n\nInput:\n\n```json\n{\n  \"title\": \"Example Schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"firstName\": {\n      \"type\": \"string\"\n    },\n    \"lastName\": {\n      \"type\": \"string\"\n    },\n    \"age\": {\n      \"description\": \"Age in years\",\n      \"type\": \"integer\",\n      \"minimum\": 0\n    },\n    \"hairColor\": {\n      \"enum\": [\"black\", \"brown\", \"blue\"],\n      \"type\": \"string\"\n    }\n  },\n  \"additionalProperties\": false,\n  \"required\": [\"firstName\", \"lastName\"]\n}\n```\n\nOutput:\n\n```ts\nexport interface ExampleSchema {\n  firstName: string;\n  lastName: string;\n  /**\n   * Age in years\n   */\n  age?: number;\n  hairColor?: \"black\" | \"brown\" | \"blue\";\n}\n```\n\n## Installation\n\n```sh\nnpm install json-schema-to-typescript\n```\n\n## Usage\n\njson-schema-to-typescript is easy to use via the CLI, or programmatically.\n\n### CLI\n\nFirst make the CLI available using one of the following options:\n\n```sh\n# install locally, then use `npx json2ts`\nnpm install json-schema-to-typescript\n\n# or install globally, then use `json2ts`\nnpm install json-schema-to-typescript --global\n\n# or install to npm cache, then use `npx --package=json-schema-to-typescript json2ts`\n# (you don't need to run an install command first)\n```\n\nThen, use the CLI to convert JSON files to TypeScript typings:\n\n```sh\ncat foo.json | json2ts > foo.d.ts\n# or\njson2ts foo.json > foo.d.ts\n# or\njson2ts foo.yaml foo.d.ts\n# or\njson2ts --input foo.json --output foo.d.ts\n# or\njson2ts -i foo.json -o foo.d.ts\n# or (quote globs so that your shell doesn't expand them)\njson2ts -i 'schemas/**/*.json'\n# or\njson2ts -i schemas/ -o types/\n```\n\nYou can pass any of the options described below (including style options) as CLI flags. Boolean values can be set to false using the `no-` prefix.\n\n```sh\n# generate code for definitions that aren't referenced\njson2ts -i foo.json -o foo.d.ts --unreachableDefinitions\n# use single quotes and disable trailing semicolons\njson2ts -i foo.json -o foo.d.ts --style.singleQuote --no-style.semi\n```\n\n### API\n\nTo invoke json-schema-to-typescript from your TypeScript or JavaScript program, import it and call `compile` or `compileFromFile`.\n\n```js\nimport { compile, compileFromFile } from 'json-schema-to-typescript'\n\n// compile from file\ncompileFromFile('foo.json')\n  .then(ts => fs.writeFileSync('foo.d.ts', ts))\n\n// or, compile a JS object\nlet mySchema = {\n  properties: [...]\n}\ncompile(mySchema, 'MySchema')\n  .then(ts => ...)\n```\n\nSee [server demo](example) and [browser demo](https://github.com/bcherny/json-schema-to-typescript-browser) for full examples.\n\n## Options\n\n`compileFromFile` and `compile` accept options as their last argument (all keys are optional):\n\n| key | type | default | description |\n|-|-|-|-|\n| additionalProperties | boolean | `true` | Default value for `additionalProperties`, when it is not explicitly set |\n| bannerComment | string | `\"/* eslint-disable */\\n/**\\n* This file was automatically generated by json-schema-to-typescript.\\n* DO NOT MODIFY IT BY HAND. Instead, modify the source JSON Schema file,\\n* and run json-schema-to-typescript to regenerate this file.\\n*/\"` | Disclaimer comment prepended to the top of each generated file |\n| customName | `(LinkedJSONSchema, string \\| undefined) => string \\| undefined` | `undefined` | Custom function to provide a type name for a given schema\n| cwd | string | `process.cwd()` | Root directory for resolving [`$ref`](https://tools.ietf.org/id/draft-pbryan-zyp-json-ref-03.html)s |\n| declareExternallyReferenced | boolean | `true` | Declare external schemas referenced via `$ref`? |\n| enableConstEnums | boolean | `true` | Prepend enums with [`const`](https://www.typescriptlang.org/docs/handbook/enums.html#computed-and-constant-members)? |\n| inferStringEnumKeysFromValues | boolean | `false` | Create enums from JSON enums with eponymous keys |\n| format | boolean | `true` | Format code? Set this to `false` to improve performance. |\n| ignoreMinAndMaxItems | boolean | `false` | Ignore maxItems and minItems for `array` types, preventing tuples being generated. |\n| maxItems | number | `20` | Maximum number of unioned tuples to emit when representing bounded-size array types, before falling back to emitting unbounded arrays. Increase this to improve precision of emitted types, decrease it to improve performance, or set it to `-1` to ignore `maxItems`.\n| strictIndexSignatures | boolean | `false` | Append all index signatures with `\\| undefined` so that they are strictly typed. |\n| style | object | `{ bracketSpacing: false,  printWidth: 120,  semi: true,  singleQuote: false,  tabWidth: 2,  trailingComma: 'none',  useTabs: false }` | A [Prettier](https://prettier.io/docs/en/options.html) configuration |\n| unknownAny | boolean | `true` | Use `unknown` instead of `any` where possible |\n| unreachableDefinitions | boolean | `false` | Generates code for `$defs` that aren't referenced by the schema. |\n| $refOptions | object | `{}` | [$RefParser](https://github.com/APIDevTools/json-schema-ref-parser) Options, used when resolving `$ref`s |\n\n## Tests\n\nTests run under [bun](https://bun.sh), so install it first:\n\n```sh\n$ npm test\n```\n\n## Features\n\n- [x] `title` => `interface`\n- [x] Primitive types:\n  - [x] array\n  - [x] homogeneous array\n  - [x] boolean\n  - [x] integer\n  - [x] number\n  - [x] null\n  - [x] object\n  - [x] string\n  - [x] homogeneous enum\n  - [x] heterogeneous enum\n- [x] Non/extensible interfaces\n- [ ] Custom JSON-schema extensions\n- [x] Nested properties\n- [x] Schema definitions\n- [x] [Schema references](http://json-schema.org/latest/json-schema-core.html#rfc.section.7.2.2)\n- [x] Local (filesystem) schema references\n- [x] External (network) schema references\n- [x] Add support for running in browser\n- [x] default interface name\n- [x] infer unnamed interface name from filename\n- [x] `deprecated`\n- [x] `allOf` (\"intersection\")\n- [x] `anyOf` (\"union\")\n- [x] `oneOf` (treated like `anyOf`)\n- [x] `maxItems` ([eg](https://github.com/tdegrunt/jsonschema/blob/67c0e27ce9542efde0bf43dc1b2a95dd87df43c3/examples/all.js#L166))\n- [x] `minItems` ([eg](https://github.com/tdegrunt/jsonschema/blob/67c0e27ce9542efde0bf43dc1b2a95dd87df43c3/examples/all.js#L165))\n- [x] `additionalProperties` of type\n- [x] `patternProperties` (partial support)\n- [x] [`extends`](https://github.com/json-schema/json-schema/wiki/Extends/014e3cd8692250baad70c361dd81f6119ad0f696)\n- [x] `required` properties on objects ([eg](https://github.com/tdegrunt/jsonschema/blob/67c0e27ce9542efde0bf43dc1b2a95dd87df43c3/examples/all.js#L130))\n- [ ] `validateRequired` ([eg](https://github.com/tdegrunt/jsonschema/blob/67c0e27ce9542efde0bf43dc1b2a95dd87df43c3/examples/all.js#L124))\n- [x] literal objects in enum ([eg](https://github.com/tdegrunt/jsonschema/blob/67c0e27ce9542efde0bf43dc1b2a95dd87df43c3/examples/all.js#L236))\n- [x] referencing schema by id ([eg](https://github.com/tdegrunt/jsonschema/blob/67c0e27ce9542efde0bf43dc1b2a95dd87df43c3/examples/all.js#L331))\n- [x] custom typescript types via `tsType`\n\n## Custom schema properties:\n\n- `tsType`: Overrides the type that's generated from the schema. Useful for forcing a type to `any` or when using non-standard JSON schema extensions ([eg](https://github.com/sokra/json-schema-to-typescript/blob/f1f40307cf5efa328522bb1c9ae0b0d9e5f367aa/test/e2e/customType.ts)).\n- `tsEnumNames`: Overrides the names used for the elements in an enum. Can also be used to create string enums ([eg](https://github.com/johnbillion/wp-json-schemas/blob/647440573e4a675f15880c95fcca513fdf7a2077/schemas/properties/post-status-name.json)).\n\n## Not expressible in TypeScript:\n\n- `dependencies` ([single](https://github.com/tdegrunt/jsonschema/blob/67c0e27ce9542efde0bf43dc1b2a95dd87df43c3/examples/all.js#L261), [multiple](https://github.com/tdegrunt/jsonschema/blob/67c0e27ce9542efde0bf43dc1b2a95dd87df43c3/examples/all.js#L282))\n- `divisibleBy` ([eg](https://github.com/tdegrunt/jsonschema/blob/67c0e27ce9542efde0bf43dc1b2a95dd87df43c3/examples/all.js#L185))\n- [`format`](https://github.com/json-schema/json-schema/wiki/Format) ([eg](https://github.com/tdegrunt/jsonschema/blob/67c0e27ce9542efde0bf43dc1b2a95dd87df43c3/examples/all.js#L209))\n- `multipleOf` ([eg](https://github.com/tdegrunt/jsonschema/blob/67c0e27ce9542efde0bf43dc1b2a95dd87df43c3/examples/all.js#L186))\n- `maximum` ([eg](https://github.com/tdegrunt/jsonschema/blob/67c0e27ce9542efde0bf43dc1b2a95dd87df43c3/examples/all.js#L183))\n- `minimum` ([eg](https://github.com/tdegrunt/jsonschema/blob/67c0e27ce9542efde0bf43dc1b2a95dd87df43c3/examples/all.js#L182))\n- `maxProperties` ([eg](https://github.com/tdegrunt/jsonschema/blob/67c0e27ce9542efde0bf43dc1b2a95dd87df43c3/examples/all.js#L113))\n- `minProperties` ([eg](https://github.com/tdegrunt/jsonschema/blob/67c0e27ce9542efde0bf43dc1b2a95dd87df43c3/examples/all.js#L112))\n- `not`/`disallow`\n- `oneOf` (\"xor\", use `anyOf` instead)\n- `pattern` ([string](https://github.com/tdegrunt/jsonschema/blob/67c0e27ce9542efde0bf43dc1b2a95dd87df43c3/examples/all.js#L203), [regex](https://github.com/tdegrunt/jsonschema/blob/67c0e27ce9542efde0bf43dc1b2a95dd87df43c3/examples/all.js#L207))\n- `uniqueItems` ([eg](https://github.com/tdegrunt/jsonschema/blob/67c0e27ce9542efde0bf43dc1b2a95dd87df43c3/examples/all.js#L172))\n\n## FAQ\n\n### JSON-Schema-to-TypeScript is crashing on my giant file. What can I do?\n\nPrettier is known to run slowly on really big files. To skip formatting and improve performance, set the `format` option to `false`.\n\n## Further Reading\n\n- JSON-schema spec: https://tools.ietf.org/html/draft-zyp-json-schema-04\n- JSON-schema wiki: https://github.com/json-schema/json-schema/wiki\n- JSON-schema test suite: https://github.com/json-schema/JSON-Schema-Test-Suite/blob/node\n- TypeScript spec: https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md\n\n## Who uses JSON-Schema-to-TypeScript?\n\n- [Alibaba](https://github.com/alibaba/lowcode-engine)\n- [Amazon](https://github.com/aws/aws-toolkit-vscode), [AWSLabs](https://github.com/awslabs/cdk8s)\n- [Expo](https://github.com/expo/expo)\n- [FormatJS](https://github.com/formatjs/formatjs)\n- [Microsoft](https://github.com/microsoft/mixed-reality-extension-sdk)\n- [Mozilla](https://github.com/mdn/browser-compat-data)\n- [Nx](https://github.com/nrwl/nx)\n- [RStudio](https://github.com/rstudio/rstudio)\n- [Sourcegraph](https://github.com/sourcegraph/sourcegraph)\n- [Stryker](https://github.com/stryker-mutator/stryker)\n- [Webpack](https://github.com/webpack/webpack)\n- [See more](https://github.com/bcherny/json-schema-to-typescript/network/dependents?package_id=UGFja2FnZS0xNjUxOTM5Mg%3D%3D)\n","readmeFilename":"README.md"}