@nestia/migrate 14.0.0 → 14.0.2

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 (182) hide show
  1. package/README.md +1 -1
  2. package/lib/NestiaMigrateApplication.d.ts +111 -0
  3. package/lib/NestiaMigrateApplication.js +148 -9
  4. package/lib/NestiaMigrateApplication.js.map +1 -1
  5. package/lib/NestiaMigrateApplication.mjs +147 -5
  6. package/lib/analyzers/NestiaMigrateControllerAnalyzer.d.ts +58 -0
  7. package/lib/analyzers/NestiaMigrateControllerAnalyzer.js +88 -2
  8. package/lib/analyzers/NestiaMigrateControllerAnalyzer.js.map +1 -1
  9. package/lib/analyzers/NestiaMigrateControllerAnalyzer.mjs +20 -2
  10. package/lib/archivers/NestiaMigrateFileArchiver.d.ts +34 -0
  11. package/lib/archivers/NestiaMigrateFileArchiver.js +34 -0
  12. package/lib/archivers/NestiaMigrateFileArchiver.js.map +1 -1
  13. package/lib/bundles/NEST_TEMPLATE.js +1 -1
  14. package/lib/bundles/NEST_TEMPLATE.js.map +1 -1
  15. package/lib/bundles/NEST_TEMPLATE.mjs +1 -1
  16. package/lib/bundles/SDK_TEMPLATE.js +1 -1
  17. package/lib/bundles/SDK_TEMPLATE.js.map +1 -1
  18. package/lib/bundles/SDK_TEMPLATE.mjs +1 -1
  19. package/lib/executable/NestiaMigrateCommander.d.ts +36 -0
  20. package/lib/executable/NestiaMigrateCommander.js +43 -1
  21. package/lib/executable/NestiaMigrateCommander.js.map +1 -1
  22. package/lib/executable/NestiaMigrateCommander.mjs +4 -2
  23. package/lib/executable/NestiaMigrateInquirer.d.ts +29 -0
  24. package/lib/executable/NestiaMigrateInquirer.js +27 -25
  25. package/lib/executable/NestiaMigrateInquirer.js.map +1 -1
  26. package/lib/executable/NestiaMigrateInquirer.mjs +5 -7
  27. package/lib/factories/ExpressionFactory.d.ts +14 -0
  28. package/lib/factories/ExpressionFactory.js +14 -0
  29. package/lib/factories/ExpressionFactory.js.map +1 -1
  30. package/lib/factories/IdentifierFactory.d.ts +20 -0
  31. package/lib/factories/IdentifierFactory.js +20 -0
  32. package/lib/factories/IdentifierFactory.js.map +1 -1
  33. package/lib/factories/LiteralFactory.d.ts +18 -2
  34. package/lib/factories/LiteralFactory.js +18 -2
  35. package/lib/factories/LiteralFactory.js.map +1 -1
  36. package/lib/factories/StatementFactory.d.ts +26 -1
  37. package/lib/factories/StatementFactory.js +26 -1
  38. package/lib/factories/StatementFactory.js.map +1 -1
  39. package/lib/factories/SupportedStringFormats.d.ts +6 -0
  40. package/lib/factories/SupportedStringFormats.js +33 -0
  41. package/lib/factories/SupportedStringFormats.js.map +1 -0
  42. package/lib/factories/SupportedStringFormats.mjs +34 -0
  43. package/lib/factories/SupportedStringFormats.mjs.map +1 -0
  44. package/lib/factories/TypeFactory.d.ts +21 -0
  45. package/lib/factories/TypeFactory.js +13 -0
  46. package/lib/factories/TypeFactory.js.map +1 -1
  47. package/lib/factories/TypeLiteralFactory.d.ts +18 -0
  48. package/lib/factories/TypeLiteralFactory.js +18 -0
  49. package/lib/factories/TypeLiteralFactory.js.map +1 -1
  50. package/lib/internal/ts.d.ts +153 -0
  51. package/lib/internal/ts.js.map +1 -1
  52. package/lib/programmers/NestiaMigrateApiFileProgrammer.d.ts +31 -0
  53. package/lib/programmers/NestiaMigrateApiFileProgrammer.js +17 -0
  54. package/lib/programmers/NestiaMigrateApiFileProgrammer.js.map +1 -1
  55. package/lib/programmers/NestiaMigrateApiFunctionProgrammer.d.ts +40 -0
  56. package/lib/programmers/NestiaMigrateApiFunctionProgrammer.js +34 -5
  57. package/lib/programmers/NestiaMigrateApiFunctionProgrammer.js.map +1 -1
  58. package/lib/programmers/NestiaMigrateApiFunctionProgrammer.mjs +4 -2
  59. package/lib/programmers/NestiaMigrateApiNamespaceProgrammer.d.ts +39 -0
  60. package/lib/programmers/NestiaMigrateApiNamespaceProgrammer.js +57 -13
  61. package/lib/programmers/NestiaMigrateApiNamespaceProgrammer.js.map +1 -1
  62. package/lib/programmers/NestiaMigrateApiNamespaceProgrammer.mjs +17 -8
  63. package/lib/programmers/NestiaMigrateApiProgrammer.d.ts +18 -0
  64. package/lib/programmers/NestiaMigrateApiProgrammer.js +18 -0
  65. package/lib/programmers/NestiaMigrateApiProgrammer.js.map +1 -1
  66. package/lib/programmers/NestiaMigrateApiProgrammer.mjs +1 -1
  67. package/lib/programmers/NestiaMigrateApiSimulationProgrammer.d.ts +40 -0
  68. package/lib/programmers/NestiaMigrateApiSimulationProgrammer.js +51 -22
  69. package/lib/programmers/NestiaMigrateApiSimulationProgrammer.js.map +1 -1
  70. package/lib/programmers/NestiaMigrateApiSimulationProgrammer.mjs +13 -20
  71. package/lib/programmers/NestiaMigrateApiStartProgrammer.d.ts +17 -0
  72. package/lib/programmers/NestiaMigrateApiStartProgrammer.js +19 -8
  73. package/lib/programmers/NestiaMigrateApiStartProgrammer.js.map +1 -1
  74. package/lib/programmers/NestiaMigrateApiStartProgrammer.mjs +1 -6
  75. package/lib/programmers/NestiaMigrateDtoProgrammer.d.ts +30 -0
  76. package/lib/programmers/NestiaMigrateDtoProgrammer.js +17 -0
  77. package/lib/programmers/NestiaMigrateDtoProgrammer.js.map +1 -1
  78. package/lib/programmers/NestiaMigrateE2eFileProgrammer.d.ts +39 -0
  79. package/lib/programmers/NestiaMigrateE2eFileProgrammer.js +46 -5
  80. package/lib/programmers/NestiaMigrateE2eFileProgrammer.js.map +1 -1
  81. package/lib/programmers/NestiaMigrateE2eFileProgrammer.mjs +6 -2
  82. package/lib/programmers/NestiaMigrateE2eProgrammer.d.ts +16 -0
  83. package/lib/programmers/NestiaMigrateE2eProgrammer.js +16 -0
  84. package/lib/programmers/NestiaMigrateE2eProgrammer.js.map +1 -1
  85. package/lib/programmers/NestiaMigrateImportProgrammer.d.ts +75 -0
  86. package/lib/programmers/NestiaMigrateImportProgrammer.js +58 -3
  87. package/lib/programmers/NestiaMigrateImportProgrammer.js.map +1 -1
  88. package/lib/programmers/NestiaMigrateImportProgrammer.mjs +58 -3
  89. package/lib/programmers/NestiaMigrateNestControllerProgrammer.d.ts +28 -0
  90. package/lib/programmers/NestiaMigrateNestControllerProgrammer.js +16 -0
  91. package/lib/programmers/NestiaMigrateNestControllerProgrammer.js.map +1 -1
  92. package/lib/programmers/NestiaMigrateNestMethodProgrammer.d.ts +30 -0
  93. package/lib/programmers/NestiaMigrateNestMethodProgrammer.js +85 -13
  94. package/lib/programmers/NestiaMigrateNestMethodProgrammer.js.map +1 -1
  95. package/lib/programmers/NestiaMigrateNestMethodProgrammer.mjs +46 -9
  96. package/lib/programmers/NestiaMigrateNestModuleProgrammer.d.ts +16 -0
  97. package/lib/programmers/NestiaMigrateNestModuleProgrammer.js +16 -0
  98. package/lib/programmers/NestiaMigrateNestModuleProgrammer.js.map +1 -1
  99. package/lib/programmers/NestiaMigrateNestProgrammer.d.ts +17 -0
  100. package/lib/programmers/NestiaMigrateNestProgrammer.js +17 -0
  101. package/lib/programmers/NestiaMigrateNestProgrammer.js.map +1 -1
  102. package/lib/programmers/NestiaMigrateSchemaProgrammer.d.ts +16 -0
  103. package/lib/programmers/NestiaMigrateSchemaProgrammer.js +45 -9
  104. package/lib/programmers/NestiaMigrateSchemaProgrammer.js.map +1 -1
  105. package/lib/programmers/NestiaMigrateSchemaProgrammer.mjs +19 -8
  106. package/lib/structures/INestiaMigrateConfig.d.ts +21 -0
  107. package/lib/structures/INestiaMigrateContext.d.ts +15 -0
  108. package/lib/structures/INestiaMigrateController.d.ts +13 -0
  109. package/lib/structures/INestiaMigrateFile.d.ts +11 -0
  110. package/lib/utils/FilePrinter.d.ts +33 -0
  111. package/lib/utils/FilePrinter.js +33 -0
  112. package/lib/utils/FilePrinter.js.map +1 -1
  113. package/lib/utils/MapUtil.d.ts +17 -0
  114. package/lib/utils/MapUtil.js +19 -3
  115. package/lib/utils/MapUtil.js.map +1 -1
  116. package/lib/utils/MapUtil.mjs +1 -2
  117. package/lib/utils/PathTemplate.d.ts +41 -0
  118. package/lib/utils/PathTemplate.js +56 -0
  119. package/lib/utils/PathTemplate.js.map +1 -0
  120. package/lib/utils/PathTemplate.mjs +34 -0
  121. package/lib/utils/PathTemplate.mjs.map +1 -0
  122. package/lib/utils/RequestBody.d.ts +22 -0
  123. package/lib/utils/RequestBody.js +29 -0
  124. package/lib/utils/RequestBody.js.map +1 -0
  125. package/lib/utils/RequestBody.mjs +9 -0
  126. package/lib/utils/RequestBody.mjs.map +1 -0
  127. package/lib/utils/StringUtil.d.ts +55 -0
  128. package/lib/utils/StringUtil.js +93 -8
  129. package/lib/utils/StringUtil.js.map +1 -1
  130. package/lib/utils/StringUtil.mjs +30 -8
  131. package/lib/utils/SuccessStatus.d.ts +34 -0
  132. package/lib/utils/SuccessStatus.js +48 -0
  133. package/lib/utils/SuccessStatus.js.map +1 -0
  134. package/lib/utils/SuccessStatus.mjs +14 -0
  135. package/lib/utils/SuccessStatus.mjs.map +1 -0
  136. package/package.json +5 -4
  137. package/src/NestiaMigrateApplication.ts +151 -13
  138. package/src/analyzers/NestiaMigrateControllerAnalyzer.ts +94 -2
  139. package/src/archivers/NestiaMigrateFileArchiver.ts +34 -0
  140. package/src/bundles/NEST_TEMPLATE.ts +1 -1
  141. package/src/bundles/SDK_TEMPLATE.ts +1 -1
  142. package/src/executable/NestiaMigrateCommander.ts +47 -1
  143. package/src/executable/NestiaMigrateInquirer.ts +41 -26
  144. package/src/factories/ExpressionFactory.ts +14 -0
  145. package/src/factories/IdentifierFactory.ts +20 -0
  146. package/src/factories/LiteralFactory.ts +18 -2
  147. package/src/factories/StatementFactory.ts +26 -1
  148. package/src/factories/SupportedStringFormats.ts +29 -0
  149. package/src/factories/TypeFactory.ts +21 -0
  150. package/src/factories/TypeLiteralFactory.ts +18 -0
  151. package/src/internal/ts.ts +153 -0
  152. package/src/programmers/NestiaMigrateApiFileProgrammer.ts +35 -0
  153. package/src/programmers/NestiaMigrateApiFunctionProgrammer.ts +53 -4
  154. package/src/programmers/NestiaMigrateApiNamespaceProgrammer.ts +83 -20
  155. package/src/programmers/NestiaMigrateApiProgrammer.ts +18 -0
  156. package/src/programmers/NestiaMigrateApiSimulationProgrammer.ts +66 -73
  157. package/src/programmers/NestiaMigrateApiStartProgrammer.ts +19 -10
  158. package/src/programmers/NestiaMigrateDtoProgrammer.ts +33 -0
  159. package/src/programmers/NestiaMigrateE2eFileProgrammer.ts +83 -8
  160. package/src/programmers/NestiaMigrateE2eProgrammer.ts +16 -0
  161. package/src/programmers/NestiaMigrateImportProgrammer.ts +86 -5
  162. package/src/programmers/NestiaMigrateNestControllerProgrammer.ts +30 -0
  163. package/src/programmers/NestiaMigrateNestMethodProgrammer.ts +122 -29
  164. package/src/programmers/NestiaMigrateNestModuleProgrammer.ts +16 -0
  165. package/src/programmers/NestiaMigrateNestProgrammer.ts +17 -0
  166. package/src/programmers/NestiaMigrateSchemaProgrammer.ts +53 -18
  167. package/src/structures/INestiaMigrateConfig.ts +26 -0
  168. package/src/structures/INestiaMigrateContext.ts +17 -0
  169. package/src/structures/INestiaMigrateController.ts +16 -0
  170. package/src/structures/INestiaMigrateFile.ts +13 -0
  171. package/src/utils/FilePrinter.ts +33 -0
  172. package/src/utils/MapUtil.ts +18 -2
  173. package/src/utils/PathTemplate.ts +61 -0
  174. package/src/utils/RequestBody.ts +27 -0
  175. package/src/utils/StringUtil.ts +101 -9
  176. package/src/utils/SuccessStatus.ts +49 -0
  177. package/lib/factories/FormatCheatSheet.d.ts +0 -25
  178. package/lib/factories/FormatCheatSheet.js +0 -34
  179. package/lib/factories/FormatCheatSheet.js.map +0 -1
  180. package/lib/factories/FormatCheatSheet.mjs +0 -31
  181. package/lib/factories/FormatCheatSheet.mjs.map +0 -1
  182. package/src/factories/FormatCheatSheet.ts +0 -71
@@ -7,10 +7,29 @@ const IdentifierFactory_1 = require("../factories/IdentifierFactory");
7
7
  const LiteralFactory_1 = require("../factories/LiteralFactory");
8
8
  const TypeFactory_1 = require("../factories/TypeFactory");
9
9
  const FilePrinter_1 = require("../utils/FilePrinter");
10
+ const PathTemplate_1 = require("../utils/PathTemplate");
11
+ const RequestBody_1 = require("../utils/RequestBody");
10
12
  const NestiaMigrateApiSimulationProgrammer_1 = require("./NestiaMigrateApiSimulationProgrammer");
11
13
  const NestiaMigrateSchemaProgrammer_1 = require("./NestiaMigrateSchemaProgrammer");
14
+ /**
15
+ * Generates the namespace that accompanies the function of a route: its types,
16
+ * its metadata, its path builder, and, in simulation mode, its simulator.
17
+ *
18
+ * @evidence contracts/common.md#principled-implementation The namespace declares the `Props`, `Query`, `Body`, `Headers`, and `Response` types from the schemas, the route metadata the fetcher reads, the `path` function that fills the parameters into the template, and the simulator members.
19
+ * @evidence contracts/common.md#clear-and-simple-design One entry function, one public path-call builder shared with the simulation programmer, and private helpers per member.
20
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The output derives from the route and the configuration.
21
+ * @evidence contracts/common.md#meaningful-documentation The comment states what is generated.
22
+ */
12
23
  var NestiaMigrateApiNamespaceProgrammer;
13
24
  (function (NestiaMigrateApiNamespaceProgrammer) {
25
+ /**
26
+ * Returns the namespace declaration of a route.
27
+ *
28
+ * @evidence contracts/common.md#principled-implementation The members are written in a fixed order: types, metadata, path function, and the random and simulate members when simulation is enabled.
29
+ * @evidence contracts/common.md#clear-and-simple-design One function composing the private writers.
30
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The members follow the configuration.
31
+ * @evidence contracts/common.md#meaningful-documentation The comment states the result.
32
+ */
14
33
  NestiaMigrateApiNamespaceProgrammer.write = (ctx) => {
15
34
  const types = writeTypes(ctx);
16
35
  return factory_1.factory.createModuleDeclaration([factory_1.factory.createToken(factory_1.SyntaxKind.ExportKeyword)], factory_1.factory.createIdentifier(ctx.route.accessor.at(-1)), factory_1.factory.createModuleBlock([
@@ -27,6 +46,15 @@ var NestiaMigrateApiNamespaceProgrammer;
27
46
  : []),
28
47
  ]), factory_1.NodeFlags.Namespace);
29
48
  };
49
+ /**
50
+ * Returns the call expression of the route's `path` function with the
51
+ * arguments the configuration selects.
52
+ *
53
+ * @evidence contracts/common.md#principled-implementation In keyword mode the arguments are the `props` object and otherwise the path and query parameters in order, so the same call is valid in both modes.
54
+ * @evidence contracts/common.md#clear-and-simple-design One function shared by the simulator and the namespace.
55
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The arguments follow the configuration.
56
+ * @evidence contracts/common.md#meaningful-documentation The comment states the two argument forms.
57
+ */
30
58
  NestiaMigrateApiNamespaceProgrammer.writePathCallExpression = (config, route) => factory_1.factory.createCallExpression(factory_1.factory.createIdentifier(`${route.accessor.at(-1)}.path`), undefined, route.parameters.length === 0 && route.query === null
31
59
  ? []
32
60
  : config.keyword === true
@@ -67,7 +95,9 @@ var NestiaMigrateApiNamespaceProgrammer;
67
95
  required: [
68
96
  ...ctx.route.parameters.map((p) => p.key),
69
97
  ...(ctx.route.query ? [ctx.route.query.key] : []),
70
- ...(ctx.route.body ? [ctx.route.body.key] : []),
98
+ ...(ctx.route.body && RequestBody_1.RequestBody.optional(ctx.route) === false
99
+ ? [ctx.route.body.key]
100
+ : []),
71
101
  ],
72
102
  },
73
103
  }));
@@ -157,18 +187,32 @@ var NestiaMigrateApiNamespaceProgrammer;
157
187
  : []),
158
188
  ], undefined, undefined, body));
159
189
  const template = () => {
160
- const path = getPath(ctx.route);
161
- const split = path.split(":");
162
- if (split.length === 1)
163
- return factory_1.factory.createStringLiteral(path);
164
- return factory_1.factory.createTemplateExpression(factory_1.factory.createTemplateHead(split[0]), split.slice(1).map((s, i, arr) => {
165
- const name = s.split("/")[0];
166
- return factory_1.factory.createTemplateSpan(factory_1.factory.createCallExpression(factory_1.factory.createIdentifier("encodeURIComponent"), undefined, [
167
- factory_1.factory.createBinaryExpression(property(ctx.route.parameters.find((p) => p.name === name).key), factory_1.factory.createToken(factory_1.SyntaxKind.QuestionQuestionToken), factory_1.factory.createStringLiteral("null")),
168
- ]), (i !== arr.length - 1
169
- ? factory_1.factory.createTemplateMiddle
170
- : factory_1.factory.createTemplateTail)(s.substring(name.length)));
171
- }));
190
+ // the document's template delimits each parameter; the emended path's
191
+ // `:id.json` would not tell the name from the literal after it
192
+ const segments = PathTemplate_1.PathTemplate.segments(ctx.route);
193
+ if (segments.every((segment) => segment.type === "literal"))
194
+ return factory_1.factory.createStringLiteral(getPath(ctx.route));
195
+ const literals = [""];
196
+ const parameters = [];
197
+ for (const segment of segments)
198
+ if (segment.type === "literal")
199
+ literals[literals.length - 1] += segment.value;
200
+ else {
201
+ parameters.push(segment.parameter);
202
+ literals.push("");
203
+ }
204
+ return factory_1.factory.createTemplateExpression(factory_1.factory.createTemplateHead(literals[0]), parameters.map((parameter, i) => factory_1.factory.createTemplateSpan(
205
+ // URI-encoded, "null" when nullish, and a dot segment refused
206
+ factory_1.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(factory_1.factory.createIdentifier(ctx.importer.external({
207
+ type: "instance",
208
+ library: "@nestia/fetcher",
209
+ name: "PathParameter",
210
+ })), "encode"), undefined, [
211
+ factory_1.factory.createStringLiteral(parameter.key),
212
+ property(parameter.key),
213
+ ]), (i !== parameters.length - 1
214
+ ? factory_1.factory.createTemplateMiddle
215
+ : factory_1.factory.createTemplateTail)(literals[i + 1]))));
172
216
  };
173
217
  if (!ctx.route.query)
174
218
  return out(template());
@@ -1 +1 @@
1
- {"version":3,"file":"NestiaMigrateApiNamespaceProgrammer.js","sourceRoot":"","sources":["../../src/programmers/NestiaMigrateApiNamespaceProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NestiaMigrateApiNamespaceProgrammer.js","sourceRoot":"","sources":["../../src/programmers/NestiaMigrateApiNamespaceProgrammer.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import { FilePrinter } from "../utils/FilePrinter.mjs";
2
2
  import { TypeFactory } from "../factories/TypeFactory.mjs";
3
3
  import { IdentifierFactory } from "../factories/IdentifierFactory.mjs";
4
+ import { RequestBody } from "../utils/RequestBody.mjs";
4
5
  import { NestiaMigrateSchemaProgrammer } from "./NestiaMigrateSchemaProgrammer.mjs";
5
6
  import { ExpressionFactory } from "../factories/ExpressionFactory.mjs";
6
7
  import { LiteralFactory } from "../factories/LiteralFactory.mjs";
8
+ import { PathTemplate } from "../utils/PathTemplate.mjs";
7
9
  import { NestiaMigrateApiSimulationProgrammer } from "./NestiaMigrateApiSimulationProgrammer.mjs";
8
10
  import { NodeFlags, SyntaxKind, factory } from "@ttsc/factory";
9
11
  //#region src/programmers/NestiaMigrateApiNamespaceProgrammer.ts
@@ -47,7 +49,7 @@ let NestiaMigrateApiNamespaceProgrammer;
47
49
  required: [
48
50
  ...ctx.route.parameters.map((p) => p.key),
49
51
  ...ctx.route.query ? [ctx.route.query.key] : [],
50
- ...ctx.route.body ? [ctx.route.body.key] : []
52
+ ...ctx.route.body && RequestBody.optional(ctx.route) === false ? [ctx.route.body.key] : []
51
53
  ]
52
54
  }
53
55
  }));
@@ -103,13 +105,20 @@ let NestiaMigrateApiNamespaceProgrammer;
103
105
  schema: p.schema
104
106
  }))), ...ctx.route.query ? [IdentifierFactory.parameter(ctx.route.query.key, factory.createTypeReferenceNode(`${ctx.route.accessor.at(-1)}.Query`))] : []], void 0, void 0, body));
105
107
  const template = () => {
106
- const path = getPath(ctx.route);
107
- const split = path.split(":");
108
- if (split.length === 1) return factory.createStringLiteral(path);
109
- return factory.createTemplateExpression(factory.createTemplateHead(split[0]), split.slice(1).map((s, i, arr) => {
110
- const name = s.split("/")[0];
111
- return factory.createTemplateSpan(factory.createCallExpression(factory.createIdentifier("encodeURIComponent"), void 0, [factory.createBinaryExpression(property(ctx.route.parameters.find((p) => p.name === name).key), factory.createToken(SyntaxKind.QuestionQuestionToken), factory.createStringLiteral("null"))]), (i !== arr.length - 1 ? factory.createTemplateMiddle : factory.createTemplateTail)(s.substring(name.length)));
112
- }));
108
+ const segments = PathTemplate.segments(ctx.route);
109
+ if (segments.every((segment) => segment.type === "literal")) return factory.createStringLiteral(getPath(ctx.route));
110
+ const literals = [""];
111
+ const parameters = [];
112
+ for (const segment of segments) if (segment.type === "literal") literals[literals.length - 1] += segment.value;
113
+ else {
114
+ parameters.push(segment.parameter);
115
+ literals.push("");
116
+ }
117
+ return factory.createTemplateExpression(factory.createTemplateHead(literals[0]), parameters.map((parameter, i) => factory.createTemplateSpan(factory.createCallExpression(IdentifierFactory.access(factory.createIdentifier(ctx.importer.external({
118
+ type: "instance",
119
+ library: "@nestia/fetcher",
120
+ name: "PathParameter"
121
+ })), "encode"), void 0, [factory.createStringLiteral(parameter.key), property(parameter.key)]), (i !== parameters.length - 1 ? factory.createTemplateMiddle : factory.createTemplateTail)(literals[i + 1]))));
113
122
  };
114
123
  if (!ctx.route.query) return out(template());
115
124
  const computeName = (str) => ctx.route.parameters.find((p) => p.key === str) !== void 0 ? computeName("_" + str) : str;
@@ -1,4 +1,22 @@
1
1
  import { INestiaMigrateContext } from "../structures/INestiaMigrateContext";
2
+ /**
3
+ * Generates the functional API files and, for an SDK project, the DTO structure
4
+ * files.
5
+ *
6
+ * @evidence contracts/common.md#principled-implementation Routes are grouped by namespace path in a hash map, each parent namespace is given its child, and each namespace becomes one `index.ts`; the DTO files are written per top-level component name.
7
+ * @evidence contracts/common.md#clear-and-simple-design One entry function and two private helpers for the DTO files.
8
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The layout follows the accessors of the routes.
9
+ * @evidence contracts/common.md#meaningful-documentation The comment states what is generated.
10
+ */
2
11
  export declare namespace NestiaMigrateApiProgrammer {
12
+ /**
13
+ * Returns the map from file path to content of the functional API, with the
14
+ * DTO files for an SDK project.
15
+ *
16
+ * @evidence contracts/common.md#principled-implementation The grouping creates every ancestor namespace so that each level has an index, and the paths differ between the two modes only by their root.
17
+ * @evidence contracts/common.md#clear-and-simple-design One function.
18
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The layout follows the accessors.
19
+ * @evidence contracts/common.md#meaningful-documentation The comment states the result.
20
+ */
3
21
  const write: (ctx: INestiaMigrateContext) => Record<string, string>;
4
22
  }
@@ -7,8 +7,26 @@ const FilePrinter_1 = require("../utils/FilePrinter");
7
7
  const NestiaMigrateApiFileProgrammer_1 = require("./NestiaMigrateApiFileProgrammer");
8
8
  const NestiaMigrateDtoProgrammer_1 = require("./NestiaMigrateDtoProgrammer");
9
9
  const NestiaMigrateImportProgrammer_1 = require("./NestiaMigrateImportProgrammer");
10
+ /**
11
+ * Generates the functional API files and, for an SDK project, the DTO structure
12
+ * files.
13
+ *
14
+ * @evidence contracts/common.md#principled-implementation Routes are grouped by namespace path in a hash map, each parent namespace is given its child, and each namespace becomes one `index.ts`; the DTO files are written per top-level component name.
15
+ * @evidence contracts/common.md#clear-and-simple-design One entry function and two private helpers for the DTO files.
16
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The layout follows the accessors of the routes.
17
+ * @evidence contracts/common.md#meaningful-documentation The comment states what is generated.
18
+ */
10
19
  var NestiaMigrateApiProgrammer;
11
20
  (function (NestiaMigrateApiProgrammer) {
21
+ /**
22
+ * Returns the map from file path to content of the functional API, with the
23
+ * DTO files for an SDK project.
24
+ *
25
+ * @evidence contracts/common.md#principled-implementation The grouping creates every ancestor namespace so that each level has an index, and the paths differ between the two modes only by their root.
26
+ * @evidence contracts/common.md#clear-and-simple-design One function.
27
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The layout follows the accessors.
28
+ * @evidence contracts/common.md#meaningful-documentation The comment states the result.
29
+ */
12
30
  NestiaMigrateApiProgrammer.write = (ctx) => {
13
31
  const dict = new tstl_1.HashMap((x) => (0, tstl_1.hash)(x.join(".")), (x, y) => x.length === y.length && x.join(".") === y.join("."));
14
32
  dict.take([], () => ({
@@ -1 +1 @@
1
- {"version":3,"file":"NestiaMigrateApiProgrammer.js","sourceRoot":"","sources":["../../src/programmers/NestiaMigrateApiProgrammer.ts"],"names":[],"mappings":";;;AAAA,2CAA+D;AAC/D,+BAAqC;AAIrC,sDAAmD;AACnD,qFAAkF;AAClF,6EAA0E;AAC1E,mFAAgF;AAEhF,IAAiB,0BAA0B,CAwG1C;AAxGD,WAAiB,0BAA0B;IAC5B,gCAAK,GAAG,CAAC,GAA0B,EAA0B,EAAE;QAC1E,MAAM,IAAI,GACR,IAAI,cAAO,CACT,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,WAAI,EAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACxB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAC/D,CAAC;QACJ,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACnB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,UAAU;YACjD,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,IAAI,GAAG,EAAE;SACpB,CAAC,CAAC,CAAC;QACJ,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAa,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxD,IAAI,IAAI,GAA0C,IAAI,CAAC,IAAI,CACzD,SAAS,EACT,GAAG,EAAE,CAAC,CAAC;gBACL,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,UAAU;gBACjD,SAAS;gBACT,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,IAAI,GAAG,EAAE;aACpB,CAAC,CACH,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;gBACjC,MAAM,OAAO,GAAa,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnE,MAAM,KAAK,GAA0C,IAAI,CAAC,IAAI,CAC5D,OAAO,EACP,GAAG,EAAE,CAAC,CAAC;oBACL,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,UAAU;oBACjD,SAAS,EAAE,OAAO;oBAClB,QAAQ,EAAE,IAAI,GAAG,EAAE;oBACnB,MAAM,EAAE,EAAE;iBACX,CAAC,CACH,CAAC;gBACF,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;gBAC3C,IAAI,GAAG,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC;QAED,cAAc;QACd,MAAM,KAAK,GAA2B,MAAM,CAAC,WAAW,CACtD,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YACvC,GAAG,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC9G,yBAAW,CAAC,KAAK,CAAC;gBAChB,UAAU,EAAE,+DAA8B,CAAC,KAAK,iCAC3C,KAAK,KACR,MAAM,EAAE,GAAG,CAAC,MAAM,EAClB,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,UAAU,IACjD;aACH,CAAC;SACH,CAAC,CACH,CAAC;QACF,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK;YACpB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,uDAA0B,CAAC,OAAO,CAAC;gBAC5D,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,UAAU;aAClD,CAAC,CAAC,OAAO,EAAE;gBACV,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,GAAG,yBAAW,CAAC,KAAK,CAAC;oBACpD,UAAU,EAAE,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC;iBACrC,CAAC,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CACnB,GAAW,EACX,MAA0C,EAC1B,EAAE;QAClB,MAAM,QAAQ,GAAG,IAAI,6DAA6B,EAAE,CAAC;QACrD,MAAM,UAAU,GAAmB,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACvC,OAAO;YACL,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC;YACpD,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,yBAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACpD,GAAG,UAAU;SACd,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CACd,QAAuC,EACvC,MAA0C,EAC1B,EAAE;QAClB,MAAM,MAAM,GAAmB,EAAE,CAAC;QAClC,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI;YAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzE,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAmB,EAAE,CAAC;YACpC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAC1C,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,CACT,iBAAO,CAAC,uBAAuB,CAC7B,CAAC,iBAAO,CAAC,cAAc,CAAC,oBAAU,CAAC,aAAa,CAAC,CAAC,EAClD,iBAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,EACrC,iBAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EACnC,mBAAS,CAAC,SAAS,CACpB,CACF,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,yBAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC,EAxGgB,0BAA0B,aAA1B,0BAA0B,GAA1B,0BAA0B,QAwG1C"}
1
+ {"version":3,"file":"NestiaMigrateApiProgrammer.js","sourceRoot":"","sources":["../../src/programmers/NestiaMigrateApiProgrammer.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,8 @@ import { FilePrinter } from "../utils/FilePrinter.mjs";
2
2
  import { NestiaMigrateImportProgrammer } from "./NestiaMigrateImportProgrammer.mjs";
3
3
  import { NestiaMigrateApiFileProgrammer } from "./NestiaMigrateApiFileProgrammer.mjs";
4
4
  import { NestiaMigrateDtoProgrammer } from "./NestiaMigrateDtoProgrammer.mjs";
5
- import { NodeFlags, SyntaxKind, factory } from "@ttsc/factory";
6
5
  import { HashMap, hash } from "tstl";
6
+ import { NodeFlags, SyntaxKind, factory } from "@ttsc/factory";
7
7
  //#region src/programmers/NestiaMigrateApiProgrammer.ts
8
8
  let NestiaMigrateApiProgrammer;
9
9
  (function(_NestiaMigrateApiProgrammer) {
@@ -3,13 +3,53 @@ import { OpenApi } from "typia";
3
3
  import ts from "../internal/ts";
4
4
  import { INestiaMigrateConfig } from "../structures/INestiaMigrateConfig";
5
5
  import { NestiaMigrateImportProgrammer } from "./NestiaMigrateImportProgrammer";
6
+ /**
7
+ * Generates the mockup simulator members of a route: a random response and a
8
+ * simulate function that validates the request first.
9
+ *
10
+ * @evidence contracts/common.md#principled-implementation The random member calls `typia.random` for the response type, and the simulate function validates the parameters, query, body, and headers with `typia.assert` through the fetcher's simulator, so an invalid simulated request throws the error the real server answers.
11
+ * @evidence contracts/common.md#clear-and-simple-design Two public functions and one private assertion writer.
12
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The simulation follows the schemas of the route.
13
+ * @evidence contracts/common.md#meaningful-documentation The comment states what is generated.
14
+ */
6
15
  export declare namespace NestiaMigrateApiSimulationProgrammer {
16
+ /**
17
+ * The input of the simulation members: the configuration, the components, the
18
+ * importer, and the route.
19
+ *
20
+ * @evidence contracts/common.md#principled-implementation The record holds exactly what the generation needs.
21
+ * @evidence contracts/common.md#clear-and-simple-design A flat record.
22
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts It is a type and adds no runtime behavior.
23
+ * @evidence contracts/common.md#meaningful-documentation The comment lists the fields.
24
+ */
7
25
  interface IContext {
26
+ /** Calling convention and optional generated features for this operation. */
8
27
  config: INestiaMigrateConfig;
28
+ /** Component schemas used to resolve DTO references. */
9
29
  components: OpenApi.IComponents;
30
+ /** File-local import collector shared with the surrounding file writer. */
10
31
  importer: NestiaMigrateImportProgrammer;
32
+ /** Analyzed operation, with the accessor chosen for this generation. */
11
33
  route: IHttpMigrateRoute;
12
34
  }
35
+ /**
36
+ * Returns the `random` constant: a function that returns a random value of
37
+ * the response type.
38
+ *
39
+ * @evidence contracts/common.md#principled-implementation The response schema is written as a type and given to `typia.random`, and a route without a response uses `void`.
40
+ * @evidence contracts/common.md#clear-and-simple-design One expression.
41
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The value is produced by typia at run time.
42
+ * @evidence contracts/common.md#meaningful-documentation The comment states the result.
43
+ */
13
44
  const random: (ctx: IContext) => import("@ttsc/factory").VariableStatement;
45
+ /**
46
+ * Returns the `simulate` constant: a function with the route's parameters
47
+ * that validates the request and returns a random response.
48
+ *
49
+ * @evidence contracts/common.md#principled-implementation The parameters are those of the real function, the assertions run first, and an unused connection is renamed so the compiler does not report it.
50
+ * @evidence contracts/common.md#clear-and-simple-design One expression over the shared parameter builder.
51
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The validation is generated from the same schemas as the real function's types.
52
+ * @evidence contracts/common.md#meaningful-documentation The comment states the result.
53
+ */
14
54
  const simulate: (ctx: IContext) => ts.VariableStatement;
15
55
  }
@@ -8,8 +8,26 @@ const TypeFactory_1 = require("../factories/TypeFactory");
8
8
  const NestiaMigrateApiFunctionProgrammer_1 = require("./NestiaMigrateApiFunctionProgrammer");
9
9
  const NestiaMigrateApiNamespaceProgrammer_1 = require("./NestiaMigrateApiNamespaceProgrammer");
10
10
  const NestiaMigrateSchemaProgrammer_1 = require("./NestiaMigrateSchemaProgrammer");
11
+ /**
12
+ * Generates the mockup simulator members of a route: a random response and a
13
+ * simulate function that validates the request first.
14
+ *
15
+ * @evidence contracts/common.md#principled-implementation The random member calls `typia.random` for the response type, and the simulate function validates the parameters, query, body, and headers with `typia.assert` through the fetcher's simulator, so an invalid simulated request throws the error the real server answers.
16
+ * @evidence contracts/common.md#clear-and-simple-design Two public functions and one private assertion writer.
17
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The simulation follows the schemas of the route.
18
+ * @evidence contracts/common.md#meaningful-documentation The comment states what is generated.
19
+ */
11
20
  var NestiaMigrateApiSimulationProgrammer;
12
21
  (function (NestiaMigrateApiSimulationProgrammer) {
22
+ /**
23
+ * Returns the `random` constant: a function that returns a random value of
24
+ * the response type.
25
+ *
26
+ * @evidence contracts/common.md#principled-implementation The response schema is written as a type and given to `typia.random`, and a route without a response uses `void`.
27
+ * @evidence contracts/common.md#clear-and-simple-design One expression.
28
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The value is produced by typia at run time.
29
+ * @evidence contracts/common.md#meaningful-documentation The comment states the result.
30
+ */
13
31
  NestiaMigrateApiSimulationProgrammer.random = (ctx) => {
14
32
  const output = ctx.route.success
15
33
  ? NestiaMigrateSchemaProgrammer_1.NestiaMigrateSchemaProgrammer.write({
@@ -24,11 +42,21 @@ var NestiaMigrateApiSimulationProgrammer;
24
42
  name: "typia",
25
43
  })), "random"), [output], undefined)));
26
44
  };
45
+ /**
46
+ * Returns the `simulate` constant: a function with the route's parameters
47
+ * that validates the request and returns a random response.
48
+ *
49
+ * @evidence contracts/common.md#principled-implementation The parameters are those of the real function, the assertions run first, and an unused connection is renamed so the compiler does not report it.
50
+ * @evidence contracts/common.md#clear-and-simple-design One expression over the shared parameter builder.
51
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The validation is generated from the same schemas as the real function's types.
52
+ * @evidence contracts/common.md#meaningful-documentation The comment states the result.
53
+ */
27
54
  NestiaMigrateApiSimulationProgrammer.simulate = (ctx) => {
28
55
  const caller = () => factory_1.factory.createCallExpression(factory_1.factory.createIdentifier("random"), undefined, undefined);
29
56
  return constant("simulate", factory_1.factory.createArrowFunction(undefined, undefined, NestiaMigrateApiFunctionProgrammer_1.NestiaMigrateApiFunctionProgrammer.writeParameterDeclarations(ctx, ctx.route.parameters.length === 0 &&
30
57
  ctx.route.query === null &&
31
- ctx.route.body === null
58
+ ctx.route.body === null &&
59
+ ctx.route.headers === null
32
60
  ? "_connection"
33
61
  : undefined), factory_1.factory.createTypeReferenceNode(ctx.route.success ? "Response" : "void"), undefined, factory_1.factory.createBlock([...assert(ctx), factory_1.factory.createReturnStatement(caller())], true)));
34
62
  };
@@ -74,6 +102,20 @@ var NestiaMigrateApiSimulationProgrammer;
74
102
  },
75
103
  ]
76
104
  : []),
105
+ // the headers travel in the connection, validated as the server does
106
+ ...(ctx.route.headers
107
+ ? [
108
+ {
109
+ category: "headers",
110
+ name: ctx.route.headers.key,
111
+ schema: NestiaMigrateSchemaProgrammer_1.NestiaMigrateSchemaProgrammer.write({
112
+ components: ctx.components,
113
+ importer: ctx.importer,
114
+ schema: ctx.route.headers.schema,
115
+ }),
116
+ },
117
+ ]
118
+ : []),
77
119
  ];
78
120
  if (parameters.length === 0)
79
121
  return [];
@@ -105,34 +147,21 @@ var NestiaMigrateApiSimulationProgrammer;
105
147
  type: "default",
106
148
  library: "typia",
107
149
  name: "typia",
108
- })), "assert"), undefined, [
150
+ })), "assert"),
151
+ // `connection.headers` is typed optional with optional
152
+ // members, so the headers name their own type to be checked
153
+ p.category === "headers" ? [p.schema] : undefined, [
109
154
  p.category === "headers"
110
155
  ? factory_1.factory.createIdentifier("connection.headers")
111
156
  : property(p.name),
112
157
  ])),
113
158
  ]))
114
159
  .map(factory_1.factory.createExpressionStatement);
115
- return [validator, tryAndCatch(ctx.importer, individual)];
160
+ // the SDK fetches without propagation, so an invalid simulated request
161
+ // throws its HttpError as the real one does, instead of answering a
162
+ // propagation object in place of the response
163
+ return [validator, ...individual];
116
164
  };
117
- const tryAndCatch = (importer, individual) => factory_1.factory.createTryStatement(factory_1.factory.createBlock(individual, true), factory_1.factory.createCatchClause("exp", factory_1.factory.createBlock([
118
- factory_1.factory.createIfStatement(factory_1.factory.createLogicalNot(factory_1.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(factory_1.factory.createIdentifier(importer.external({
119
- type: "default",
120
- library: "typia",
121
- name: "typia",
122
- })), "is"), [
123
- factory_1.factory.createTypeReferenceNode(importer.external({
124
- type: "instance",
125
- library: "@nestia/fetcher",
126
- name: "HttpError",
127
- })),
128
- ], [factory_1.factory.createIdentifier("exp")])), factory_1.factory.createThrowStatement(factory_1.factory.createIdentifier("exp"))),
129
- factory_1.factory.createReturnStatement(factory_1.factory.createAsExpression(factory_1.factory.createObjectLiteralExpression([
130
- factory_1.factory.createPropertyAssignment("success", factory_1.factory.createFalse()),
131
- factory_1.factory.createPropertyAssignment("status", factory_1.factory.createIdentifier("exp.status")),
132
- factory_1.factory.createPropertyAssignment("headers", factory_1.factory.createIdentifier("exp.headers")),
133
- factory_1.factory.createPropertyAssignment("data", factory_1.factory.createIdentifier("exp.toJSON().message")),
134
- ], true), TypeFactory_1.TypeFactory.keyword("any"))),
135
- ], true)), undefined);
136
165
  })(NestiaMigrateApiSimulationProgrammer || (exports.NestiaMigrateApiSimulationProgrammer = NestiaMigrateApiSimulationProgrammer = {}));
137
166
  const constant = (name, expression) => factory_1.factory.createVariableStatement([factory_1.factory.createModifier(factory_1.SyntaxKind.ExportKeyword)], factory_1.factory.createVariableDeclarationList([
138
167
  factory_1.factory.createVariableDeclaration(factory_1.factory.createIdentifier(name), undefined, undefined, expression),
@@ -1 +1 @@
1
- {"version":3,"file":"NestiaMigrateApiSimulationProgrammer.js","sourceRoot":"","sources":["../../src/programmers/NestiaMigrateApiSimulationProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NestiaMigrateApiSimulationProgrammer.js","sourceRoot":"","sources":["../../src/programmers/NestiaMigrateApiSimulationProgrammer.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ let NestiaMigrateApiSimulationProgrammer;
22
22
  };
23
23
  _NestiaMigrateApiSimulationProgrammer.simulate = (ctx) => {
24
24
  const caller = () => factory.createCallExpression(factory.createIdentifier("random"), void 0, void 0);
25
- return constant("simulate", factory.createArrowFunction(void 0, void 0, NestiaMigrateApiFunctionProgrammer.writeParameterDeclarations(ctx, ctx.route.parameters.length === 0 && ctx.route.query === null && ctx.route.body === null ? "_connection" : void 0), factory.createTypeReferenceNode(ctx.route.success ? "Response" : "void"), void 0, factory.createBlock([...assert(ctx), factory.createReturnStatement(caller())], true)));
25
+ return constant("simulate", factory.createArrowFunction(void 0, void 0, NestiaMigrateApiFunctionProgrammer.writeParameterDeclarations(ctx, ctx.route.parameters.length === 0 && ctx.route.query === null && ctx.route.body === null && ctx.route.headers === null ? "_connection" : void 0), factory.createTypeReferenceNode(ctx.route.success ? "Response" : "void"), void 0, factory.createBlock([...assert(ctx), factory.createReturnStatement(caller())], true)));
26
26
  };
27
27
  const assert = (ctx) => {
28
28
  const property = (key) => ctx.config.keyword === true ? IdentifierFactory.access(factory.createIdentifier("props"), key) : factory.createIdentifier(key);
@@ -53,10 +53,19 @@ let NestiaMigrateApiSimulationProgrammer;
53
53
  importer: ctx.importer,
54
54
  schema: ctx.route.body.schema
55
55
  })
56
+ }] : [],
57
+ ...ctx.route.headers ? [{
58
+ category: "headers",
59
+ name: ctx.route.headers.key,
60
+ schema: NestiaMigrateSchemaProgrammer.write({
61
+ components: ctx.components,
62
+ importer: ctx.importer,
63
+ schema: ctx.route.headers.schema
64
+ })
56
65
  }] : []
57
66
  ];
58
67
  if (parameters.length === 0) return [];
59
- const validator = StatementFactory.constant({
68
+ return [StatementFactory.constant({
60
69
  name: "assert",
61
70
  value: factory.createCallExpression(IdentifierFactory.access(factory.createIdentifier(ctx.importer.external({
62
71
  type: "instance",
@@ -68,8 +77,7 @@ let NestiaMigrateApiSimulationProgrammer;
68
77
  factory.createPropertyAssignment("path", NestiaMigrateApiNamespaceProgrammer.writePathCallExpression(ctx.config, ctx.route)),
69
78
  factory.createPropertyAssignment("contentType", factory.createStringLiteral(ctx.route.success?.type ?? "application/json"))
70
79
  ], true)])
71
- });
72
- const individual = parameters.map((p) => factory.createCallExpression((() => {
80
+ }), ...parameters.map((p) => factory.createCallExpression((() => {
73
81
  const base = IdentifierFactory.access(factory.createIdentifier("assert"), p.category);
74
82
  if (p.category !== "param") return base;
75
83
  return factory.createCallExpression(base, void 0, [factory.createStringLiteral(p.name)]);
@@ -77,23 +85,8 @@ let NestiaMigrateApiSimulationProgrammer;
77
85
  type: "default",
78
86
  library: "typia",
79
87
  name: "typia"
80
- })), "assert"), void 0, [p.category === "headers" ? factory.createIdentifier("connection.headers") : property(p.name)]))])).map(factory.createExpressionStatement);
81
- return [validator, tryAndCatch(ctx.importer, individual)];
88
+ })), "assert"), p.category === "headers" ? [p.schema] : void 0, [p.category === "headers" ? factory.createIdentifier("connection.headers") : property(p.name)]))])).map(factory.createExpressionStatement)];
82
89
  };
83
- const tryAndCatch = (importer, individual) => factory.createTryStatement(factory.createBlock(individual, true), factory.createCatchClause("exp", factory.createBlock([factory.createIfStatement(factory.createLogicalNot(factory.createCallExpression(IdentifierFactory.access(factory.createIdentifier(importer.external({
84
- type: "default",
85
- library: "typia",
86
- name: "typia"
87
- })), "is"), [factory.createTypeReferenceNode(importer.external({
88
- type: "instance",
89
- library: "@nestia/fetcher",
90
- name: "HttpError"
91
- }))], [factory.createIdentifier("exp")])), factory.createThrowStatement(factory.createIdentifier("exp"))), factory.createReturnStatement(factory.createAsExpression(factory.createObjectLiteralExpression([
92
- factory.createPropertyAssignment("success", factory.createFalse()),
93
- factory.createPropertyAssignment("status", factory.createIdentifier("exp.status")),
94
- factory.createPropertyAssignment("headers", factory.createIdentifier("exp.headers")),
95
- factory.createPropertyAssignment("data", factory.createIdentifier("exp.toJSON().message"))
96
- ], true), TypeFactory.keyword("any")))], true)), void 0);
97
90
  })(NestiaMigrateApiSimulationProgrammer || (NestiaMigrateApiSimulationProgrammer = {}));
98
91
  const constant = (name, expression) => factory.createVariableStatement([factory.createModifier(SyntaxKind.ExportKeyword)], factory.createVariableDeclarationList([factory.createVariableDeclaration(factory.createIdentifier(name), void 0, void 0, expression)], NodeFlags.Const));
99
92
  //#endregion
@@ -1,4 +1,21 @@
1
1
  import { INestiaMigrateContext } from "../structures/INestiaMigrateContext";
2
+ /**
3
+ * Generates the `test/start.ts` of an SDK project: a small program that calls
4
+ * one API function.
5
+ *
6
+ * @evidence contracts/common.md#principled-implementation The program builds a connection from the global test settings and the first server of the document, adds the simulate flag when requested, and calls the first route the way the generated e2e tests do, so one command can check that the SDK and a server agree.
7
+ * @evidence contracts/common.md#clear-and-simple-design One entry function and private helpers for the connection, the main function, and the starter.
8
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The route is the first one, so the same document always generates the same file.
9
+ * @evidence contracts/common.md#meaningful-documentation The comment states what is generated.
10
+ */
2
11
  export declare namespace NestiaMigrateApiStartProgrammer {
12
+ /**
13
+ * Returns the `test/start.ts` file of an SDK project.
14
+ *
15
+ * @evidence contracts/common.md#principled-implementation The file imports what the body uses, defines `main`, and starts it, exiting with a failure status when it rejects.
16
+ * @evidence contracts/common.md#clear-and-simple-design One function.
17
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The content derives from the document.
18
+ * @evidence contracts/common.md#meaningful-documentation The comment states the result.
19
+ */
3
20
  const write: (context: INestiaMigrateContext) => Record<string, string>;
4
21
  }