@nestia/sdk 2.5.0-dev.20240130-4 → 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 (46) hide show
  1. package/lib/generates/CloneGenerator.js +10 -10
  2. package/lib/generates/CloneGenerator.js.map +1 -1
  3. package/lib/generates/internal/E2eFileProgrammer.js +10 -10
  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.js +2 -2
  9. package/lib/generates/internal/ImportDictionary.js.map +1 -0
  10. package/lib/generates/internal/SdkAliasCollection.d.ts +1 -1
  11. package/lib/generates/internal/SdkFileProgrammer.js +15 -15
  12. package/lib/generates/internal/SdkFileProgrammer.js.map +1 -1
  13. package/lib/generates/internal/SdkFunctionProgrammer.d.ts +1 -1
  14. package/lib/generates/internal/SdkImportWizard.d.ts +1 -1
  15. package/lib/generates/internal/SdkInterfaceProgrammer.d.ts +1 -1
  16. package/lib/generates/internal/SdkInterfaceProgrammer.js +14 -13
  17. package/lib/generates/internal/SdkInterfaceProgrammer.js.map +1 -1
  18. package/lib/generates/internal/SdkNamespaceProgrammer.d.ts +1 -1
  19. package/lib/generates/internal/SdkNamespaceProgrammer.js +3 -3
  20. package/lib/generates/internal/SdkNamespaceProgrammer.js.map +1 -1
  21. package/lib/generates/internal/SdkRouteProgrammer.d.ts +1 -1
  22. package/lib/generates/internal/SdkRouteProgrammer.js +2 -2
  23. package/lib/generates/internal/SdkRouteProgrammer.js.map +1 -1
  24. package/lib/generates/internal/SdkSimulationProgrammer.d.ts +1 -1
  25. package/lib/generates/internal/SdkTypeProgrammer.d.ts +1 -1
  26. package/lib/generates/internal/SdkTypeProgrammer.js +62 -4
  27. package/lib/generates/internal/SdkTypeProgrammer.js.map +1 -1
  28. package/package.json +3 -3
  29. package/src/generates/CloneGenerator.ts +9 -19
  30. package/src/generates/internal/E2eFileProgrammer.ts +10 -23
  31. package/src/generates/internal/FilePrinter.ts +53 -0
  32. package/src/{utils → generates/internal}/ImportDictionary.ts +2 -2
  33. package/src/generates/internal/SdkAliasCollection.ts +1 -1
  34. package/src/generates/internal/SdkFileProgrammer.ts +16 -27
  35. package/src/generates/internal/SdkFunctionProgrammer.ts +1 -1
  36. package/src/generates/internal/SdkImportWizard.ts +1 -1
  37. package/src/generates/internal/SdkInterfaceProgrammer.ts +19 -18
  38. package/src/generates/internal/SdkNamespaceProgrammer.ts +4 -4
  39. package/src/generates/internal/SdkRouteProgrammer.ts +3 -3
  40. package/src/generates/internal/SdkSimulationProgrammer.ts +1 -1
  41. package/src/generates/internal/SdkTypeProgrammer.ts +125 -5
  42. package/lib/utils/FormatUtil.d.ts +0 -6
  43. package/lib/utils/FormatUtil.js.map +0 -1
  44. package/lib/utils/ImportDictionary.js.map +0 -1
  45. package/src/utils/FormatUtil.ts +0 -31
  46. /package/lib/{utils → generates/internal}/ImportDictionary.d.ts +0 -0
@@ -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,12 +9,18 @@ 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 {
21
+ /* -----------------------------------------------------------
22
+ FACADE
23
+ ----------------------------------------------------------- */
17
24
  export const write =
18
25
  (config: INestiaConfig) =>
19
26
  (importer: ImportDictionary) =>
@@ -22,8 +29,8 @@ 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
35
  union.push(write_escaped(config)(importer)(meta.escaped));
29
36
 
@@ -40,7 +47,9 @@ export namespace SdkTypeProgrammer {
40
47
  for (const array of meta.arrays)
41
48
  union.push(write_array(config)(importer)(array));
42
49
  for (const object of meta.objects)
43
- union.push(write_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));
44
53
  for (const alias of meta.aliases)
45
54
  union.push(write_alias(config)(importer)(alias));
46
55
 
@@ -68,6 +77,9 @@ export namespace SdkTypeProgrammer {
68
77
  return write(config)(importer)(meta.returns, true);
69
78
  };
70
79
 
80
+ /* -----------------------------------------------------------
81
+ ATOMICS
82
+ ----------------------------------------------------------- */
71
83
  const write_constant = (value: boolean | bigint | number | string) => {
72
84
  if (typeof value === "boolean")
73
85
  return ts.factory.createLiteralTypeNode(
@@ -150,6 +162,9 @@ export namespace SdkTypeProgrammer {
150
162
  meta.tags,
151
163
  );
152
164
 
165
+ /* -----------------------------------------------------------
166
+ INSTANCES
167
+ ----------------------------------------------------------- */
153
168
  const write_array =
154
169
  (config: INestiaConfig) =>
155
170
  (importer: ImportDictionary) =>
@@ -179,6 +194,79 @@ export namespace SdkTypeProgrammer {
179
194
  ),
180
195
  );
181
196
 
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
+
182
270
  const write_alias =
183
271
  (config: INestiaConfig) =>
184
272
  (importer: ImportDictionary) =>
@@ -187,6 +275,9 @@ export namespace SdkTypeProgrammer {
187
275
  return ts.factory.createTypeReferenceNode(meta.name);
188
276
  };
189
277
 
278
+ /* -----------------------------------------------------------
279
+ MISCELLANEOUS
280
+ ----------------------------------------------------------- */
190
281
  const write_type_tag_matrix =
191
282
  (importer: ImportDictionary) =>
192
283
  (base: ts.TypeNode, matrix: IMetadataTypeTag[][]): ts.TypeNode => {
@@ -212,7 +303,7 @@ export namespace SdkTypeProgrammer {
212
303
  };
213
304
  }
214
305
 
215
- const node = (text: string) => ts.factory.createTypeReferenceNode(text);
306
+ const writeNode = (text: string) => ts.factory.createTypeReferenceNode(text);
216
307
  const writeTag = (importer: ImportDictionary) => (tag: IMetadataTypeTag) => {
217
308
  const instance: string = tag.name.split("<")[0];
218
309
  return ts.factory.createTypeReferenceNode(
@@ -241,6 +332,35 @@ const writeTag = (importer: ImportDictionary) => (tag: IMetadataTypeTag) => {
241
332
  ],
242
333
  );
243
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
+
244
364
  const importInternalFile =
245
365
  (config: INestiaConfig) => (importer: ImportDictionary) => (name: string) => {
246
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
- }