VSCodeにてtsファイルよりJSON Schemaを生成する
VSCodeにてtsファイルからJSON Schemaを生成したい場合はTypescript JSON schema generatorを使用すると一発で生成する事が出来ます。
例えば以下のtsファイルがあった時、
import Bar from './Bar'
export default interface Foo { hoge: number piyo: string bar?: Bar[]}
type Bar = { [keyof in 'bar1' | 'bar2']: number}
export default Bar
Foo
のJSON Schemaを生成する場合はFoo.ts
を開いた上で、コマンドパレットからGenerate Json Schema for type
を選択します。
生成元のinterfaceのリストが表示されるので上記の場合はFooを選択すると生成が始まり、数秒程でjsonを得ることが出来ます。
{ "$schema": "http://json-schema.org/draft-07/schema#", "$ref": "#/definitions/Foo", "definitions": { "Foo": { "type": "object", "properties": { "hoge": { "type": "number" }, "piyo": { "type": "string" }, "bar": { "type": "array", "items": { "type": "object", "properties": { "bar1": { "type": "number" }, "bar2": { "type": "number" } }, "required": [ "bar1", "bar2" ], "additionalProperties": false } } }, "required": [ "hoge", "piyo" ], "additionalProperties": false } }}
とにかくサクッと生成したい場合には便利ですね。
ちなみに以下の様なライブラリを導入するとCLI経由でtsファイルからJSON Schemaを生成可能です。複数生成したい場合、バッチに組み込みたい場合はライブラリを導入してみると良さそうです。