Node.js
TypeScript
swagger

swagger.jsonからd.tsを作るsw2dtsを作った

More than 1 year has passed since last update.

最近自分の専門がよくわからなくなってきてるりんごです。

SwaggerでAPI情報を記述するJSON(便宜的にswagger.jsonと呼んでます)から、TypeScriptで使用する型定義ファイル(*.d.ts)を生成するツールを作りました。

https://www.npmjs.com/package/sw2dts

中の実装はswagger.jsonをdtsgeneratorが食える形に整形しているだけです。

使用例

$ sw2dts swagger.json > model.d.ts
swagger.json
{
  "swagger": "2.0",
    〜略〜
  "definitions": {
    "Foo": {
      "type": "object",
      "properties": {
        "id": {
          "format": "int64",
          "type": "string"
        },
        "bar": {
          "$ref": "#/definitions/Bar"
        },
        "name": {
          "type": "string"
        },
        "count": {
          "format": "int32",
          "type": "integer"
        },
        "ids": {
          "type": "array",
          "items": {
            "format": "int64",
            "type": "string"
          }
        }
      }
    },
    "Bar": {
      "type": "object",
      "properties": {
        "id": {
          "format": "int64",
          "type": "string"
        }
      }
    }
  }
    〜略〜
}
model.d.ts
export interface Bar {
    id?: string; // int64
}
export interface Foo {
    id?: string; // int64
    bar?: Bar;
    name?: string;
    count?: number; // int32
    ids?: string /* int64 */ [];
}