@nestia/sdk 2.4.7 → 2.5.0-dev.20240128

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/lib/generates/internal/SdkFileProgrammer.js +23 -10
  2. package/lib/generates/internal/SdkFileProgrammer.js.map +1 -1
  3. package/lib/generates/internal/SdkFunctionProgrammer.d.ts +6 -1
  4. package/lib/generates/internal/SdkFunctionProgrammer.js +73 -323
  5. package/lib/generates/internal/SdkFunctionProgrammer.js.map +1 -1
  6. package/lib/generates/internal/SdkNamespaceProgrammer.d.ts +11 -0
  7. package/lib/generates/internal/SdkNamespaceProgrammer.js +175 -0
  8. package/lib/generates/internal/SdkNamespaceProgrammer.js.map +1 -0
  9. package/lib/generates/internal/SdkRouteProgrammer.d.ts +7 -0
  10. package/lib/generates/internal/SdkRouteProgrammer.js +55 -0
  11. package/lib/generates/internal/SdkRouteProgrammer.js.map +1 -0
  12. package/lib/generates/internal/SdkSimulationProgrammer.d.ts +7 -1
  13. package/lib/generates/internal/SdkSimulationProgrammer.js +98 -88
  14. package/lib/generates/internal/SdkSimulationProgrammer.js.map +1 -1
  15. package/lib/utils/ImportDictionary.d.ts +2 -0
  16. package/lib/utils/ImportDictionary.js +45 -0
  17. package/lib/utils/ImportDictionary.js.map +1 -1
  18. package/lib/utils/NodeUtil.d.ts +5 -0
  19. package/lib/utils/NodeUtil.js +16 -0
  20. package/lib/utils/NodeUtil.js.map +1 -0
  21. package/package.json +6 -3
  22. package/src/analyses/ConfigAnalyzer.ts +147 -147
  23. package/src/analyses/ControllerAnalyzer.ts +390 -390
  24. package/src/analyses/PathAnalyzer.ts +110 -110
  25. package/src/analyses/ReflectAnalyzer.ts +464 -464
  26. package/src/generates/SwaggerGenerator.ts +376 -376
  27. package/src/generates/internal/SdkFileProgrammer.ts +42 -13
  28. package/src/generates/internal/SdkFunctionProgrammer.ts +176 -475
  29. package/src/generates/internal/SdkNamespaceProgrammer.ts +495 -0
  30. package/src/generates/internal/SdkRouteProgrammer.ts +82 -0
  31. package/src/generates/internal/SdkSimulationProgrammer.ts +359 -133
  32. package/src/generates/internal/SwaggerSchemaGenerator.ts +444 -444
  33. package/src/utils/ImportDictionary.ts +72 -0
  34. package/src/utils/NodeUtil.ts +19 -0
@@ -14,10 +14,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.SdkFileProgrammer = void 0;
16
16
  const fs_1 = __importDefault(require("fs"));
17
+ const prettier_1 = require("prettier");
18
+ const typescript_1 = __importDefault(require("typescript"));
17
19
  const ImportDictionary_1 = require("../../utils/ImportDictionary");
18
20
  const MapUtil_1 = require("../../utils/MapUtil");
19
- const SdkFunctionProgrammer_1 = require("./SdkFunctionProgrammer");
21
+ const NodeUtil_1 = require("../../utils/NodeUtil");
20
22
  const SdkRouteDirectory_1 = require("./SdkRouteDirectory");
23
+ const SdkRouteProgrammer_1 = require("./SdkRouteProgrammer");
21
24
  var SdkFileProgrammer;
22
25
  (function (SdkFileProgrammer) {
23
26
  /* ---------------------------------------------------------
@@ -49,13 +52,13 @@ var SdkFileProgrammer;
49
52
  }
50
53
  catch (_a) { }
51
54
  // ITERATE CHILDREN
52
- const content = [];
55
+ const statements = [];
53
56
  for (const [key, value] of directory.children) {
54
57
  yield iterate(config)(value)(`${outDir}/${key}`);
55
- content.push(`export * as ${key} from "./${key}";`);
58
+ statements.push(typescript_1.default.factory.createExportDeclaration(undefined, false, typescript_1.default.factory.createNamespaceExport(typescript_1.default.factory.createIdentifier(key)), typescript_1.default.factory.createStringLiteral(`./${key}`), undefined));
56
59
  }
57
- if (content.length && directory.routes.length)
58
- content.push("");
60
+ if (statements.length && directory.routes.length)
61
+ statements.push(NodeUtil_1.NodeUtil.enter());
59
62
  // ITERATE ROUTES
60
63
  const importer = new ImportDictionary_1.ImportDictionary(`${outDir}/index.ts`);
61
64
  if (config.simulate === true &&
@@ -74,21 +77,31 @@ var SdkFileProgrammer;
74
77
  instance,
75
78
  type: true,
76
79
  });
77
- content.push(SdkFunctionProgrammer_1.SdkFunctionProgrammer.generate(config)(importer)(route));
80
+ statements.push(...SdkRouteProgrammer_1.SdkRouteProgrammer.generate(config)(importer)(route));
78
81
  if (i !== directory.routes.length - 1)
79
- content.push("");
82
+ statements.push(NodeUtil_1.NodeUtil.enter());
80
83
  });
81
84
  // FINALIZE THE CONTENT
82
85
  if (directory.routes.length !== 0)
83
- content.push(importer.toScript(outDir), "", ...content.splice(0, content.length));
86
+ statements.push(...importer.toStatements(outDir), ...(!importer.empty() && statements.length ? [NodeUtil_1.NodeUtil.enter()] : []), ...statements.splice(0, statements.length));
84
87
  const script = "/**\n" +
85
88
  " * @packageDocumentation\n" +
86
89
  ` * @module ${directory.module}\n` +
87
90
  " * @nestia Generated by Nestia - https://github.com/samchon/nestia \n" +
88
91
  " */\n" +
89
92
  "//================================================================\n" +
90
- content.join("\n");
91
- yield fs_1.default.promises.writeFile(importer.file, script, "utf8");
93
+ typescript_1.default
94
+ .createPrinter()
95
+ .printFile(typescript_1.default.factory.createSourceFile(statements, typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.EndOfFileToken), typescript_1.default.NodeFlags.None));
96
+ const beautify = () => __awaiter(this, void 0, void 0, function* () {
97
+ try {
98
+ return yield (0, prettier_1.format)(script, { parser: "typescript" });
99
+ }
100
+ catch (_b) {
101
+ return script;
102
+ }
103
+ });
104
+ yield fs_1.default.promises.writeFile(importer.file, yield beautify(), "utf8");
92
105
  });
93
106
  })(SdkFileProgrammer || (exports.SdkFileProgrammer = SdkFileProgrammer = {}));
94
107
  //# sourceMappingURL=SdkFileProgrammer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SdkFileProgrammer.js","sourceRoot":"","sources":["../../../src/generates/internal/SdkFileProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SdkFileProgrammer.js","sourceRoot":"","sources":["../../../src/generates/internal/SdkFileProgrammer.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,11 @@
1
+ import ts from "typescript";
1
2
  import { INestiaConfig } from "../../INestiaConfig";
2
3
  import { IRoute } from "../../structures/IRoute";
3
4
  import { ImportDictionary } from "../../utils/ImportDictionary";
4
5
  export declare namespace SdkFunctionProgrammer {
5
- const generate: (config: INestiaConfig) => (importer: ImportDictionary) => (route: IRoute) => string;
6
+ const generate: (config: INestiaConfig) => (importer: ImportDictionary) => (route: IRoute, props: {
7
+ headers: IRoute.IParameter | undefined;
8
+ query: IRoute.IParameter | undefined;
9
+ input: IRoute.IParameter | undefined;
10
+ }) => ts.FunctionDeclaration;
6
11
  }
@@ -1,346 +1,96 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.SdkFunctionProgrammer = void 0;
4
- const Pair_1 = require("tstl/utility/Pair");
5
- const Escaper_1 = require("typia/lib/utils/Escaper");
7
+ const typescript_1 = __importDefault(require("typescript"));
8
+ const typia_1 = __importDefault(require("typia"));
9
+ const IdentifierFactory_1 = require("typia/lib/factories/IdentifierFactory");
6
10
  const SdkDtoGenerator_1 = require("./SdkDtoGenerator");
7
11
  const SdkImportWizard_1 = require("./SdkImportWizard");
8
- const SdkSimulationProgrammer_1 = require("./SdkSimulationProgrammer");
9
- const SdkTypeDefiner_1 = require("./SdkTypeDefiner");
10
12
  var SdkFunctionProgrammer;
11
13
  (function (SdkFunctionProgrammer) {
12
- SdkFunctionProgrammer.generate = (config) => (importer) => (route) => {
13
- const [x, y, z] = [head, body, tail].map((closure) => closure(config)(importer)(route)({
14
- headers: route.parameters.find((param) => param.category === "headers" && param.field === undefined),
15
- query: route.parameters.find((param) => param.category === "query" && param.field === undefined),
16
- input: route.parameters.find((param) => param.category === "body"),
17
- }));
18
- return `${x} ${y}\n${z}`;
14
+ SdkFunctionProgrammer.generate = (config) => (importer) => (route, props) => {
15
+ return typescript_1.default.factory.createFunctionDeclaration([
16
+ typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword),
17
+ typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword),
18
+ ], undefined, route.name, undefined, [
19
+ IdentifierFactory_1.IdentifierFactory.parameter("connection", typescript_1.default.factory.createTypeReferenceNode(SdkImportWizard_1.SdkImportWizard.IConnection(importer), props.headers
20
+ ? [typescript_1.default.factory.createTypeReferenceNode(`${route.name}.Headers`)]
21
+ : undefined)),
22
+ ...route.parameters
23
+ .filter((p) => p.category !== "headers")
24
+ .map((p) => typescript_1.default.factory.createParameterDeclaration([], undefined, p.name, p.optional
25
+ ? typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionToken)
26
+ : undefined, typescript_1.default.factory.createTypeReferenceNode(config.primitive !== false &&
27
+ (p === props.query || p === props.input)
28
+ ? `${route.name}.${p === props.query ? "Query" : "Input"}`
29
+ : getTypeName(config)(importer)(p)))),
30
+ ], typescript_1.default.factory.createTypeReferenceNode("Promise", [
31
+ typescript_1.default.factory.createTypeReferenceNode(config.propagate !== true && route.output.typeName === "void"
32
+ ? "void"
33
+ : `${route.name}.Output`),
34
+ ]), typescript_1.default.factory.createBlock(generate_body(config)(importer)(route, props), true));
19
35
  };
20
- /* ---------------------------------------------------------
21
- BODY
22
- --------------------------------------------------------- */
23
- const body = (config) => (importer) => (route) => (props) => {
24
- var _a;
36
+ const generate_body = (config) => (importer) => (route, props) => {
25
37
  const encrypted = route.encrypted === true ||
26
38
  (props.input !== undefined &&
27
39
  props.input.custom === true &&
28
40
  props.input.category === "body" &&
29
41
  props.input.encrypted === true);
30
- // FETCH ARGUMENTS WITH REQUST BODY
31
- const parameters = filter_path_parameters(route)(props.query);
32
42
  const contentType = props.input !== undefined
33
- ? props.input.encrypted
34
- ? "text/plain"
35
- : (_a = props.input.contentType) !== null && _a !== void 0 ? _a : "application/json"
43
+ ? (input => {
44
+ const $io0 = input => true === input.custom && "body" === input.category && "number" === typeof input.index && "string" === typeof input.name && (undefined === input.field || "string" === typeof input.field) && "boolean" === typeof input.encrypted && ("application/json" === input.contentType || "text/plain" === input.contentType || "application/x-www-form-urlencoded" === input.contentType);
45
+ return "object" === typeof input && null !== input && $io0(input);
46
+ })(props.input) ? props.input.contentType
47
+ : "application/json"
36
48
  : undefined;
37
- const fetchArguments = [
38
- contentType
39
- ? [
40
- "{",
41
- " ...connection,",
42
- " headers: {",
43
- " ...(connection.headers ?? {}),",
44
- ` "Content-Type": "${contentType}",`,
45
- " },",
46
- "}",
47
- ]
48
- : "connection",
49
- [
50
- "{",
51
- ` ...${route.name}.METADATA,`,
52
- ` path: ${route.name}.path(${parameters
53
- .map((p) => p.name)
54
- .join(", ")}),`,
55
- "} as const",
56
- ],
57
- ];
58
- if (props.input !== undefined) {
59
- fetchArguments.push(props.input.name);
60
- if (config.json === true)
61
- fetchArguments.push(`${route.name}.stringify`);
62
- }
63
- const assertions = config.assert === true &&
64
- route.parameters.filter((p) => p.category !== "headers" || p.field === undefined).length !== 0
65
- ? route.parameters
66
- .filter((p) => p.category !== "headers" || p.field === undefined)
67
- .map((param) => ` ${SdkImportWizard_1.SdkImportWizard.typia(importer)}.assert<typeof ${param.name}>(${param.name});`)
68
- .join("\n") + "\n\n"
69
- : "";
70
- // FUNCTION CALL STATEMENT
71
- const caller = (awa) => {
72
- const random = () => [
73
- `${awa ? "await " : ""}${route.name}.simulate(`,
74
- ` connection,`,
75
- ...route.parameters
76
- .filter((p) => p.category !== "headers")
77
- .map((p) => ` ${p.name},`),
78
- `)`,
79
- ]
80
- .map((line, i) => (i === 0 ? line : `${space(10)}${line}`))
81
- .join("\n");
82
- const fetch = (tab) => [
83
- `${awa ? "await " : ""}${SdkImportWizard_1.SdkImportWizard.Fetcher(encrypted)(importer)}.${config.propagate === true ? "propagate" : "fetch"}(`,
84
- fetchArguments
85
- .map((param) => typeof param === "string"
86
- ? `${tab} ${param}`
87
- : param.map((str) => `${tab} ${str}`).join("\n"))
88
- .join(",\n") + ",",
89
- `${tab})`,
90
- ].join("\n");
91
- if (!config.simulate)
92
- return fetch(space(4));
93
- return (`!!connection.simulate\n` +
94
- ` ? ${random()}\n` +
95
- ` : ${fetch(space(10))}`);
96
- };
97
- if (route.setHeaders.length === 0)
98
- return `{\n${assertions} return ${caller(false)};\n}`;
99
- // SET HEADERS
100
- const content = [
101
- `{\n`,
102
- assertions,
103
- ` const output: ${route.name}.Output = ${caller(true)};\n`,
104
- "\n",
105
- ` // configure header(s)\n`,
106
- ` connection.headers ??= {};\n`,
107
- ];
108
- const headerContents = (variable) => route.setHeaders.map((header) => {
49
+ const caller = () => {
109
50
  var _a;
110
- return header.type === "assigner"
111
- ? `Object.assign(connection.headers, ${access(variable)(header.source)});`
112
- : `${access("connection.headers")((_a = header.target) !== null && _a !== void 0 ? _a : header.source)} = ${access(variable)(header.source)};`;
113
- });
114
- if (config.propagate === true) {
115
- content.push(` if (output.success) {\n`);
116
- content.push(...headerContents("output.data").map((line) => ` ${line}\n`));
117
- content.push(` }\n`);
118
- }
119
- else
120
- content.push(...headerContents("output").map((line) => ` ${line}\n`));
121
- content.push("\n", " return output;\n", "}");
122
- return content.join("");
123
- };
124
- const filter_path_parameters = (route) => (query) => {
125
- const parameters = route.parameters.filter((param) => param.category === "param" ||
126
- (param.category === "query" && param.field !== undefined));
127
- if (query)
128
- parameters.push(query);
129
- return parameters;
130
- };
131
- const access = (x) => (y) => y[0] === "[" ? `${x}${y}` : `${x}.${y}`;
132
- /* ---------------------------------------------------------
133
- HEAD & TAIL
134
- --------------------------------------------------------- */
135
- const head = (config) => (importer) => (route) => (props) => {
136
- var _a;
137
- //----
138
- // CONSTRUCT COMMENT
139
- //----
140
- // MAIN DESCRIPTION
141
- const comments = route.description
142
- ? route.description.split("\n")
143
- : [];
144
- // COMMENT TAGS
145
- const tags = route.jsDocTags.filter((tag) => tag.name !== "param" ||
146
- route.parameters
147
- .filter((p) => p.category !== "headers")
148
- .some((p) => { var _a, _b; return p.name === ((_b = (_a = tag.text) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.text); }));
149
- if (tags.length !== 0) {
150
- const content = tags.map((t) => {
151
- var _a;
152
- return ((_a = t.text) === null || _a === void 0 ? void 0 : _a.length)
153
- ? `@${t.name} ${t.text.map((e) => e.text).join("")}`
154
- : `@${t.name}`;
155
- });
156
- comments.push("", ...new Set(content));
157
- }
158
- // EXCEPTIONS
159
- for (const [key, value] of Object.entries(route.exceptions)) {
160
- if (comments.some((str) => str.startsWith(`@throw ${key}`) ||
161
- str.startsWith(`@throws ${key}`)))
162
- continue;
163
- comments.push(((_a = value.description) === null || _a === void 0 ? void 0 : _a.length)
164
- ? `@throws ${key} ${value.description.split("\n")[0]}`
165
- : `@throws ${key}`);
166
- }
167
- // POSTFIX
168
- if (!!comments.length)
169
- comments.push("");
170
- comments.push(`@controller ${route.symbol.class}.${route.symbol.function}`, `@path ${route.method} ${route.path}`, `@nestia Generated by Nestia - https://github.com/samchon/nestia`);
171
- //----
172
- // FINALIZATION
173
- //----
174
- // REFORM PARAMETERS TEXT
175
- const parameters = [
176
- route.parameters.some((p) => p.category === "headers" && p.field === undefined)
177
- ? `connection: ${SdkImportWizard_1.SdkImportWizard.IConnection(importer)}<${`${route.name}.Headers`}>`
178
- : `connection: ${SdkImportWizard_1.SdkImportWizard.IConnection(importer)}`,
179
- ...route.parameters
180
- .filter((p) => p.category !== "headers")
181
- .map((param) => {
182
- const type = config.primitive !== false &&
183
- (param === props.query || param === props.input)
184
- ? `${route.name}.${param === props.query ? "Query" : "Input"}`
185
- : getTypeName(config)(importer)(param);
186
- return `${param.name}${param.optional ? "?" : ""}: ${type}`;
187
- }),
188
- ];
189
- // OUTPUT TYPE
190
- const output = config.propagate !== true && route.output.typeName === "void"
191
- ? "void"
192
- : `${route.name}.Output`;
193
- // RETURNS WITH CONSTRUCTION
194
- return ("" +
195
- "/**\n" +
196
- comments.map((str) => ` * ${str}`).join("\n") +
197
- "\n" +
198
- " */\n" +
199
- `export async function ${route.name}(\n` +
200
- parameters.map((str) => ` ${str},\n`).join("") +
201
- `): Promise<${output}>`);
202
- };
203
- const tail = (config) => (importer) => (route) => (props) => {
204
- var _a;
205
- // LIST UP TYPES
206
- const types = [];
207
- if (props.headers !== undefined)
208
- types.push(new Pair_1.Pair("Headers", SdkTypeDefiner_1.SdkTypeDefiner.headers(config)(importer)(props.headers)));
209
- if (props.query !== undefined)
210
- types.push(new Pair_1.Pair("Query", SdkTypeDefiner_1.SdkTypeDefiner.query(config)(importer)(props.query)));
211
- if (props.input !== undefined)
212
- types.push(new Pair_1.Pair("Input", SdkTypeDefiner_1.SdkTypeDefiner.input(config)(importer)(props.input)));
213
- if (config.propagate === true || route.output.typeName !== "void")
214
- types.push(new Pair_1.Pair("Output", SdkTypeDefiner_1.SdkTypeDefiner.output(config)(importer)(route)));
215
- // PATH WITH PARAMETERS
216
- const parameters = filter_path_parameters(route)(props.query);
217
- const path = compute_path({
218
- path: route.path,
219
- query: props.query,
220
- parameters,
221
- });
222
- return (`export namespace ${route.name} {\n` +
223
- (types.length !== 0
224
- ? types
225
- .map((tuple) => ` export type ${tuple.first} = ${tuple.second};`)
226
- .join("\n") + "\n"
227
- : "") +
228
- "\n" +
229
- [
230
- "export const METADATA = {",
231
- ` method: "${route.method}",`,
232
- ` path: "${route.path}",`,
51
+ return typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(typescript_1.default.factory.createIdentifier(SdkImportWizard_1.SdkImportWizard.Fetcher(encrypted)(importer)))(config.propagate ? "propagate" : "fetch"), undefined, [
52
+ contentType
53
+ ? typescript_1.default.factory.createObjectLiteralExpression([
54
+ typescript_1.default.factory.createSpreadAssignment(typescript_1.default.factory.createIdentifier("connection")),
55
+ typescript_1.default.factory.createPropertyAssignment("headers", typescript_1.default.factory.createObjectLiteralExpression([
56
+ typescript_1.default.factory.createSpreadAssignment(IdentifierFactory_1.IdentifierFactory.access(typescript_1.default.factory.createIdentifier("connection"))("headers")),
57
+ typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createStringLiteral("Content-Type"), typescript_1.default.factory.createStringLiteral(contentType)),
58
+ ], true)),
59
+ ], true)
60
+ : typescript_1.default.factory.createIdentifier("connection"),
61
+ typescript_1.default.factory.createObjectLiteralExpression([
62
+ typescript_1.default.factory.createSpreadAssignment(IdentifierFactory_1.IdentifierFactory.access(typescript_1.default.factory.createIdentifier(route.name))("METADATA")),
63
+ typescript_1.default.factory.createPropertyAssignment("path", typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(typescript_1.default.factory.createIdentifier(route.name))("path"), undefined, route.parameters
64
+ .filter((p) => p.category === "param" || p.category === "query")
65
+ .map((p) => typescript_1.default.factory.createIdentifier(p.name)))),
66
+ ], true),
233
67
  ...(props.input
234
- ? [
235
- `request: {`,
236
- ` type: "${props.input.encrypted
237
- ? "text/plain"
238
- : (_a = props.input.contentType) !== null && _a !== void 0 ? _a : "application/json"}",`,
239
- ` encrypted: ${props.input.custom &&
240
- props.input.category === "body" &&
241
- props.input.encrypted}`,
242
- `},`,
243
- ].map((str) => ` ${str}`)
244
- : [" request: null,"]),
245
- ...(route.method !== "HEAD"
246
- ? [
247
- `response: {`,
248
- ` type: "${route.output.contentType}",`,
249
- ` encrypted: ${route.encrypted},`,
250
- `},`,
251
- ].map((str) => ` ${str}`)
252
- : [" response: null,"]),
253
- ...(route.status
254
- ? [` status: ${route.status},`]
255
- : [" status: null,"]),
256
- ...(route.output.contentType === "application/x-www-form-urlencoded"
257
- ? [
258
- ` parseQuery: (input: URLSearchParams) => ${SdkImportWizard_1.SdkImportWizard.typia(importer)}.http.assertQuery<${route.output.typeName}>(input),`,
259
- ]
68
+ ? [typescript_1.default.factory.createIdentifier(props.input.name)]
260
69
  : []),
261
- "} as const;",
262
- ]
263
- .map((line) => ` ${line}`)
264
- .join("\n") +
265
- "\n\n" +
266
- ` export const path = (${parameters
267
- .map((param) => {
268
- var _a;
269
- return `${param.name}: ${param.category === "query" &&
270
- param.typeName === ((_a = props.query) === null || _a === void 0 ? void 0 : _a.typeName)
271
- ? `${route.name}.Query`
272
- : getTypeName(config)(importer)(param)}`;
273
- })
274
- .join(", ")}): string => {\n` +
275
- `${path};\n` +
276
- ` }\n` +
277
- (config.simulate === true && route.output.typeName !== "void"
278
- ? ` export const random = (g?: Partial<${SdkImportWizard_1.SdkImportWizard.typia(importer)}.IRandomGenerator>): ${SdkTypeDefiner_1.SdkTypeDefiner.responseBody(config)(importer)(route)} =>\n` +
279
- ` ${SdkImportWizard_1.SdkImportWizard.typia(importer)}.random<${SdkTypeDefiner_1.SdkTypeDefiner.responseBody(config)(importer)(route)}>(g);\n`
280
- : "") +
281
- (config.simulate === true
282
- ? SdkSimulationProgrammer_1.SdkSimulationProgrammer.generate(config)(importer)(route) + "\n"
283
- : "") +
284
- (config.json === true &&
285
- route.parameters.find((param) => param.category === "body") !==
286
- undefined
287
- ? ` export const stringify = (input: Input) => ${SdkImportWizard_1.SdkImportWizard.typia(importer)}.json.assertStringify(input);\n`
288
- : "") +
289
- "}");
290
- };
291
- const compute_path = (props) => {
292
- for (const param of props.parameters)
293
- if (param.category === "param")
294
- props.path = props.path.replace(`:${param.field}`, `\${encodeURIComponent(${param.name} ?? "null")}`);
295
- // NO QUERY PARAMETER
296
- const queryParams = props.parameters.filter((param) => param.category === "query" && param.field !== undefined);
297
- if (props.query === undefined && queryParams.length === 0)
298
- return `${space(8)}return \`${props.path}\``;
299
- const computeName = (str) => props.parameters
300
- .filter((p) => p.category !== "headers")
301
- .find((p) => p.name === str) !== undefined
302
- ? computeName("_" + str)
303
- : str;
304
- const variables = computeName("variables");
305
- const search = computeName("search");
306
- const encoded = computeName("encoded");
307
- const wrapper = (expr) => [
308
- `const ${variables}: Record<any, any> = ${expr};`,
309
- `const ${search}: URLSearchParams = new URLSearchParams();`,
310
- `for (const [key, value] of Object.entries(${variables}))`,
311
- ` if (value === undefined) continue;`,
312
- ` else if (Array.isArray(value))`,
313
- ` value.forEach((elem) => ${search}.append(key, String(elem)));`,
314
- ` else`,
315
- ` ${search}.set(key, String(value));`,
316
- `const ${encoded}: string = ${search}.toString();`,
317
- `return \`${props.path}\${${encoded}.length ? \`?\${${encoded}}\` : ""}\`;`,
318
- ]
319
- .map((str) => `${space(8)}${str}`)
320
- .join("\n");
321
- if (props.query !== undefined && queryParams.length === 0)
322
- return wrapper(`${props.query.name} as any`);
323
- else if (props.query === undefined)
324
- return wrapper(`
325
- {
326
- ${rest_query_parameters(queryParams)}
327
- } as any`);
328
- return wrapper(`
329
- {
330
- ...${props.query.name},
331
- ${rest_query_parameters(queryParams)},
332
- } as any`);
70
+ ...(config.json && ((_a = props.input) === null || _a === void 0 ? void 0 : _a.category) === "body"
71
+ ? [typescript_1.default.factory.createIdentifier(`${route.name}.stringify`)]
72
+ : []),
73
+ ]);
74
+ };
75
+ return [
76
+ ...(config.assert
77
+ ? route.parameters
78
+ .filter((p) => p.category !== "headers")
79
+ .map((p) => typescript_1.default.factory.createExpressionStatement(typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(typescript_1.default.factory.createIdentifier(SdkImportWizard_1.SdkImportWizard.typia(importer)))("assert"), [
80
+ typescript_1.default.factory.createTypeQueryNode(typescript_1.default.factory.createIdentifier(p.name)),
81
+ ], [typescript_1.default.factory.createIdentifier(p.name)])))
82
+ : []),
83
+ typescript_1.default.factory.createReturnStatement(config.simulate
84
+ ? typescript_1.default.factory.createConditionalExpression(typescript_1.default.factory.createIdentifier("!!connection.simulate"), undefined, typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(`${route.name}.simulate`), [], [
85
+ typescript_1.default.factory.createIdentifier("connection"),
86
+ ...route.parameters
87
+ .filter((p) => p.category !== "headers")
88
+ .map((p) => typescript_1.default.factory.createIdentifier(p.name)),
89
+ ]), undefined, caller())
90
+ : caller()),
91
+ ];
333
92
  };
334
- const rest_query_parameters = (parameters) => parameters
335
- .filter((param) => param.category !== "headers")
336
- .map((param) => param.name === param.field
337
- ? param.name
338
- : `${Escaper_1.Escaper.variable(param.field)
339
- ? param.field
340
- : JSON.stringify(param.field)}: ${param.name}`)
341
- .join(`,\n${space(12)}`);
342
93
  })(SdkFunctionProgrammer || (exports.SdkFunctionProgrammer = SdkFunctionProgrammer = {}));
343
- const space = (count) => " ".repeat(count);
344
94
  const getTypeName = (config) => (importer) => (p) => p.metadata
345
95
  ? SdkDtoGenerator_1.SdkDtoGenerator.decode(config)(importer)(p.metadata)
346
96
  : p.typeName;
@@ -1 +1 @@
1
- {"version":3,"file":"SdkFunctionProgrammer.js","sourceRoot":"","sources":["../../../src/generates/internal/SdkFunctionProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SdkFunctionProgrammer.js","sourceRoot":"","sources":["../../../src/generates/internal/SdkFunctionProgrammer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import ts from "typescript";
2
+ import { INestiaConfig } from "../../INestiaConfig";
3
+ import { IRoute } from "../../structures/IRoute";
4
+ import { ImportDictionary } from "../../utils/ImportDictionary";
5
+ export declare namespace SdkNamespaceProgrammer {
6
+ const generate: (config: INestiaConfig) => (importer: ImportDictionary) => (route: IRoute, props: {
7
+ headers: IRoute.IParameter | undefined;
8
+ query: IRoute.IParameter | undefined;
9
+ input: IRoute.IParameter | undefined;
10
+ }) => ts.ModuleDeclaration;
11
+ }