From b10a575815f964653739d52e2f340a674b7c0d65 Mon Sep 17 00:00:00 2001 From: "K.Himeno" <6715229+Himenon@users.noreply.github.com> Date: Mon, 20 Mar 2023 19:51:49 +0900 Subject: [PATCH 01/19] chore: initialize --- .../ApiClientArgument.ts | 0 .../MethodBody/CallRequest.ts | 6 ++-- .../MethodBody/HeaderParameter.ts | 4 +-- .../MethodBody/PathParameter.ts | 8 ++--- .../MethodBody/QueryParameter.ts | 6 ++-- .../__tests__/PathParameter-test.ts | 6 ++-- .../MethodBody/index.ts | 8 ++--- .../class-api-client/ApiClientClass/Method.ts | 2 +- src/code-templates/class-api-client/index.ts | 2 +- .../functional-api-client/index.ts | 31 +++++++++++++++++++ .../functional-api-client/types.ts | 6 ++++ src/templates.ts | 1 + 12 files changed, 59 insertions(+), 21 deletions(-) rename src/code-templates/{class-api-client => _shared}/ApiClientArgument.ts (100%) rename src/code-templates/{class-api-client/ApiClientClass => _shared}/MethodBody/CallRequest.ts (88%) rename src/code-templates/{class-api-client/ApiClientClass => _shared}/MethodBody/HeaderParameter.ts (84%) rename src/code-templates/{class-api-client/ApiClientClass => _shared}/MethodBody/PathParameter.ts (94%) rename src/code-templates/{class-api-client/ApiClientClass => _shared}/MethodBody/QueryParameter.ts (93%) rename src/code-templates/{class-api-client/ApiClientClass => _shared}/MethodBody/__tests__/PathParameter-test.ts (96%) rename src/code-templates/{class-api-client/ApiClientClass => _shared}/MethodBody/index.ts (93%) create mode 100644 src/code-templates/functional-api-client/index.ts create mode 100644 src/code-templates/functional-api-client/types.ts diff --git a/src/code-templates/class-api-client/ApiClientArgument.ts b/src/code-templates/_shared/ApiClientArgument.ts similarity index 100% rename from src/code-templates/class-api-client/ApiClientArgument.ts rename to src/code-templates/_shared/ApiClientArgument.ts diff --git a/src/code-templates/class-api-client/ApiClientClass/MethodBody/CallRequest.ts b/src/code-templates/_shared/MethodBody/CallRequest.ts similarity index 88% rename from src/code-templates/class-api-client/ApiClientClass/MethodBody/CallRequest.ts rename to src/code-templates/_shared/MethodBody/CallRequest.ts index 1b89a73c..87dee491 100644 --- a/src/code-templates/class-api-client/ApiClientClass/MethodBody/CallRequest.ts +++ b/src/code-templates/_shared/MethodBody/CallRequest.ts @@ -1,8 +1,8 @@ import ts from "typescript"; -import type { TsGenerator } from "../../../../api"; -import type { CodeGenerator } from "../../../../types"; -import * as Utils from "../../utils"; +import type { TsGenerator } from "../../../api"; +import type { CodeGenerator } from "../../../types"; +import * as Utils from "../../class-api-client/utils"; export interface Params { httpMethod: string; diff --git a/src/code-templates/class-api-client/ApiClientClass/MethodBody/HeaderParameter.ts b/src/code-templates/_shared/MethodBody/HeaderParameter.ts similarity index 84% rename from src/code-templates/class-api-client/ApiClientClass/MethodBody/HeaderParameter.ts rename to src/code-templates/_shared/MethodBody/HeaderParameter.ts index 57ba2977..0134d75a 100644 --- a/src/code-templates/class-api-client/ApiClientClass/MethodBody/HeaderParameter.ts +++ b/src/code-templates/_shared/MethodBody/HeaderParameter.ts @@ -1,7 +1,7 @@ import ts from "typescript"; -import type { TsGenerator } from "../../../../api"; -import * as Utils from "../../utils"; +import type { TsGenerator } from "../../../api"; +import * as Utils from "../../class-api-client/utils"; export interface Params { variableName: string; diff --git a/src/code-templates/class-api-client/ApiClientClass/MethodBody/PathParameter.ts b/src/code-templates/_shared/MethodBody/PathParameter.ts similarity index 94% rename from src/code-templates/class-api-client/ApiClientClass/MethodBody/PathParameter.ts rename to src/code-templates/_shared/MethodBody/PathParameter.ts index 90b9c5b9..cdbdbc96 100644 --- a/src/code-templates/class-api-client/ApiClientClass/MethodBody/PathParameter.ts +++ b/src/code-templates/_shared/MethodBody/PathParameter.ts @@ -1,9 +1,9 @@ import ts from "typescript"; -import type { TsGenerator } from "../../../../api"; -import type { CodeGenerator } from "../../../../types"; -import * as Utils from "../../utils"; -import { escapeText2 as escapeText } from "../../../../utils"; +import type { TsGenerator } from "../../../api"; +import type { CodeGenerator } from "../../../types"; +import * as Utils from "../../class-api-client/utils"; +import { escapeText2 as escapeText } from "../../../utils"; export const isPathParameter = (params: any): params is CodeGenerator.PickedParameter => { return params.in === "path"; diff --git a/src/code-templates/class-api-client/ApiClientClass/MethodBody/QueryParameter.ts b/src/code-templates/_shared/MethodBody/QueryParameter.ts similarity index 93% rename from src/code-templates/class-api-client/ApiClientClass/MethodBody/QueryParameter.ts rename to src/code-templates/_shared/MethodBody/QueryParameter.ts index 827bd0d9..f5c52ca1 100644 --- a/src/code-templates/class-api-client/ApiClientClass/MethodBody/QueryParameter.ts +++ b/src/code-templates/_shared/MethodBody/QueryParameter.ts @@ -1,8 +1,8 @@ import ts from "typescript"; -import type { TsGenerator } from "../../../../api"; -import * as Utils from "../../../../utils"; -import * as UtilsExtra from "../../utils"; +import type { TsGenerator } from "../../../api"; +import * as Utils from "../../../utils"; +import * as UtilsExtra from "../../class-api-client/utils"; export interface Item { type: "string" | "variable"; diff --git a/src/code-templates/class-api-client/ApiClientClass/MethodBody/__tests__/PathParameter-test.ts b/src/code-templates/_shared/MethodBody/__tests__/PathParameter-test.ts similarity index 96% rename from src/code-templates/class-api-client/ApiClientClass/MethodBody/__tests__/PathParameter-test.ts rename to src/code-templates/_shared/MethodBody/__tests__/PathParameter-test.ts index 08a62c36..355b2b57 100644 --- a/src/code-templates/class-api-client/ApiClientClass/MethodBody/__tests__/PathParameter-test.ts +++ b/src/code-templates/_shared/MethodBody/__tests__/PathParameter-test.ts @@ -2,9 +2,9 @@ import { EOL } from "os"; import ts from "typescript"; -import { TsGenerator } from "../../../../../api"; -import type { CodeGenerator } from "../../../../../types"; -import * as Utils from "../../../utils"; +import { TsGenerator } from "../../../../api"; +import type { CodeGenerator } from "../../../../types"; +import * as Utils from "../../../class-api-client/utils"; import * as PathParameter from "../PathParameter"; const traverse = (expression: ts.Expression) => (context: Pick) => (rootNode: T) => { diff --git a/src/code-templates/class-api-client/ApiClientClass/MethodBody/index.ts b/src/code-templates/_shared/MethodBody/index.ts similarity index 93% rename from src/code-templates/class-api-client/ApiClientClass/MethodBody/index.ts rename to src/code-templates/_shared/MethodBody/index.ts index 31dcc796..8f33f3d5 100644 --- a/src/code-templates/class-api-client/ApiClientClass/MethodBody/index.ts +++ b/src/code-templates/_shared/MethodBody/index.ts @@ -1,9 +1,9 @@ import ts from "typescript"; -import type { TsGenerator } from "../../../../api"; -import type { CodeGenerator } from "../../../../types"; -import { escapeText2 as escapeText } from "../../../../utils"; -import * as Utils from "../../utils"; +import type { TsGenerator } from "../../../api"; +import type { CodeGenerator } from "../../../types"; +import { escapeText2 as escapeText } from "../../../utils"; +import * as Utils from "../../class-api-client/utils"; import * as CallRequest from "./CallRequest"; import * as HeaderParameter from "./HeaderParameter"; import * as PathParameter from "./PathParameter"; diff --git a/src/code-templates/class-api-client/ApiClientClass/Method.ts b/src/code-templates/class-api-client/ApiClientClass/Method.ts index 75d033a4..a6a195fe 100644 --- a/src/code-templates/class-api-client/ApiClientClass/Method.ts +++ b/src/code-templates/class-api-client/ApiClientClass/Method.ts @@ -5,7 +5,7 @@ import ts from "typescript"; import type { TsGenerator } from "../../../api"; import type { CodeGenerator } from "../../../types"; import type { Option } from "../types"; -import * as MethodBody from "./MethodBody"; +import * as MethodBody from "../../_shared/MethodBody"; export { MethodBody }; diff --git a/src/code-templates/class-api-client/index.ts b/src/code-templates/class-api-client/index.ts index 9aee31f9..f1f2a9e6 100644 --- a/src/code-templates/class-api-client/index.ts +++ b/src/code-templates/class-api-client/index.ts @@ -2,7 +2,7 @@ import ts from "typescript"; import { TsGenerator } from "../../api"; import type { CodeGenerator } from "../../types"; -import * as ApiClientArgument from "./ApiClientArgument"; +import * as ApiClientArgument from "../_shared/ApiClientArgument"; import * as ApiClientClass from "./ApiClientClass"; import type { Option } from "./types"; diff --git a/src/code-templates/functional-api-client/index.ts b/src/code-templates/functional-api-client/index.ts new file mode 100644 index 00000000..2d3a852b --- /dev/null +++ b/src/code-templates/functional-api-client/index.ts @@ -0,0 +1,31 @@ +import ts from "typescript"; + +import { TsGenerator } from "../../api"; +import type { CodeGenerator } from "../../types"; +import * as ApiClientArgument from "../_shared/ApiClientArgument"; + +import type { Option } from "./types"; + +export { Option }; + +export const generator: CodeGenerator.GenerateFunction