@nestia/sdk 3.0.0-dev.20231209 → 3.0.0

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 (168) hide show
  1. package/README.md +12 -9
  2. package/assets/config/nestia.config.ts +82 -79
  3. package/lib/INestiaConfig.d.ts +28 -6
  4. package/lib/NestiaSdkApplication.js +12 -10
  5. package/lib/NestiaSdkApplication.js.map +1 -1
  6. package/lib/analyses/ConfigAnalyzer.js +1 -1
  7. package/lib/analyses/ConfigAnalyzer.js.map +1 -1
  8. package/lib/analyses/ControllerAnalyzer.js +30 -15
  9. package/lib/analyses/ControllerAnalyzer.js.map +1 -1
  10. package/lib/analyses/ExceptionAnalyzer.js +35 -6
  11. package/lib/analyses/ExceptionAnalyzer.js.map +1 -1
  12. package/lib/analyses/ImportAnalyzer.d.ts +1 -2
  13. package/lib/analyses/ImportAnalyzer.js +2 -2
  14. package/lib/analyses/ImportAnalyzer.js.map +1 -1
  15. package/lib/analyses/PathAnalyzer.d.ts +2 -4
  16. package/lib/analyses/PathAnalyzer.js +27 -11
  17. package/lib/analyses/PathAnalyzer.js.map +1 -1
  18. package/lib/analyses/ReflectAnalyzer.js +34 -22
  19. package/lib/analyses/ReflectAnalyzer.js.map +1 -1
  20. package/lib/analyses/SecurityAnalyzer.js +13 -8
  21. package/lib/analyses/SecurityAnalyzer.js.map +1 -1
  22. package/lib/executable/internal/NestiaConfigLoader.js +300 -220
  23. package/lib/executable/internal/NestiaConfigLoader.js.map +1 -1
  24. package/lib/executable/sdk.js +11 -11
  25. package/lib/generates/CloneGenerator.d.ts +6 -0
  26. package/lib/generates/CloneGenerator.js +62 -0
  27. package/lib/generates/CloneGenerator.js.map +1 -0
  28. package/lib/generates/E2eGenerator.d.ts +2 -1
  29. package/lib/generates/E2eGenerator.js +2 -2
  30. package/lib/generates/E2eGenerator.js.map +1 -1
  31. package/lib/generates/SdkGenerator.js +3 -11
  32. package/lib/generates/SdkGenerator.js.map +1 -1
  33. package/lib/generates/SwaggerGenerator.d.ts +2 -0
  34. package/lib/generates/SwaggerGenerator.js +119 -62
  35. package/lib/generates/SwaggerGenerator.js.map +1 -1
  36. package/lib/generates/internal/E2eFileProgrammer.d.ts +2 -1
  37. package/lib/generates/internal/E2eFileProgrammer.js +49 -53
  38. package/lib/generates/internal/E2eFileProgrammer.js.map +1 -1
  39. package/lib/generates/internal/FilePrinter.d.ts +10 -0
  40. package/lib/generates/internal/FilePrinter.js +46 -0
  41. package/lib/generates/internal/FilePrinter.js.map +1 -0
  42. package/lib/{utils → generates/internal}/ImportDictionary.d.ts +2 -1
  43. package/lib/{utils → generates/internal}/ImportDictionary.js +20 -14
  44. package/lib/generates/internal/ImportDictionary.js.map +1 -0
  45. package/lib/generates/internal/SdkAliasCollection.d.ts +12 -0
  46. package/lib/generates/internal/SdkAliasCollection.js +97 -0
  47. package/lib/generates/internal/SdkAliasCollection.js.map +1 -0
  48. package/lib/generates/internal/SdkCloneProgrammer.d.ts +12 -0
  49. package/lib/generates/internal/SdkCloneProgrammer.js +99 -0
  50. package/lib/generates/internal/SdkCloneProgrammer.js.map +1 -0
  51. package/lib/generates/internal/SdkFileProgrammer.d.ts +2 -1
  52. package/lib/generates/internal/SdkFileProgrammer.js +27 -28
  53. package/lib/generates/internal/SdkFileProgrammer.js.map +1 -1
  54. package/lib/generates/internal/SdkFunctionProgrammer.d.ts +7 -2
  55. package/lib/generates/internal/SdkFunctionProgrammer.js +115 -322
  56. package/lib/generates/internal/SdkFunctionProgrammer.js.map +1 -1
  57. package/lib/generates/internal/SdkImportWizard.d.ts +1 -1
  58. package/lib/generates/internal/SdkNamespaceProgrammer.d.ts +11 -0
  59. package/lib/generates/internal/SdkNamespaceProgrammer.js +180 -0
  60. package/lib/generates/internal/SdkNamespaceProgrammer.js.map +1 -0
  61. package/lib/generates/internal/SdkRouteProgrammer.d.ts +7 -0
  62. package/lib/generates/internal/SdkRouteProgrammer.js +55 -0
  63. package/lib/generates/internal/SdkRouteProgrammer.js.map +1 -0
  64. package/lib/generates/internal/SdkSimulationProgrammer.d.ts +8 -2
  65. package/lib/generates/internal/SdkSimulationProgrammer.js +103 -89
  66. package/lib/generates/internal/SdkSimulationProgrammer.js.map +1 -1
  67. package/lib/generates/internal/SdkTypeProgrammer.d.ts +9 -0
  68. package/lib/generates/internal/SdkTypeProgrammer.js +228 -0
  69. package/lib/generates/internal/SdkTypeProgrammer.js.map +1 -0
  70. package/lib/generates/internal/SwaggerSchemaGenerator.d.ts +4 -4
  71. package/lib/generates/internal/SwaggerSchemaGenerator.js +30 -28
  72. package/lib/generates/internal/SwaggerSchemaGenerator.js.map +1 -1
  73. package/lib/structures/IController.d.ts +4 -2
  74. package/lib/structures/IRoute.d.ts +5 -4
  75. package/lib/structures/ISwaggerLazyProperty.d.ts +2 -2
  76. package/lib/structures/ISwaggerLazySchema.d.ts +2 -2
  77. package/lib/structures/ParamCategory.d.ts +1 -1
  78. package/lib/structures/TypeEntry.js +2 -2
  79. package/lib/structures/TypeEntry.js.map +1 -1
  80. package/lib/utils/StringUtil.d.ts +3 -0
  81. package/lib/utils/StringUtil.js +8 -0
  82. package/lib/utils/StringUtil.js.map +1 -0
  83. package/package.json +12 -16
  84. package/src/INestiaConfig.ts +30 -6
  85. package/src/NestiaSdkApplication.ts +255 -253
  86. package/src/analyses/AccessorAnalyzer.ts +60 -60
  87. package/src/analyses/ConfigAnalyzer.ts +147 -147
  88. package/src/analyses/ControllerAnalyzer.ts +42 -19
  89. package/src/analyses/ExceptionAnalyzer.ts +148 -115
  90. package/src/analyses/GenericAnalyzer.ts +51 -51
  91. package/src/analyses/ImportAnalyzer.ts +1 -2
  92. package/src/analyses/PathAnalyzer.ts +110 -98
  93. package/src/analyses/ReflectAnalyzer.ts +39 -35
  94. package/src/analyses/SecurityAnalyzer.ts +24 -20
  95. package/src/executable/internal/CommandParser.ts +15 -15
  96. package/src/executable/internal/NestiaConfigLoader.ts +67 -67
  97. package/src/executable/internal/NestiaSdkCommand.ts +60 -60
  98. package/src/executable/sdk.ts +73 -73
  99. package/src/generates/CloneGenerator.ts +62 -0
  100. package/src/generates/E2eGenerator.ts +66 -64
  101. package/src/generates/SdkGenerator.ts +84 -96
  102. package/src/generates/SwaggerGenerator.ts +145 -53
  103. package/src/generates/internal/E2eFileProgrammer.ts +182 -123
  104. package/src/generates/internal/FilePrinter.ts +53 -0
  105. package/src/{utils → generates/internal}/ImportDictionary.ts +35 -13
  106. package/src/generates/internal/SdkAliasCollection.ts +152 -0
  107. package/src/generates/internal/SdkCloneProgrammer.ts +155 -0
  108. package/src/generates/internal/SdkDistributionComposer.ts +91 -91
  109. package/src/generates/internal/SdkFileProgrammer.ts +115 -106
  110. package/src/generates/internal/SdkFunctionProgrammer.ts +298 -518
  111. package/src/generates/internal/SdkImportWizard.ts +55 -55
  112. package/src/generates/internal/SdkNamespaceProgrammer.ts +510 -0
  113. package/src/generates/internal/SdkRouteDirectory.ts +17 -17
  114. package/src/generates/internal/SdkRouteProgrammer.ts +83 -0
  115. package/src/generates/internal/SdkSimulationProgrammer.ts +365 -133
  116. package/src/generates/internal/SdkTypeProgrammer.ts +386 -0
  117. package/src/generates/internal/SwaggerSchemaGenerator.ts +437 -427
  118. package/src/generates/internal/SwaggerSchemaValidator.ts +198 -198
  119. package/src/index.ts +4 -4
  120. package/src/module.ts +2 -2
  121. package/src/structures/IController.ts +94 -95
  122. package/src/structures/IErrorReport.ts +6 -6
  123. package/src/structures/INestiaProject.ts +13 -13
  124. package/src/structures/INormalizedInput.ts +20 -20
  125. package/src/structures/IRoute.ts +53 -53
  126. package/src/structures/ISwaggerLazyProperty.ts +2 -2
  127. package/src/structures/ISwaggerLazySchema.ts +2 -2
  128. package/src/structures/ITypeTuple.ts +6 -6
  129. package/src/structures/MethodType.ts +5 -5
  130. package/src/structures/ParamCategory.ts +1 -1
  131. package/src/structures/TypeEntry.ts +1 -1
  132. package/src/utils/ArrayUtil.ts +26 -26
  133. package/src/utils/FileRetriever.ts +22 -22
  134. package/src/utils/MapUtil.ts +14 -14
  135. package/src/utils/PathUtil.ts +10 -10
  136. package/src/utils/SourceFinder.ts +66 -66
  137. package/src/utils/StringUtil.ts +6 -0
  138. package/src/utils/StripEnums.ts +5 -5
  139. package/assets/bundle/api/utils/NestiaSimulator.ts +0 -70
  140. package/lib/generates/internal/SdkDtoGenerator.d.ts +0 -9
  141. package/lib/generates/internal/SdkDtoGenerator.js +0 -294
  142. package/lib/generates/internal/SdkDtoGenerator.js.map +0 -1
  143. package/lib/generates/internal/SdkTypeDefiner.d.ts +0 -11
  144. package/lib/generates/internal/SdkTypeDefiner.js +0 -82
  145. package/lib/generates/internal/SdkTypeDefiner.js.map +0 -1
  146. package/lib/structures/ISwagger.d.ts +0 -72
  147. package/lib/structures/ISwagger.js +0 -3
  148. package/lib/structures/ISwagger.js.map +0 -1
  149. package/lib/structures/ISwaggerComponents.d.ts +0 -26
  150. package/lib/structures/ISwaggerComponents.js +0 -3
  151. package/lib/structures/ISwaggerComponents.js.map +0 -1
  152. package/lib/structures/ISwaggerInfo.d.ts +0 -71
  153. package/lib/structures/ISwaggerInfo.js +0 -3
  154. package/lib/structures/ISwaggerInfo.js.map +0 -1
  155. package/lib/structures/ISwaggerRoute.d.ts +0 -47
  156. package/lib/structures/ISwaggerRoute.js +0 -3
  157. package/lib/structures/ISwaggerRoute.js.map +0 -1
  158. package/lib/structures/ISwaggerSecurityScheme.d.ts +0 -56
  159. package/lib/structures/ISwaggerSecurityScheme.js +0 -3
  160. package/lib/structures/ISwaggerSecurityScheme.js.map +0 -1
  161. package/lib/utils/ImportDictionary.js.map +0 -1
  162. package/src/generates/internal/SdkDtoGenerator.ts +0 -424
  163. package/src/generates/internal/SdkTypeDefiner.ts +0 -119
  164. package/src/structures/ISwagger.ts +0 -91
  165. package/src/structures/ISwaggerComponents.ts +0 -29
  166. package/src/structures/ISwaggerInfo.ts +0 -80
  167. package/src/structures/ISwaggerRoute.ts +0 -51
  168. package/src/structures/ISwaggerSecurityScheme.ts +0 -65
@@ -1,347 +1,140 @@
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");
6
- const SdkDtoGenerator_1 = require("./SdkDtoGenerator");
7
+ const typescript_1 = __importDefault(require("typescript"));
8
+ const typia_1 = __importDefault(require("typia"));
9
+ const IdentifierFactory_1 = require("typia/lib/factories/IdentifierFactory");
10
+ const StringUtil_1 = require("../../utils/StringUtil");
7
11
  const SdkImportWizard_1 = require("./SdkImportWizard");
8
- const SdkSimulationProgrammer_1 = require("./SdkSimulationProgrammer");
9
- const SdkTypeDefiner_1 = require("./SdkTypeDefiner");
12
+ const SdkTypeProgrammer_1 = require("./SdkTypeProgrammer");
10
13
  var SdkFunctionProgrammer;
11
14
  (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}`;
15
+ SdkFunctionProgrammer.write = (config) => (importer) => (route, props) => {
16
+ return typescript_1.default.factory.createFunctionDeclaration([
17
+ typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword),
18
+ typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword),
19
+ ], undefined, route.name, undefined, [
20
+ IdentifierFactory_1.IdentifierFactory.parameter("connection", typescript_1.default.factory.createTypeReferenceNode(SdkImportWizard_1.SdkImportWizard.IConnection(importer), props.headers
21
+ ? [typescript_1.default.factory.createTypeReferenceNode(`${route.name}.Headers`)]
22
+ : undefined)),
23
+ ...route.parameters
24
+ .filter((p) => p.category !== "headers")
25
+ .map((p) => typescript_1.default.factory.createParameterDeclaration([], undefined, p.name, p.optional
26
+ ? typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionToken)
27
+ : undefined, config.primitive !== false &&
28
+ (p === props.query || p === props.input)
29
+ ? typescript_1.default.factory.createTypeReferenceNode(`${route.name}.${p === props.query ? "Query" : "Input"}`)
30
+ : getTypeName(config)(importer)(p))),
31
+ ], typescript_1.default.factory.createTypeReferenceNode("Promise", [
32
+ getReturnType(config)(route),
33
+ ]), typescript_1.default.factory.createBlock(write_body(config)(importer)(route, props), true));
19
34
  };
20
- /* ---------------------------------------------------------
21
- BODY
22
- --------------------------------------------------------- */
23
- const body = (config) => (importer) => (route) => (props) => {
24
- var _a;
35
+ const write_body = (config) => (importer) => (route, props) => {
25
36
  const encrypted = route.encrypted === true ||
26
37
  (props.input !== undefined &&
27
38
  props.input.custom === true &&
28
39
  props.input.category === "body" &&
29
40
  props.input.encrypted === true);
30
- // FETCH ARGUMENTS WITH REQUST BODY
31
- const parameters = filter_path_parameters(route)(props.query);
32
41
  const contentType = props.input !== undefined
33
- ? props.input.encrypted
34
- ? "application/octet-stream"
35
- : (_a = props.input.contentType) !== null && _a !== void 0 ? _a : "application/json"
42
+ ? (input => {
43
+ 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 || "multipart/form-data" === input.contentType);
44
+ return "object" === typeof input && null !== input && $io0(input);
45
+ })(props.input) ? props.input.contentType
46
+ : "application/json"
36
47
  : 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,`,
48
+ const caller = () => 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, [
49
+ contentType && contentType !== "multipart/form-data"
50
+ ? typescript_1.default.factory.createObjectLiteralExpression([
51
+ typescript_1.default.factory.createSpreadAssignment(typescript_1.default.factory.createIdentifier("connection")),
52
+ typescript_1.default.factory.createPropertyAssignment("headers", typescript_1.default.factory.createObjectLiteralExpression([
53
+ typescript_1.default.factory.createSpreadAssignment(IdentifierFactory_1.IdentifierFactory.access(typescript_1.default.factory.createIdentifier("connection"))("headers")),
54
+ typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createStringLiteral("Content-Type"), typescript_1.default.factory.createStringLiteral(contentType)),
55
+ ], true)),
56
+ ], true)
57
+ : typescript_1.default.factory.createIdentifier("connection"),
58
+ typescript_1.default.factory.createObjectLiteralExpression([
59
+ typescript_1.default.factory.createSpreadAssignment(IdentifierFactory_1.IdentifierFactory.access(typescript_1.default.factory.createIdentifier(route.name))("METADATA")),
60
+ 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
61
+ .filter((p) => p.category === "param" || p.category === "query")
62
+ .map((p) => typescript_1.default.factory.createIdentifier(p.name)))),
63
+ ], true),
64
+ ...(props.input
65
+ ? [typescript_1.default.factory.createIdentifier(props.input.name)]
66
+ : []),
67
+ ...(config.json && (input => {
68
+ 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 || "multipart/form-data" === input.contentType);
69
+ return "object" === typeof input && null !== input && $io0(input);
70
+ })(props.input) &&
71
+ (props.input.contentType === "application/json" ||
72
+ props.input.encrypted === true)
73
+ ? [typescript_1.default.factory.createIdentifier(`${route.name}.stringify`)]
74
+ : []),
75
+ ]);
76
+ const output = (awaiter) => config.simulate
77
+ ? 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`), [], [
78
+ typescript_1.default.factory.createIdentifier("connection"),
75
79
  ...route.parameters
76
80
  .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`,
81
+ .map((p) => typescript_1.default.factory.createIdentifier(p.name)),
82
+ ]), undefined, awaiter ? typescript_1.default.factory.createAwaitExpression(caller()) : caller())
83
+ : awaiter
84
+ ? typescript_1.default.factory.createAwaitExpression(caller())
85
+ : caller();
86
+ return [
87
+ ...(config.assert
88
+ ? route.parameters
89
+ .filter((p) => p.category !== "headers")
90
+ .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"), [
91
+ typescript_1.default.factory.createTypeQueryNode(typescript_1.default.factory.createIdentifier(p.name)),
92
+ ], [typescript_1.default.factory.createIdentifier(p.name)])))
93
+ : []),
94
+ ...(route.setHeaders.length === 0
95
+ ? [typescript_1.default.factory.createReturnStatement(output(false))]
96
+ : write_set_headers(config)(route)(output(true))),
107
97
  ];
108
- const headerContents = (variable) => route.setHeaders.map((header) => {
109
- 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
98
  };
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) => {
99
+ const write_set_headers = (config) => (route) => (condition) => {
100
+ const accessor = (x) => (y) => x[0] === "[" ? `${x}${y}` : `${x}.${y}`;
101
+ const output = StringUtil_1.StringUtil.escapeDuplicate([
102
+ "connection",
103
+ ...route.parameters.map((p) => p.name),
104
+ ])("output");
105
+ const headers = accessor("connection")("headers");
106
+ const data = config.propagate ? accessor(output)("data") : output;
107
+ const assigners = [
108
+ typescript_1.default.factory.createBinaryExpression(typescript_1.default.factory.createIdentifier(headers), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionQuestionEqualsToken), typescript_1.default.factory.createObjectLiteralExpression([])),
109
+ ...route.setHeaders.map((tuple) => {
151
110
  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}`;
111
+ return tuple.type === "assigner"
112
+ ? typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("Object.assign"), [], [
113
+ typescript_1.default.factory.createIdentifier(headers),
114
+ typescript_1.default.factory.createIdentifier(accessor(data)(tuple.source)),
115
+ ])
116
+ : typescript_1.default.factory.createBinaryExpression(typescript_1.default.factory.createIdentifier(accessor(headers)((_a = tuple.target) !== null && _a !== void 0 ? _a : tuple.source)), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.EqualsToken), typescript_1.default.factory.createIdentifier(accessor(data)(tuple.source)));
187
117
  }),
118
+ ].map(typescript_1.default.factory.createExpressionStatement);
119
+ return [
120
+ typescript_1.default.factory.createVariableStatement([], typescript_1.default.factory.createVariableDeclarationList([
121
+ typescript_1.default.factory.createVariableDeclaration(output, undefined, getReturnType(config)(route), condition),
122
+ ], typescript_1.default.NodeFlags.Const)),
123
+ ...(config.propagate
124
+ ? [
125
+ typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createIdentifier(accessor(output)("success")), assigners.length === 1
126
+ ? assigners[0]
127
+ : typescript_1.default.factory.createBlock(assigners, true), undefined),
128
+ ]
129
+ : assigners),
130
+ typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createIdentifier(output)),
188
131
  ];
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}",`,
233
- ...(props.input
234
- ? [
235
- `request: {`,
236
- ` type: "${props.input.encrypted
237
- ? "application/octet-stream"
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
- ]
260
- : []),
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`);
333
132
  };
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
133
  })(SdkFunctionProgrammer || (exports.SdkFunctionProgrammer = SdkFunctionProgrammer = {}));
343
- const space = (count) => " ".repeat(count);
344
134
  const getTypeName = (config) => (importer) => (p) => p.metadata
345
- ? SdkDtoGenerator_1.SdkDtoGenerator.decode(config)(importer)(p.metadata)
346
- : p.typeName;
135
+ ? SdkTypeProgrammer_1.SdkTypeProgrammer.write(config)(importer)(p.metadata)
136
+ : typescript_1.default.factory.createTypeReferenceNode(p.typeName);
137
+ const getReturnType = (config) => (route) => typescript_1.default.factory.createTypeReferenceNode(config.propagate !== true && route.output.typeName === "void"
138
+ ? "void"
139
+ : `${route.name}.Output`);
347
140
  //# sourceMappingURL=SdkFunctionProgrammer.js.map
@@ -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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"}
@@ -1,4 +1,4 @@
1
- import { ImportDictionary } from "../../utils/ImportDictionary";
1
+ import { ImportDictionary } from "./ImportDictionary";
2
2
  export declare namespace SdkImportWizard {
3
3
  const Fetcher: (encrypted: boolean) => (importer: ImportDictionary) => string;
4
4
  const HttpError: (importer: ImportDictionary) => string;
@@ -0,0 +1,11 @@
1
+ import ts from "typescript";
2
+ import { INestiaConfig } from "../../INestiaConfig";
3
+ import { IRoute } from "../../structures/IRoute";
4
+ import { ImportDictionary } from "./ImportDictionary";
5
+ export declare namespace SdkNamespaceProgrammer {
6
+ const write: (checker: ts.TypeChecker) => (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
+ }