@nestia/sdk 2.5.0-dev.20240130-3 → 2.5.0-dev.20240130-5

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 (52) hide show
  1. package/lib/generates/CloneGenerator.js +11 -11
  2. package/lib/generates/CloneGenerator.js.map +1 -1
  3. package/lib/generates/internal/E2eFileProgrammer.js +11 -11
  4. package/lib/generates/internal/E2eFileProgrammer.js.map +1 -1
  5. package/lib/generates/internal/FilePrinter.d.ts +10 -0
  6. package/lib/{utils/FormatUtil.js → generates/internal/FilePrinter.js} +17 -9
  7. package/lib/generates/internal/FilePrinter.js.map +1 -0
  8. package/lib/{utils → generates/internal}/ImportDictionary.d.ts +0 -1
  9. package/lib/{utils → generates/internal}/ImportDictionary.js +2 -39
  10. package/lib/generates/internal/ImportDictionary.js.map +1 -0
  11. package/lib/generates/internal/SdkAliasCollection.d.ts +1 -1
  12. package/lib/generates/internal/SdkAliasCollection.js +1 -1
  13. package/lib/generates/internal/SdkAliasCollection.js.map +1 -1
  14. package/lib/generates/internal/SdkFileProgrammer.js +15 -15
  15. package/lib/generates/internal/SdkFileProgrammer.js.map +1 -1
  16. package/lib/generates/internal/SdkFunctionProgrammer.d.ts +1 -1
  17. package/lib/generates/internal/SdkFunctionProgrammer.js +1 -1
  18. package/lib/generates/internal/SdkFunctionProgrammer.js.map +1 -1
  19. package/lib/generates/internal/SdkImportWizard.d.ts +1 -1
  20. package/lib/generates/internal/SdkInterfaceProgrammer.d.ts +2 -2
  21. package/lib/generates/internal/SdkInterfaceProgrammer.js +18 -17
  22. package/lib/generates/internal/SdkInterfaceProgrammer.js.map +1 -1
  23. package/lib/generates/internal/SdkNamespaceProgrammer.d.ts +2 -2
  24. package/lib/generates/internal/SdkNamespaceProgrammer.js +13 -13
  25. package/lib/generates/internal/SdkNamespaceProgrammer.js.map +1 -1
  26. package/lib/generates/internal/SdkRouteProgrammer.d.ts +1 -1
  27. package/lib/generates/internal/SdkRouteProgrammer.js +3 -3
  28. package/lib/generates/internal/SdkRouteProgrammer.js.map +1 -1
  29. package/lib/generates/internal/SdkSimulationProgrammer.d.ts +1 -1
  30. package/lib/generates/internal/SdkSimulationProgrammer.js +1 -1
  31. package/lib/generates/internal/SdkSimulationProgrammer.js.map +1 -1
  32. package/lib/generates/internal/SdkTypeProgrammer.d.ts +2 -2
  33. package/lib/generates/internal/SdkTypeProgrammer.js +89 -31
  34. package/lib/generates/internal/SdkTypeProgrammer.js.map +1 -1
  35. package/package.json +3 -3
  36. package/src/generates/CloneGenerator.ts +10 -20
  37. package/src/generates/internal/E2eFileProgrammer.ts +11 -24
  38. package/src/generates/internal/FilePrinter.ts +53 -0
  39. package/src/{utils → generates/internal}/ImportDictionary.ts +2 -50
  40. package/src/generates/internal/SdkAliasCollection.ts +2 -2
  41. package/src/generates/internal/SdkFileProgrammer.ts +16 -27
  42. package/src/generates/internal/SdkFunctionProgrammer.ts +2 -2
  43. package/src/generates/internal/SdkImportWizard.ts +1 -1
  44. package/src/generates/internal/SdkInterfaceProgrammer.ts +24 -23
  45. package/src/generates/internal/SdkNamespaceProgrammer.ts +14 -14
  46. package/src/generates/internal/SdkRouteProgrammer.ts +4 -7
  47. package/src/generates/internal/SdkSimulationProgrammer.ts +2 -2
  48. package/src/generates/internal/SdkTypeProgrammer.ts +155 -38
  49. package/lib/utils/FormatUtil.d.ts +0 -6
  50. package/lib/utils/FormatUtil.js.map +0 -1
  51. package/lib/utils/ImportDictionary.js.map +0 -1
  52. package/src/utils/FormatUtil.ts +0 -31
@@ -1,4 +1,5 @@
1
1
  import ts from "typescript";
2
+ import { IJsDocTagInfo } from "typia";
2
3
  import { ExpressionFactory } from "typia/lib/factories/ExpressionFactory";
3
4
  import { TypeFactory } from "typia/lib/factories/TypeFactory";
4
5
  import { IMetadataTypeTag } from "typia/lib/schemas/metadata/IMetadataTypeTag";
@@ -8,13 +9,19 @@ import { MetadataArray } from "typia/lib/schemas/metadata/MetadataArray";
8
9
  import { MetadataAtomic } from "typia/lib/schemas/metadata/MetadataAtomic";
9
10
  import { MetadataEscaped } from "typia/lib/schemas/metadata/MetadataEscaped";
10
11
  import { MetadataObject } from "typia/lib/schemas/metadata/MetadataObject";
12
+ import { MetadataProperty } from "typia/lib/schemas/metadata/MetadataProperty";
11
13
  import { MetadataTuple } from "typia/lib/schemas/metadata/MetadataTuple";
14
+ import { Escaper } from "typia/lib/utils/Escaper";
12
15
 
13
16
  import { INestiaConfig } from "../../INestiaConfig";
14
- import { ImportDictionary } from "../../utils/ImportDictionary";
17
+ import { FilePrinter } from "./FilePrinter";
18
+ import { ImportDictionary } from "./ImportDictionary";
15
19
 
16
20
  export namespace SdkTypeProgrammer {
17
- export const decode =
21
+ /* -----------------------------------------------------------
22
+ FACADE
23
+ ----------------------------------------------------------- */
24
+ export const write =
18
25
  (config: INestiaConfig) =>
19
26
  (importer: ImportDictionary) =>
20
27
  (meta: Metadata, parentEscaped: boolean = false): ts.TypeNode => {
@@ -22,35 +29,36 @@ export namespace SdkTypeProgrammer {
22
29
 
23
30
  // COALESCES
24
31
  if (meta.any) union.push(TypeFactory.keyword("any"));
25
- if (meta.nullable) union.push(node("null"));
26
- if (meta.isRequired() === false) union.push(node("undefined"));
32
+ if (meta.nullable) union.push(writeNode("null"));
33
+ if (meta.isRequired() === false) union.push(writeNode("undefined"));
27
34
  if (parentEscaped === false && meta.escaped)
28
- union.push(decode_escaped(config)(importer)(meta.escaped));
35
+ union.push(write_escaped(config)(importer)(meta.escaped));
29
36
 
30
37
  // ATOMIC TYPES
31
38
  for (const c of meta.constants)
32
- for (const value of c.values) union.push(decode_constant(value));
39
+ for (const value of c.values) union.push(write_constant(value));
33
40
  for (const tpl of meta.templates)
34
- union.push(decode_template(config)(importer)(tpl));
35
- for (const atom of meta.atomics)
36
- union.push(decode_atomic(importer)(atom));
41
+ union.push(write_template(config)(importer)(tpl));
42
+ for (const atom of meta.atomics) union.push(write_atomic(importer)(atom));
37
43
 
38
44
  // OBJECT TYPES
39
45
  for (const tuple of meta.tuples)
40
- union.push(decode_tuple(config)(importer)(tuple));
46
+ union.push(write_tuple(config)(importer)(tuple));
41
47
  for (const array of meta.arrays)
42
- union.push(decode_array(config)(importer)(array));
48
+ union.push(write_array(config)(importer)(array));
43
49
  for (const object of meta.objects)
44
- union.push(decode_alias(config)(importer)(object));
50
+ if (object.name === "__type" || object.name.startsWith("__type."))
51
+ union.push(write_object(config)(importer)(object));
52
+ else union.push(write_alias(config)(importer)(object));
45
53
  for (const alias of meta.aliases)
46
- union.push(decode_alias(config)(importer)(alias));
54
+ union.push(write_alias(config)(importer)(alias));
47
55
 
48
56
  return union.length === 1
49
57
  ? union[0]
50
58
  : ts.factory.createUnionTypeNode(union);
51
59
  };
52
60
 
53
- const decode_escaped =
61
+ const write_escaped =
54
62
  (config: INestiaConfig) =>
55
63
  (importer: ImportDictionary) =>
56
64
  (meta: MetadataEscaped): ts.TypeNode => {
@@ -61,15 +69,18 @@ export namespace SdkTypeProgrammer {
61
69
  )
62
70
  return ts.factory.createIntersectionTypeNode([
63
71
  TypeFactory.keyword("string"),
64
- decodeTag(importer)({
72
+ writeTag(importer)({
65
73
  name: "Format",
66
74
  value: "date-time",
67
75
  } as IMetadataTypeTag),
68
76
  ]);
69
- return decode(config)(importer)(meta.returns, true);
77
+ return write(config)(importer)(meta.returns, true);
70
78
  };
71
79
 
72
- const decode_constant = (value: boolean | bigint | number | string) => {
80
+ /* -----------------------------------------------------------
81
+ ATOMICS
82
+ ----------------------------------------------------------- */
83
+ const write_constant = (value: boolean | bigint | number | string) => {
73
84
  if (typeof value === "boolean")
74
85
  return ts.factory.createLiteralTypeNode(
75
86
  value ? ts.factory.createTrue() : ts.factory.createFalse(),
@@ -90,7 +101,7 @@ export namespace SdkTypeProgrammer {
90
101
  );
91
102
  };
92
103
 
93
- const decode_template =
104
+ const write_template =
94
105
  (config: INestiaConfig) =>
95
106
  (importer: ImportDictionary) =>
96
107
  (meta: Metadata[]): ts.TypeNode => {
@@ -115,8 +126,8 @@ export namespace SdkTypeProgrammer {
115
126
  ),
116
127
  null,
117
128
  ]);
118
- else if (last[0] === null) last[0] = decode(config)(importer)(elem);
119
- else spans.push([decode(config)(importer)(elem), null]);
129
+ else if (last[0] === null) last[0] = write(config)(importer)(elem);
130
+ else spans.push([write(config)(importer)(elem), null]);
120
131
  }
121
132
  return ts.factory.createTemplateLiteralType(
122
133
  ts.factory.createTemplateHead(
@@ -135,10 +146,10 @@ export namespace SdkTypeProgrammer {
135
146
  );
136
147
  };
137
148
 
138
- const decode_atomic =
149
+ const write_atomic =
139
150
  (importer: ImportDictionary) =>
140
151
  (meta: MetadataAtomic): ts.TypeNode =>
141
- decode_type_tag_matrix(importer)(
152
+ write_type_tag_matrix(importer)(
142
153
  ts.factory.createKeywordTypeNode(
143
154
  meta.type === "boolean"
144
155
  ? ts.SyntaxKind.BooleanKeyword
@@ -151,18 +162,21 @@ export namespace SdkTypeProgrammer {
151
162
  meta.tags,
152
163
  );
153
164
 
154
- const decode_array =
165
+ /* -----------------------------------------------------------
166
+ INSTANCES
167
+ ----------------------------------------------------------- */
168
+ const write_array =
155
169
  (config: INestiaConfig) =>
156
170
  (importer: ImportDictionary) =>
157
171
  (meta: MetadataArray): ts.TypeNode =>
158
- decode_type_tag_matrix(importer)(
172
+ write_type_tag_matrix(importer)(
159
173
  ts.factory.createArrayTypeNode(
160
- decode(config)(importer)(meta.type.value),
174
+ write(config)(importer)(meta.type.value),
161
175
  ),
162
176
  meta.tags,
163
177
  );
164
178
 
165
- const decode_tuple =
179
+ const write_tuple =
166
180
  (config: INestiaConfig) =>
167
181
  (importer: ImportDictionary) =>
168
182
  (meta: MetadataTuple): ts.TypeNode =>
@@ -171,18 +185,89 @@ export namespace SdkTypeProgrammer {
171
185
  elem.rest
172
186
  ? ts.factory.createRestTypeNode(
173
187
  ts.factory.createArrayTypeNode(
174
- decode(config)(importer)(elem.rest),
188
+ write(config)(importer)(elem.rest),
175
189
  ),
176
190
  )
177
191
  : elem.optional
178
- ? ts.factory.createOptionalTypeNode(
179
- decode(config)(importer)(elem),
180
- )
181
- : decode(config)(importer)(elem),
192
+ ? ts.factory.createOptionalTypeNode(write(config)(importer)(elem))
193
+ : write(config)(importer)(elem),
182
194
  ),
183
195
  );
184
196
 
185
- const decode_alias =
197
+ const write_object =
198
+ (config: INestiaConfig) =>
199
+ (importer: ImportDictionary) =>
200
+ (object: MetadataObject): ts.TypeNode => {
201
+ const regular = object.properties.filter((p) => p.key.isSoleLiteral());
202
+ const dynamic = object.properties.filter((p) => !p.key.isSoleLiteral());
203
+ return FilePrinter.description(
204
+ regular.length && dynamic.length
205
+ ? ts.factory.createIntersectionTypeNode([
206
+ write_regular(config)(importer)(regular),
207
+ ...dynamic.map(write_dynamic(config)(importer)),
208
+ ])
209
+ : dynamic.length
210
+ ? ts.factory.createIntersectionTypeNode(
211
+ dynamic.map(write_dynamic(config)(importer)),
212
+ )
213
+ : write_regular(config)(importer)(regular),
214
+ writeComment([])(object.description ?? null, object.jsDocTags),
215
+ );
216
+ };
217
+
218
+ const write_regular =
219
+ (config: INestiaConfig) =>
220
+ (importer: ImportDictionary) =>
221
+ (properties: MetadataProperty[]): ts.TypeLiteralNode =>
222
+ ts.factory.createTypeLiteralNode(
223
+ properties.map((p) =>
224
+ FilePrinter.description(
225
+ ts.factory.createPropertySignature(
226
+ undefined,
227
+ Escaper.variable(String(p.key.constants[0].values[0]))
228
+ ? ts.factory.createIdentifier(
229
+ String(p.key.constants[0].values[0]),
230
+ )
231
+ : ts.factory.createStringLiteral(
232
+ String(p.key.constants[0].values[0]),
233
+ ),
234
+ p.value.isRequired() === false
235
+ ? ts.factory.createToken(ts.SyntaxKind.QuestionToken)
236
+ : undefined,
237
+ SdkTypeProgrammer.write(config)(importer)(p.value),
238
+ ),
239
+ writeComment(p.value.atomics)(p.description, p.jsDocTags),
240
+ ),
241
+ ),
242
+ );
243
+
244
+ const write_dynamic =
245
+ (config: INestiaConfig) =>
246
+ (importer: ImportDictionary) =>
247
+ (property: MetadataProperty): ts.TypeLiteralNode =>
248
+ ts.factory.createTypeLiteralNode([
249
+ FilePrinter.description(
250
+ ts.factory.createIndexSignature(
251
+ undefined,
252
+ [
253
+ ts.factory.createParameterDeclaration(
254
+ undefined,
255
+ undefined,
256
+ ts.factory.createIdentifier("key"),
257
+ undefined,
258
+ SdkTypeProgrammer.write(config)(importer)(property.key),
259
+ ),
260
+ ],
261
+ SdkTypeProgrammer.write(config)(importer)(property.value),
262
+ ),
263
+ writeComment(property.value.atomics)(
264
+ property.description,
265
+ property.jsDocTags,
266
+ ),
267
+ ),
268
+ ]);
269
+
270
+ const write_alias =
186
271
  (config: INestiaConfig) =>
187
272
  (importer: ImportDictionary) =>
188
273
  (meta: MetadataAlias | MetadataObject): ts.TypeNode => {
@@ -190,7 +275,10 @@ export namespace SdkTypeProgrammer {
190
275
  return ts.factory.createTypeReferenceNode(meta.name);
191
276
  };
192
277
 
193
- const decode_type_tag_matrix =
278
+ /* -----------------------------------------------------------
279
+ MISCELLANEOUS
280
+ ----------------------------------------------------------- */
281
+ const write_type_tag_matrix =
194
282
  (importer: ImportDictionary) =>
195
283
  (base: ts.TypeNode, matrix: IMetadataTypeTag[][]): ts.TypeNode => {
196
284
  matrix = matrix.filter((row) => row.length !== 0);
@@ -198,16 +286,16 @@ export namespace SdkTypeProgrammer {
198
286
  else if (matrix.length === 1)
199
287
  return ts.factory.createIntersectionTypeNode([
200
288
  base,
201
- ...matrix[0].map((tag) => decodeTag(importer)(tag)),
289
+ ...matrix[0].map((tag) => writeTag(importer)(tag)),
202
290
  ]);
203
291
  return ts.factory.createIntersectionTypeNode([
204
292
  base,
205
293
  ts.factory.createUnionTypeNode(
206
294
  matrix.map((row) =>
207
295
  row.length === 1
208
- ? decodeTag(importer)(row[0])
296
+ ? writeTag(importer)(row[0])
209
297
  : ts.factory.createIntersectionTypeNode(
210
- row.map((tag) => decodeTag(importer)(tag)),
298
+ row.map((tag) => writeTag(importer)(tag)),
211
299
  ),
212
300
  ),
213
301
  ),
@@ -215,8 +303,8 @@ export namespace SdkTypeProgrammer {
215
303
  };
216
304
  }
217
305
 
218
- const node = (text: string) => ts.factory.createTypeReferenceNode(text);
219
- const decodeTag = (importer: ImportDictionary) => (tag: IMetadataTypeTag) => {
306
+ const writeNode = (text: string) => ts.factory.createTypeReferenceNode(text);
307
+ const writeTag = (importer: ImportDictionary) => (tag: IMetadataTypeTag) => {
220
308
  const instance: string = tag.name.split("<")[0];
221
309
  return ts.factory.createTypeReferenceNode(
222
310
  importer.external({
@@ -244,6 +332,35 @@ const decodeTag = (importer: ImportDictionary) => (tag: IMetadataTypeTag) => {
244
332
  ],
245
333
  );
246
334
  };
335
+ const writeComment =
336
+ (atomics: MetadataAtomic[]) =>
337
+ (description: string | null, jsDocTags: IJsDocTagInfo[]): string => {
338
+ const lines: string[] = [];
339
+ if (description?.length)
340
+ lines.push(...description.split("\n").map((s) => `${s}`));
341
+
342
+ const filtered: IJsDocTagInfo[] =
343
+ !!atomics.length && !!jsDocTags?.length
344
+ ? jsDocTags.filter(
345
+ (tag) =>
346
+ !atomics.some((a) =>
347
+ a.tags.some((r) => r.some((t) => t.kind === tag.name)),
348
+ ),
349
+ )
350
+ : jsDocTags ?? [];
351
+
352
+ if (description?.length && filtered.length) lines.push("");
353
+ if (filtered.length)
354
+ lines.push(
355
+ ...filtered.map((t) =>
356
+ t.text?.length
357
+ ? `@${t.name} ${t.text.map((e) => e.text).join("")}`
358
+ : `@${t.name}`,
359
+ ),
360
+ );
361
+ return lines.join("\n");
362
+ };
363
+
247
364
  const importInternalFile =
248
365
  (config: INestiaConfig) => (importer: ImportDictionary) => (name: string) => {
249
366
  const top = name.split(".")[0];
@@ -1,6 +0,0 @@
1
- import ts from "typescript";
2
- export declare namespace FormatUtil {
3
- const description: <Node_1 extends ts.Node>(node: Node_1, comment: string) => Node_1;
4
- const enter: () => ts.ExpressionStatement;
5
- const beautify: (script: string) => Promise<string>;
6
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormatUtil.js","sourceRoot":"","sources":["../../src/utils/FormatUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uCAAkC;AAClC,4DAA4B;AAE5B,IAAiB,UAAU,CA2B1B;AA3BD,WAAiB,UAAU;IACZ,sBAAW,GAAG,CACzB,IAAU,EACV,OAAe,EACT,EAAE;QACR,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,oBAAE,CAAC,0BAA0B,CAC3B,IAAI,EACJ,oBAAE,CAAC,UAAU,CAAC,sBAAsB,EACpC,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EACtE,IAAI,CACL,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEW,gBAAK,GAAG,GAAG,EAAE,CACxB,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IAE7D,mBAAQ,GAAG,CAAO,MAAc,EAAmB,EAAE;QAChE,IAAI,CAAC;YACH,OAAO,MAAM,IAAA,iBAAM,EAAC,MAAM,EAAE;gBAC1B,MAAM,EAAE,YAAY;aACrB,CAAC,CAAC;QACL,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC,CAAA,CAAC;AACJ,CAAC,EA3BgB,UAAU,0BAAV,UAAU,QA2B1B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ImportDictionary.js","sourceRoot":"","sources":["../../src/utils/ImportDictionary.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- import { format } from "prettier";
2
- import ts from "typescript";
3
-
4
- export namespace FormatUtil {
5
- export const description = <Node extends ts.Node>(
6
- node: Node,
7
- comment: string,
8
- ): Node => {
9
- if (comment.length === 0) return node;
10
- ts.addSyntheticLeadingComment(
11
- node,
12
- ts.SyntaxKind.MultiLineCommentTrivia,
13
- ["*", ...comment.split("\n").map((str) => ` * ${str}`), ""].join("\n"),
14
- true,
15
- );
16
- return node;
17
- };
18
-
19
- export const enter = () =>
20
- ts.factory.createExpressionStatement(ts.factory.createIdentifier("\n"));
21
-
22
- export const beautify = async (script: string): Promise<string> => {
23
- try {
24
- return await format(script, {
25
- parser: "typescript",
26
- });
27
- } catch {
28
- return script;
29
- }
30
- };
31
- }