Skip to content

Commit df022c2

Browse files
authored
feat: Initial commit of OpenAPI TypeScript Generator (#2)
* feat: addExport * feat: add oas3.0.1 types * feat: update open api 3.1.0 types * feat: update open api 3.1.0 types * feat: factoryを作成 * feat: 整理 * refactor: 変数名の整理 * feat: schemaをTypeNodeに変換する * feat: parametersに対応 * feat: commentsがつくように修正 * chore: add comment * feat: referenceの再帰的解決ができるようになった * refactor: entryPointとcurrentPointに変数名を変更 * feat: 各Propertyに処理を分離 * feat: requestBodiesを追加 * feat: add securitySchemes * feat: pathItemsに対応 * docs: add comment * feat: コメントを追加 * feat: typeGuardを追加 * fix: SingleCommentの場合の改行修正とReferenceの挙動修正 * feat: enumに対応 * feat: objectのrequiredに対応 * feat: additionalProperties対応をした * fix: enum対応の漏れを修正 * fix: 日本語がエスケープされる不具合の修正 * fix: import name * fix: oneOf, allOf対応 * refactor: ディレクトリ構造を整理 * feat: storeを作成 * feat: referenceの更新 * test: add test code * chore(scripts): 開発用のwatcherを追加 * feat: referenceの挙動を確定 * fix: referenceの挙動を安定化 * feat: Storeの構造を調整 * refactor: rename test file * feat: propAccess test * test: PropAccess * feat: 新しいStoreの構造でcodeが生成できるようになった * feat: genericsにした * feat: responses, headersの調整 * feat: securitySchemasに対応 * feat: pathItemsを対応 * feat: referenceがあった場合にTypeReferenceで登録できるようにした * feat: reference取得時のcallbackを作成 * feat: setReferenceの更新 * feat: 参照の解決ができるようになった * feat: requestBodiesを追加 * feat: operationのparametersに対応 * feat: operationに対応 * fix: localReferenceの整理 * refactor: errorを分類した * docs: add test case * test: testの修正 * fix: import order * chore: update dependencies version * feat: operation.parameteresのreference対応 * feat: pathItems.requestBodyに対応 * feat: responseに対応 * test: add validate * feat: responsesの調整 * fix: StatusCodeが含まれない不具合の修正 * feat: pathItemsの定義を制限した * refactor: coponentsに分離 * feat(header): headerをinterfaceに変更 * feat(header): headerをinterfaceに変更 * feat(parameter): namespaceからinterfaceに変更 * fix: schemasでtypeAliasが作成されていない不具合の修正 * feat: pathsの処理を分割 * feat: 引数の型定義を出力 * feat: 引数の型定義を生成 * refactor: factoryで利用できるts generatorを追加 * feat: コード生成用のテンプレートを作成 * feat: classが生成されるようになった * feat: responseの型調整 * refactor: templateの調整 * feat: Generatorの分離 * refactor: remove file * feat: async, union type対応 * feat: parametersの抽出 * feat: parameteresの取得 * feat: PathParameterを追加できるようにした * fix: 係数倍の忘れを修正 * fix: replaceされなかったrequestUrlTicksがあった場合に最後に結合する * feat: queryParameterとheaderParmaeterの生成 * feat: CallRequestを追加 * fix: typo * fix: 型定義を調整 * fix: schemaのreferenceを最初にすべて解決する * feat: remote referenceの解決 * feat: referenceを解決したobjectを入手できるようにした * feat: Nameを一元管理 * feat: ResponseTypeを修正 * feat: ContentTypeのGenericsを追加 * feat: responseのcontentTypeが複数の場合に対応した * feat: headerを追加 * feat: paramsのGenerics指定の完成 * feat: headerの挿入 * feat: requestBodyが存在する場合にパラメーターから取得するようにした * feat: queryParameterが存在する場合だけ変数定義をする * feat: QueryParmaeterの整形をDIするApiClientに任せるように調整 * fix: explodeが渡されない不具合の修正 * fix: PathParameterで/がつかない不具合の修正 * fix: pathIdentifer関係を削除 * fix: Local Reference対応 * fix: 利用されていないinterfaceの定義は出力しないようにした * fix: response.contentにContentTypeが指定されていない場合はstatusCodeを読み取らないようにする * feat: methodにコメントを入れる * test: テストケースを追加 * refactor: tsのNodeに依存しないように修正 * feat: TODO整理 * fix: ParameterのLocalReferenceを修正 * feat: pathItemのreference対応 * feat: TODO棚卸し * docs: update readme * test: fix config * ci: remove codeql * ci: fix checkout sha * fix: test code types * chore: update libraries * test: add snapshot test * ci: change order * ci: remove debug file * ci: fix mkdir * refactor: rename directory * docs: add template * refactor: CodeGenerator用のParmaeterを切り出し * refactor: type names * refactor: update name * feat: コードをユーザーが自由に変更できるAPIを作成した * feat: CodeTemplateを切り出し * test: fix circular dependency * feat: add validator * test: テスト項目を随時追加 * test: add directory schema * test: add parmaeters,responses,requestBodies * test: direct remote referenceの試験を追加 * feat: update test * test: update * fix: parameter remote schema * refactor: method move * test: add response remote reference * test: add requestBodies * test: add header reference * test: update * refactor: remove unused variable * feat: pathItemsのvalidatorを緩和 * fix: reference to reference * docs: READMEを追加 * docs: update * docs: update * chore: add example project * fix: parameters requiredの修正 * fix: referenceの不具合などを修正 * feat: add max log length * fix: reference pointの指定ミス * feat: support nullable * docs: update example * docs: update * docs: update * docs: update * test: remove version text
1 parent b897d69 commit df022c2

File tree

186 files changed

+10501
-847
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

186 files changed

+10501
-847
lines changed

.eslintignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.gitignore

.eslintingore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
lib
2+
debug

.eslintrc.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ module.exports = {
1212
},
1313
plugins: ["@typescript-eslint"],
1414
rules: {
15-
"no-unused-vars": "error",
15+
"no-unused-vars": "warn",
1616
"@typescript-eslint/ban-types": "warn",
17+
"@typescript-eslint/no-namespace": "off",
1718
},
1819
};

.github/ISSUE_TEMPLATE/BUG_REPORT.md

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
name: "🐛 Bug Report"
3+
about: Report a reproducible bug or regression.
4+
title: "Bug: "
5+
labels: "Status: Unconfirmed"
6+
---
7+
8+
## Steps To Reproduce
9+
10+
<!--
11+
Please provide a clear and concise description of what the bug is. Include
12+
screenshots if needed. Please test using the latest version of the relevant
13+
React packages to make sure your issue has not already been fixed.
14+
-->
15+
16+
<!--
17+
Write the minimum OpenAPI JSON or YAML Schema needed to reproduce the bug.
18+
-->
19+
20+
## The current behavior
21+
22+
## The expected behavior

.github/PULL_REQUEST_TEMPLATE.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
## Summary
2+
3+
<!-- Explain the **motivation** for making this change. What existing problem does the pull request solve? -->
4+
5+
## Test Plan
6+
7+
<!-- Demonstrate the code is solid. Example: The exact commands you ran and their output, screenshots / videos if the pull request changes the user interface. -->

.github/workflows/build.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
steps:
1515
- uses: actions/checkout@v2
1616
with:
17-
ref: main
17+
ref: ${{ github.event.pull_request.head.sha }}
1818
- name: Use Node.js ${{ matrix.node-version }}
1919
uses: actions/setup-node@v1
2020
with:
@@ -23,7 +23,7 @@ jobs:
2323
- name: Test & Build
2424
run: |
2525
yarn install --frozen-lockfile
26-
yarn test
2726
yarn build
27+
yarn test
2828
env:
2929
CI: true

.github/workflows/codeql-analysis.yml

-68
This file was deleted.

.github/workflows/versionUp.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
steps:
1212
- uses: actions/checkout@v2
1313
with:
14-
ref: main
14+
ref: ${{ github.event.pull_request.head.sha }}
1515
- uses: actions/setup-node@v1
1616
with:
1717
node-version: "12.x"

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,5 @@ package-lock.json
66
.env*
77
*.log
88
private_npm_cache
9+
test/code
10+
debug

.vscode/launch.json

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{
2+
"version": "0.2.0",
3+
"configurations": [
4+
{
5+
"name": "test:code:gen",
6+
"type": "node",
7+
"request": "launch",
8+
"runtimeExecutable": "node",
9+
"runtimeArgs": ["--nolazy", "-r", "ts-node/register/transpile-only"],
10+
"args": ["scripts/testCodeGen.ts"],
11+
"cwd": "${workspaceRoot}",
12+
"env": {
13+
"TS_NODE_PROJECT": "tsconfig.build.json"
14+
},
15+
"internalConsoleOptions": "openOnSessionStart",
16+
"skipFiles": ["<node_internals>/**", "node_modules/**"]
17+
},
18+
{
19+
"name": "example:code:gen",
20+
"type": "node",
21+
"request": "launch",
22+
"runtimeExecutable": "node",
23+
"runtimeArgs": ["--nolazy", "-r", "ts-node/register/transpile-only"],
24+
"args": ["codegen.ts"],
25+
"cwd": "${workspaceRoot}/example",
26+
"env": {
27+
"TS_NODE_PROJECT": "tsconfig.json"
28+
},
29+
"internalConsoleOptions": "openOnSessionStart",
30+
"skipFiles": ["<node_internals>/**", "node_modules/**"]
31+
}
32+
]
33+
}

CHANGELOG.md

-84
This file was deleted.

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2020 Himenon
3+
Copyright (c) 2021 Himenon
44

55
Permission is hereby granted, free of charge, to any person obtaining
66
a copy of this software and associated documentation files (the

0 commit comments

Comments
 (0)