From f87c9581e0164b6d48d5b451aa82a1a5f74deb07 Mon Sep 17 00:00:00 2001 From: "K.Himeno" <6715229+Himenon@users.noreply.github.com> Date: Sat, 2 May 2026 20:50:02 +0900 Subject: [PATCH 1/4] chore: fix maintenance branch CI and port missing PR#141 changes --- .dependency-cruiser.cjs | 2 +- .github/workflows/build.yml | 1 + lefthook.yml | 2 +- package.json | 9 +-- scripts/tools/shell.ts | 4 +- .../__tests__/PathParameter-test.ts | 1 + .../_shared/__tests__/utils.test.ts | 1 + src/internal/OpenApiTools/Walker/Store.ts | 2 +- .../__snapshots__/cloudflare-test.ts.snap | 60 +++++++++---------- .../typedef-with-template-test.ts.snap | 40 ++++++------- test/__tests__/class/argo-rollout-test.ts | 1 + test/__tests__/class/cloudflare-test.ts | 1 + test/__tests__/class/format.domain.ts | 1 + test/__tests__/class/kubernetes-test.ts | 1 + .../__tests__/class/multi-type.test.domain.ts | 1 + test/__tests__/class/parameter-test.ts | 1 + test/__tests__/class/spit-code-test.ts | 1 + test/__tests__/class/template-only-test.ts | 1 + test/__tests__/class/typedef-only-test.ts | 1 + .../class/typedef-with-template-test.ts | 1 + .../class/unknown-schema-domain-test.ts | 1 + test/__tests__/client-generate-test.ts | 1 + .../__snapshots__/coudflare-test.ts.snap | 60 +++++++++---------- .../currying-functional/coudflare-test.ts | 1 + .../__snapshots__/coudflare-test.ts.snap | 60 +++++++++---------- .../typedef-with-template-test.ts.snap | 40 ++++++------- .../__tests__/functional/argo-rollout-test.ts | 1 + test/__tests__/functional/coudflare-test.ts | 1 + test/__tests__/functional/format.domain.ts | 1 + test/__tests__/functional/kubernetes-test.ts | 1 + .../functional/multi-type.test.domain.ts | 1 + test/__tests__/functional/parameter-test.ts | 1 + test/__tests__/functional/spit-code-test.ts | 1 + .../functional/template-only-test.ts | 1 + .../__tests__/functional/typedef-only-test.ts | 1 + .../functional/typedef-with-template-test.ts | 1 + .../unknown-schema-domain-test copy.ts | 1 + tsconfig.json | 3 +- 38 files changed, 167 insertions(+), 142 deletions(-) diff --git a/.dependency-cruiser.cjs b/.dependency-cruiser.cjs index cb7df1bd..0e682527 100644 --- a/.dependency-cruiser.cjs +++ b/.dependency-cruiser.cjs @@ -57,7 +57,7 @@ module.exports = { "from.pathNot re of the not-to-dev-dep rule in the dependency-cruiser configuration", from: { path: "^(src|app|lib)", - pathNot: "\\.spec\\.(js|ts|ls|coffee|litcoffee|coffee\\.md)$", + pathNot: "(\\.spec\\.(js|ts|ls|coffee|litcoffee|coffee\\.md)$|__tests__|[-.]test\\.ts$)", }, to: { dependencyTypes: ["npm-dev"], diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5dce897d..62126501 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,6 +33,7 @@ jobs: - name: Test & Build run: | pnpm build + pnpm type-check pnpm test:code:gen pnpm test env: diff --git a/lefthook.yml b/lefthook.yml index c2eb40b9..01a8b6df 100644 --- a/lefthook.yml +++ b/lefthook.yml @@ -2,7 +2,7 @@ pre-commit: commands: format: glob: "*.{js,jsx,json,yml,yaml,html,md,ts,tsx}" - run: biome format --no-errors-on-unmatched --write {staged_files} + run: pnpm exec biome format --no-errors-on-unmatched --write {staged_files} stage_fixed: true sort-package-json: glob: "package.json" diff --git a/package.json b/package.json index aacdd1bc..a343cd76 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,13 @@ { "name": "@himenon/openapi-typescript-code-generator", "version": "1.1.1", - "description": "OpenAPI Code Generator using TypeScript AST.", + "description": "OpenAPI Code Generator using Template literals.", "keywords": [ "openapi", "openapi3", "openapi-codegen", "openapi-generator", - "typescript", - "typescript-ast" + "typescript" ], "homepage": "https://github.com/Himenon/openapi-typescript-code-generator#readme", "bugs": { @@ -73,6 +72,7 @@ "test:snapshot": "vitest run --config ./vitest.snapshot.config.ts", "test:vitest": "vitest run --config ./vitest.config.ts --coverage", "ts": "node --no-warnings=ExperimentalWarning --experimental-specifier-resolution=node --loader ts-node/esm", + "type-check": "tsc --noEmit", "update:snapshot": "vitest run --config ./vitest.snapshot.config.ts --update", "validate": "pnpm ts ./scripts/validate.ts", "watch": "pnpm ts ./scripts/watch.ts" @@ -118,9 +118,6 @@ "typescript": "6.0.3", "vitest": "^4.1.5" }, - "peerDependencies": { - "typescript": ">=5" - }, "packageManager": "pnpm@10.33.2", "engines": { "node": ">=22.0.0" diff --git a/scripts/tools/shell.ts b/scripts/tools/shell.ts index ffd91c82..27d12655 100644 --- a/scripts/tools/shell.ts +++ b/scripts/tools/shell.ts @@ -1,6 +1,6 @@ -import { ExecaChildProcess, execa } from "execa"; +import { type ResultPromise, execa } from "execa"; -export const shell = (command: string, cwd: string = process.cwd()): ExecaChildProcess => { +export const shell = (command: string, cwd: string = process.cwd()): ResultPromise => { return execa(command, { stdio: ["pipe", "pipe", "inherit"], shell: true, diff --git a/src/code-templates/_shared/MethodBody/__tests__/PathParameter-test.ts b/src/code-templates/_shared/MethodBody/__tests__/PathParameter-test.ts index 0383d489..ef430e5c 100644 --- a/src/code-templates/_shared/MethodBody/__tests__/PathParameter-test.ts +++ b/src/code-templates/_shared/MethodBody/__tests__/PathParameter-test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import ts from "typescript"; import { TsGenerator } from "../../../../api"; diff --git a/src/code-templates/_shared/__tests__/utils.test.ts b/src/code-templates/_shared/__tests__/utils.test.ts index 082afe3a..f811cf7f 100644 --- a/src/code-templates/_shared/__tests__/utils.test.ts +++ b/src/code-templates/_shared/__tests__/utils.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as Utils from "../utils"; type OK = Utils.VariableElement; diff --git a/src/internal/OpenApiTools/Walker/Store.ts b/src/internal/OpenApiTools/Walker/Store.ts index b9596e53..1e5d52be 100644 --- a/src/internal/OpenApiTools/Walker/Store.ts +++ b/src/internal/OpenApiTools/Walker/Store.ts @@ -153,7 +153,7 @@ class Store { if (!result) { throw new Error(`Not found ${localPath}`); } - return result; + return result as any; } public isAfterDefined(referencePath: string): boolean { return !!DotProp.getProperty(this.state.document, referencePath.replace(/\//g, ".")); diff --git a/test/__tests__/class/__snapshots__/cloudflare-test.ts.snap b/test/__tests__/class/__snapshots__/cloudflare-test.ts.snap index 439c032b..7634c572 100644 --- a/test/__tests__/class/__snapshots__/cloudflare-test.ts.snap +++ b/test/__tests__/class/__snapshots__/cloudflare-test.ts.snap @@ -54817,12 +54817,12 @@ export class Client { Accept: "application/json" }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } -}; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } + }; return this.apiClient.request({ httpMethod: "PUT", url, @@ -54876,12 +54876,12 @@ export class Client { "CF-WORKER-MAIN-MODULE-PART": params.parameter["CF-WORKER-MAIN-MODULE-PART"] }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } -}; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } + }; return this.apiClient.request({ httpMethod: "PUT", url, @@ -55209,12 +55209,12 @@ export class Client { Accept: "application/json" }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } -}; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } + }; const queryParameters: QueryParameters = { rollback_to: { value: params.parameter.rollback_to, explode: false } }; @@ -55257,12 +55257,12 @@ export class Client { "CF-WORKER-MAIN-MODULE-PART": params.parameter["CF-WORKER-MAIN-MODULE-PART"] }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } -}; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } + }; return this.apiClient.request({ httpMethod: "PUT", url, @@ -55455,12 +55455,12 @@ export class Client { "CF-WORKER-MAIN-MODULE-PART": params.parameter["CF-WORKER-MAIN-MODULE-PART"] }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } -}; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } + }; return this.apiClient.request({ httpMethod: "PUT", url, diff --git a/test/__tests__/class/__snapshots__/typedef-with-template-test.ts.snap b/test/__tests__/class/__snapshots__/typedef-with-template-test.ts.snap index 9bf246e4..de6c1167 100644 --- a/test/__tests__/class/__snapshots__/typedef-with-template-test.ts.snap +++ b/test/__tests__/class/__snapshots__/typedef-with-template-test.ts.snap @@ -1504,13 +1504,13 @@ export class Client { Accept: "application/json" }; const requestEncodings: Record> = { - "application/x-www-form-urlencoded": { - "color": { - "style": "form", - "explode": false - } - } -}; + "application/x-www-form-urlencoded": { + "color": { + "style": "form", + "explode": false + } + } + }; return this.apiClient.request({ httpMethod: "POST", url, @@ -1526,19 +1526,19 @@ export class Client { Accept: "application/json" }; const requestEncodings: Record> = { - "application/x-www-form-urlencoded": { - "color": { - "style": "form", - "explode": false - } - }, - "application/json": { - "color": { - "style": "form", - "explode": false - } - } -}; + "application/x-www-form-urlencoded": { + "color": { + "style": "form", + "explode": false + } + }, + "application/json": { + "color": { + "style": "form", + "explode": false + } + } + }; return this.apiClient.request({ httpMethod: "POST", url, diff --git a/test/__tests__/class/argo-rollout-test.ts b/test/__tests__/class/argo-rollout-test.ts index ae42001f..a1dbe6a3 100644 --- a/test/__tests__/class/argo-rollout-test.ts +++ b/test/__tests__/class/argo-rollout-test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/class/cloudflare-test.ts b/test/__tests__/class/cloudflare-test.ts index c21db5f1..12049bf4 100644 --- a/test/__tests__/class/cloudflare-test.ts +++ b/test/__tests__/class/cloudflare-test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/class/format.domain.ts b/test/__tests__/class/format.domain.ts index cdf234cf..06ea67b1 100644 --- a/test/__tests__/class/format.domain.ts +++ b/test/__tests__/class/format.domain.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/class/kubernetes-test.ts b/test/__tests__/class/kubernetes-test.ts index 7ccd2690..87eb742e 100644 --- a/test/__tests__/class/kubernetes-test.ts +++ b/test/__tests__/class/kubernetes-test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/class/multi-type.test.domain.ts b/test/__tests__/class/multi-type.test.domain.ts index 9155f4fb..4685f314 100644 --- a/test/__tests__/class/multi-type.test.domain.ts +++ b/test/__tests__/class/multi-type.test.domain.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/class/parameter-test.ts b/test/__tests__/class/parameter-test.ts index c87e942e..25b88fa6 100644 --- a/test/__tests__/class/parameter-test.ts +++ b/test/__tests__/class/parameter-test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/class/spit-code-test.ts b/test/__tests__/class/spit-code-test.ts index 6218286e..c70dbbc9 100644 --- a/test/__tests__/class/spit-code-test.ts +++ b/test/__tests__/class/spit-code-test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/class/template-only-test.ts b/test/__tests__/class/template-only-test.ts index 35959325..6078953f 100644 --- a/test/__tests__/class/template-only-test.ts +++ b/test/__tests__/class/template-only-test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/class/typedef-only-test.ts b/test/__tests__/class/typedef-only-test.ts index ba69e229..0aab2bef 100644 --- a/test/__tests__/class/typedef-only-test.ts +++ b/test/__tests__/class/typedef-only-test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/class/typedef-with-template-test.ts b/test/__tests__/class/typedef-with-template-test.ts index c5d16c94..fff17508 100644 --- a/test/__tests__/class/typedef-with-template-test.ts +++ b/test/__tests__/class/typedef-with-template-test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/class/unknown-schema-domain-test.ts b/test/__tests__/class/unknown-schema-domain-test.ts index add08db7..ae7a84b7 100644 --- a/test/__tests__/class/unknown-schema-domain-test.ts +++ b/test/__tests__/class/unknown-schema-domain-test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/client-generate-test.ts b/test/__tests__/client-generate-test.ts index f31d3276..44fb780b 100644 --- a/test/__tests__/client-generate-test.ts +++ b/test/__tests__/client-generate-test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import { CodeGenerator } from "../../src"; diff --git a/test/__tests__/currying-functional/__snapshots__/coudflare-test.ts.snap b/test/__tests__/currying-functional/__snapshots__/coudflare-test.ts.snap index 3227cc62..c7df42e5 100644 --- a/test/__tests__/currying-functional/__snapshots__/coudflare-test.ts.snap +++ b/test/__tests__/currying-functional/__snapshots__/coudflare-test.ts.snap @@ -54803,12 +54803,12 @@ export const namespace$worker$script$upload$worker$module = (apiC Accept: "application/json" }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } -}; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } + }; return apiClient.request({ httpMethod: "PUT", uri, @@ -54862,12 +54862,12 @@ export const namespace$worker$put$script$content = (apiClient: Ap "CF-WORKER-MAIN-MODULE-PART": params.parameter["CF-WORKER-MAIN-MODULE-PART"] }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } -}; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } + }; return apiClient.request({ httpMethod: "PUT", uri, @@ -55195,12 +55195,12 @@ export const worker$script$upload$worker$module = (apiClient: Api Accept: "application/json" }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } -}; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } + }; const queryParameters: QueryParameters = { rollback_to: { value: params.parameter.rollback_to, explode: false } }; @@ -55243,12 +55243,12 @@ export const worker$script$put$content = (apiClient: ApiClient> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } -}; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } + }; return apiClient.request({ httpMethod: "PUT", uri, @@ -55441,12 +55441,12 @@ export const worker$environment$put$script$content = (apiClient: "CF-WORKER-MAIN-MODULE-PART": params.parameter["CF-WORKER-MAIN-MODULE-PART"] }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } -}; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } + }; return apiClient.request({ httpMethod: "PUT", uri, diff --git a/test/__tests__/currying-functional/coudflare-test.ts b/test/__tests__/currying-functional/coudflare-test.ts index 3405fe7f..3fa79fcb 100644 --- a/test/__tests__/currying-functional/coudflare-test.ts +++ b/test/__tests__/currying-functional/coudflare-test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/functional/__snapshots__/coudflare-test.ts.snap b/test/__tests__/functional/__snapshots__/coudflare-test.ts.snap index 37f2cb3f..3be4f1d2 100644 --- a/test/__tests__/functional/__snapshots__/coudflare-test.ts.snap +++ b/test/__tests__/functional/__snapshots__/coudflare-test.ts.snap @@ -54806,12 +54806,12 @@ export const createClient = (apiClient: ApiClient, Accept: "application/json" }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } -}; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } + }; return apiClient.request({ httpMethod: "PUT", url, @@ -54865,12 +54865,12 @@ export const createClient = (apiClient: ApiClient, "CF-WORKER-MAIN-MODULE-PART": params.parameter["CF-WORKER-MAIN-MODULE-PART"] }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } -}; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } + }; return apiClient.request({ httpMethod: "PUT", url, @@ -55198,12 +55198,12 @@ export const createClient = (apiClient: ApiClient, Accept: "application/json" }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } -}; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } + }; const queryParameters: QueryParameters = { rollback_to: { value: params.parameter.rollback_to, explode: false } }; @@ -55246,12 +55246,12 @@ export const createClient = (apiClient: ApiClient, "CF-WORKER-MAIN-MODULE-PART": params.parameter["CF-WORKER-MAIN-MODULE-PART"] }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } -}; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } + }; return apiClient.request({ httpMethod: "PUT", url, @@ -55444,12 +55444,12 @@ export const createClient = (apiClient: ApiClient, "CF-WORKER-MAIN-MODULE-PART": params.parameter["CF-WORKER-MAIN-MODULE-PART"] }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } -}; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } + }; return apiClient.request({ httpMethod: "PUT", url, diff --git a/test/__tests__/functional/__snapshots__/typedef-with-template-test.ts.snap b/test/__tests__/functional/__snapshots__/typedef-with-template-test.ts.snap index 3eaff708..1b7d500c 100644 --- a/test/__tests__/functional/__snapshots__/typedef-with-template-test.ts.snap +++ b/test/__tests__/functional/__snapshots__/typedef-with-template-test.ts.snap @@ -1515,13 +1515,13 @@ export const createClient = (apiClient: ApiClient, Accept: "application/json" }; const requestEncodings: Record> = { - "application/x-www-form-urlencoded": { - "color": { - "style": "form", - "explode": false - } - } -}; + "application/x-www-form-urlencoded": { + "color": { + "style": "form", + "explode": false + } + } + }; return apiClient.request({ httpMethod: "POST", url, @@ -1537,19 +1537,19 @@ export const createClient = (apiClient: ApiClient, Accept: "application/json" }; const requestEncodings: Record> = { - "application/x-www-form-urlencoded": { - "color": { - "style": "form", - "explode": false - } - }, - "application/json": { - "color": { - "style": "form", - "explode": false - } - } -}; + "application/x-www-form-urlencoded": { + "color": { + "style": "form", + "explode": false + } + }, + "application/json": { + "color": { + "style": "form", + "explode": false + } + } + }; return apiClient.request({ httpMethod: "POST", url, diff --git a/test/__tests__/functional/argo-rollout-test.ts b/test/__tests__/functional/argo-rollout-test.ts index 3b24c6e3..064bca64 100644 --- a/test/__tests__/functional/argo-rollout-test.ts +++ b/test/__tests__/functional/argo-rollout-test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/functional/coudflare-test.ts b/test/__tests__/functional/coudflare-test.ts index 2578a301..29aa165a 100644 --- a/test/__tests__/functional/coudflare-test.ts +++ b/test/__tests__/functional/coudflare-test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/functional/format.domain.ts b/test/__tests__/functional/format.domain.ts index 17696593..a4f45063 100644 --- a/test/__tests__/functional/format.domain.ts +++ b/test/__tests__/functional/format.domain.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/functional/kubernetes-test.ts b/test/__tests__/functional/kubernetes-test.ts index d4151acc..d9c2915b 100644 --- a/test/__tests__/functional/kubernetes-test.ts +++ b/test/__tests__/functional/kubernetes-test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/functional/multi-type.test.domain.ts b/test/__tests__/functional/multi-type.test.domain.ts index 74a1dd6d..bb93fe8c 100644 --- a/test/__tests__/functional/multi-type.test.domain.ts +++ b/test/__tests__/functional/multi-type.test.domain.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/functional/parameter-test.ts b/test/__tests__/functional/parameter-test.ts index 603fbc03..912cb393 100644 --- a/test/__tests__/functional/parameter-test.ts +++ b/test/__tests__/functional/parameter-test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/functional/spit-code-test.ts b/test/__tests__/functional/spit-code-test.ts index 7cd3eaaa..d7ffb3e2 100644 --- a/test/__tests__/functional/spit-code-test.ts +++ b/test/__tests__/functional/spit-code-test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/functional/template-only-test.ts b/test/__tests__/functional/template-only-test.ts index ebc32955..c97c04e6 100644 --- a/test/__tests__/functional/template-only-test.ts +++ b/test/__tests__/functional/template-only-test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/functional/typedef-only-test.ts b/test/__tests__/functional/typedef-only-test.ts index 13a02b8b..ec43ef53 100644 --- a/test/__tests__/functional/typedef-only-test.ts +++ b/test/__tests__/functional/typedef-only-test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/functional/typedef-with-template-test.ts b/test/__tests__/functional/typedef-with-template-test.ts index ac6421e8..9bb15858 100644 --- a/test/__tests__/functional/typedef-with-template-test.ts +++ b/test/__tests__/functional/typedef-with-template-test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/test/__tests__/functional/unknown-schema-domain-test copy.ts b/test/__tests__/functional/unknown-schema-domain-test copy.ts index 39984a4f..24fcf334 100644 --- a/test/__tests__/functional/unknown-schema-domain-test copy.ts +++ b/test/__tests__/functional/unknown-schema-domain-test copy.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from "vitest"; import * as fs from "fs"; import * as Utils from "../../utils"; diff --git a/tsconfig.json b/tsconfig.json index bfb3a9b8..46971edc 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -19,5 +19,6 @@ "ts-node": { "esm": true, "swc": true - } + }, + "exclude": ["test/code", "examples/"] } From 096f407a1ade52da2181c6300401ac622d156c28 Mon Sep 17 00:00:00 2001 From: "K.Himeno" <6715229+Himenon@users.noreply.github.com> Date: Sat, 2 May 2026 20:55:17 +0900 Subject: [PATCH 2/4] chore: revert description and remove redundant test file --- package.json | 2 +- .../functional/unknown-schema-domain-test copy.ts | 12 ------------ 2 files changed, 1 insertion(+), 13 deletions(-) delete mode 100644 test/__tests__/functional/unknown-schema-domain-test copy.ts diff --git a/package.json b/package.json index a343cd76..8ef7fcb8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@himenon/openapi-typescript-code-generator", "version": "1.1.1", - "description": "OpenAPI Code Generator using Template literals.", + "description": "OpenAPI Code Generator using TypeScript AST.", "keywords": [ "openapi", "openapi3", diff --git a/test/__tests__/functional/unknown-schema-domain-test copy.ts b/test/__tests__/functional/unknown-schema-domain-test copy.ts deleted file mode 100644 index 24fcf334..00000000 --- a/test/__tests__/functional/unknown-schema-domain-test copy.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { describe, expect, it, test } from "vitest"; -import * as fs from "fs"; - -import * as Utils from "../../utils"; - -describe("Unknown", () => { - test("client.ts", () => { - const generateCode = fs.readFileSync("test/code/functional/unknown.schema.domain/client.ts", { encoding: "utf-8" }); - const text = Utils.replaceVersionInfo(generateCode); - expect(text).toMatchSnapshot(); - }); -}); From cf275e066602febedd3c4fc2afa80684ba8e68a1 Mon Sep 17 00:00:00 2001 From: "K.Himeno" <6715229+Himenon@users.noreply.github.com> Date: Sat, 2 May 2026 21:02:16 +0900 Subject: [PATCH 3/4] chore: restore keywords and peerDependencies --- package.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 8ef7fcb8..08dbc6c7 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,8 @@ "openapi3", "openapi-codegen", "openapi-generator", - "typescript" + "typescript", + "typescript-ast" ], "homepage": "https://github.com/Himenon/openapi-typescript-code-generator#readme", "bugs": { @@ -118,6 +119,9 @@ "typescript": "6.0.3", "vitest": "^4.1.5" }, + "peerDependencies": { + "typescript": ">=5" + }, "packageManager": "pnpm@10.33.2", "engines": { "node": ">=22.0.0" From 5d4e989e5fa49b4b888606ece6e0095a64a9a4fb Mon Sep 17 00:00:00 2001 From: "K.Himeno" <6715229+Himenon@users.noreply.github.com> Date: Sat, 2 May 2026 22:01:43 +0900 Subject: [PATCH 4/4] chore: update snapshot --- src/internal/OpenApiTools/Walker/Store.ts | 2 +- .../__snapshots__/cloudflare-test.ts.snap | 60 +++++++++---------- .../typedef-with-template-test.ts.snap | 40 ++++++------- .../__snapshots__/coudflare-test.ts.snap | 60 +++++++++---------- .../__snapshots__/coudflare-test.ts.snap | 60 +++++++++---------- .../typedef-with-template-test.ts.snap | 40 ++++++------- 6 files changed, 131 insertions(+), 131 deletions(-) diff --git a/src/internal/OpenApiTools/Walker/Store.ts b/src/internal/OpenApiTools/Walker/Store.ts index 1e5d52be..c0028283 100644 --- a/src/internal/OpenApiTools/Walker/Store.ts +++ b/src/internal/OpenApiTools/Walker/Store.ts @@ -153,7 +153,7 @@ class Store { if (!result) { throw new Error(`Not found ${localPath}`); } - return result as any; + return result as OpenApi.Parameter; } public isAfterDefined(referencePath: string): boolean { return !!DotProp.getProperty(this.state.document, referencePath.replace(/\//g, ".")); diff --git a/test/__tests__/class/__snapshots__/cloudflare-test.ts.snap b/test/__tests__/class/__snapshots__/cloudflare-test.ts.snap index 7634c572..439c032b 100644 --- a/test/__tests__/class/__snapshots__/cloudflare-test.ts.snap +++ b/test/__tests__/class/__snapshots__/cloudflare-test.ts.snap @@ -54817,12 +54817,12 @@ export class Client { Accept: "application/json" }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } - }; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } +}; return this.apiClient.request({ httpMethod: "PUT", url, @@ -54876,12 +54876,12 @@ export class Client { "CF-WORKER-MAIN-MODULE-PART": params.parameter["CF-WORKER-MAIN-MODULE-PART"] }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } - }; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } +}; return this.apiClient.request({ httpMethod: "PUT", url, @@ -55209,12 +55209,12 @@ export class Client { Accept: "application/json" }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } - }; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } +}; const queryParameters: QueryParameters = { rollback_to: { value: params.parameter.rollback_to, explode: false } }; @@ -55257,12 +55257,12 @@ export class Client { "CF-WORKER-MAIN-MODULE-PART": params.parameter["CF-WORKER-MAIN-MODULE-PART"] }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } - }; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } +}; return this.apiClient.request({ httpMethod: "PUT", url, @@ -55455,12 +55455,12 @@ export class Client { "CF-WORKER-MAIN-MODULE-PART": params.parameter["CF-WORKER-MAIN-MODULE-PART"] }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } - }; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } +}; return this.apiClient.request({ httpMethod: "PUT", url, diff --git a/test/__tests__/class/__snapshots__/typedef-with-template-test.ts.snap b/test/__tests__/class/__snapshots__/typedef-with-template-test.ts.snap index de6c1167..9bf246e4 100644 --- a/test/__tests__/class/__snapshots__/typedef-with-template-test.ts.snap +++ b/test/__tests__/class/__snapshots__/typedef-with-template-test.ts.snap @@ -1504,13 +1504,13 @@ export class Client { Accept: "application/json" }; const requestEncodings: Record> = { - "application/x-www-form-urlencoded": { - "color": { - "style": "form", - "explode": false - } - } - }; + "application/x-www-form-urlencoded": { + "color": { + "style": "form", + "explode": false + } + } +}; return this.apiClient.request({ httpMethod: "POST", url, @@ -1526,19 +1526,19 @@ export class Client { Accept: "application/json" }; const requestEncodings: Record> = { - "application/x-www-form-urlencoded": { - "color": { - "style": "form", - "explode": false - } - }, - "application/json": { - "color": { - "style": "form", - "explode": false - } - } - }; + "application/x-www-form-urlencoded": { + "color": { + "style": "form", + "explode": false + } + }, + "application/json": { + "color": { + "style": "form", + "explode": false + } + } +}; return this.apiClient.request({ httpMethod: "POST", url, diff --git a/test/__tests__/currying-functional/__snapshots__/coudflare-test.ts.snap b/test/__tests__/currying-functional/__snapshots__/coudflare-test.ts.snap index c7df42e5..3227cc62 100644 --- a/test/__tests__/currying-functional/__snapshots__/coudflare-test.ts.snap +++ b/test/__tests__/currying-functional/__snapshots__/coudflare-test.ts.snap @@ -54803,12 +54803,12 @@ export const namespace$worker$script$upload$worker$module = (apiC Accept: "application/json" }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } - }; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } +}; return apiClient.request({ httpMethod: "PUT", uri, @@ -54862,12 +54862,12 @@ export const namespace$worker$put$script$content = (apiClient: Ap "CF-WORKER-MAIN-MODULE-PART": params.parameter["CF-WORKER-MAIN-MODULE-PART"] }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } - }; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } +}; return apiClient.request({ httpMethod: "PUT", uri, @@ -55195,12 +55195,12 @@ export const worker$script$upload$worker$module = (apiClient: Api Accept: "application/json" }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } - }; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } +}; const queryParameters: QueryParameters = { rollback_to: { value: params.parameter.rollback_to, explode: false } }; @@ -55243,12 +55243,12 @@ export const worker$script$put$content = (apiClient: ApiClient> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } - }; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } +}; return apiClient.request({ httpMethod: "PUT", uri, @@ -55441,12 +55441,12 @@ export const worker$environment$put$script$content = (apiClient: "CF-WORKER-MAIN-MODULE-PART": params.parameter["CF-WORKER-MAIN-MODULE-PART"] }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } - }; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } +}; return apiClient.request({ httpMethod: "PUT", uri, diff --git a/test/__tests__/functional/__snapshots__/coudflare-test.ts.snap b/test/__tests__/functional/__snapshots__/coudflare-test.ts.snap index 3be4f1d2..37f2cb3f 100644 --- a/test/__tests__/functional/__snapshots__/coudflare-test.ts.snap +++ b/test/__tests__/functional/__snapshots__/coudflare-test.ts.snap @@ -54806,12 +54806,12 @@ export const createClient = (apiClient: ApiClient, Accept: "application/json" }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } - }; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } +}; return apiClient.request({ httpMethod: "PUT", url, @@ -54865,12 +54865,12 @@ export const createClient = (apiClient: ApiClient, "CF-WORKER-MAIN-MODULE-PART": params.parameter["CF-WORKER-MAIN-MODULE-PART"] }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } - }; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } +}; return apiClient.request({ httpMethod: "PUT", url, @@ -55198,12 +55198,12 @@ export const createClient = (apiClient: ApiClient, Accept: "application/json" }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } - }; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } +}; const queryParameters: QueryParameters = { rollback_to: { value: params.parameter.rollback_to, explode: false } }; @@ -55246,12 +55246,12 @@ export const createClient = (apiClient: ApiClient, "CF-WORKER-MAIN-MODULE-PART": params.parameter["CF-WORKER-MAIN-MODULE-PART"] }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } - }; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } +}; return apiClient.request({ httpMethod: "PUT", url, @@ -55444,12 +55444,12 @@ export const createClient = (apiClient: ApiClient, "CF-WORKER-MAIN-MODULE-PART": params.parameter["CF-WORKER-MAIN-MODULE-PART"] }; const requestEncodings: Record> = { - "multipart/form-data": { - "": { - "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" - } - } - }; + "multipart/form-data": { + "": { + "contentType": "application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream" + } + } +}; return apiClient.request({ httpMethod: "PUT", url, diff --git a/test/__tests__/functional/__snapshots__/typedef-with-template-test.ts.snap b/test/__tests__/functional/__snapshots__/typedef-with-template-test.ts.snap index 1b7d500c..3eaff708 100644 --- a/test/__tests__/functional/__snapshots__/typedef-with-template-test.ts.snap +++ b/test/__tests__/functional/__snapshots__/typedef-with-template-test.ts.snap @@ -1515,13 +1515,13 @@ export const createClient = (apiClient: ApiClient, Accept: "application/json" }; const requestEncodings: Record> = { - "application/x-www-form-urlencoded": { - "color": { - "style": "form", - "explode": false - } - } - }; + "application/x-www-form-urlencoded": { + "color": { + "style": "form", + "explode": false + } + } +}; return apiClient.request({ httpMethod: "POST", url, @@ -1537,19 +1537,19 @@ export const createClient = (apiClient: ApiClient, Accept: "application/json" }; const requestEncodings: Record> = { - "application/x-www-form-urlencoded": { - "color": { - "style": "form", - "explode": false - } - }, - "application/json": { - "color": { - "style": "form", - "explode": false - } - } - }; + "application/x-www-form-urlencoded": { + "color": { + "style": "form", + "explode": false + } + }, + "application/json": { + "color": { + "style": "form", + "explode": false + } + } +}; return apiClient.request({ httpMethod: "POST", url,