typia 5.2.6 → 5.3.0-dev.20231112

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 (202) hide show
  1. package/lib/factories/ExpressionFactory.js +14 -16
  2. package/lib/factories/ExpressionFactory.js.map +1 -1
  3. package/lib/factories/JsonMetadataFactory.d.ts +1 -1
  4. package/lib/factories/JsonMetadataFactory.js +2 -2
  5. package/lib/factories/JsonMetadataFactory.js.map +1 -1
  6. package/lib/factories/LiteralFactory.js +2 -0
  7. package/lib/factories/LiteralFactory.js.map +1 -1
  8. package/lib/factories/MetadataCollection.d.ts +2 -2
  9. package/lib/factories/MetadataFactory.d.ts +1 -1
  10. package/lib/factories/MetadataFactory.js +236 -170
  11. package/lib/factories/MetadataFactory.js.map +1 -1
  12. package/lib/factories/NumericRangeFactory.d.ts +2 -2
  13. package/lib/factories/NumericRangeFactory.js +41 -21
  14. package/lib/factories/NumericRangeFactory.js.map +1 -1
  15. package/lib/factories/ProtobufFactory.d.ts +1 -1
  16. package/lib/factories/ProtobufFactory.js +2 -2
  17. package/lib/factories/ProtobufFactory.js.map +1 -1
  18. package/lib/factories/internal/metadata/MetadataHelper.js +3 -2
  19. package/lib/factories/internal/metadata/MetadataHelper.js.map +1 -1
  20. package/lib/factories/internal/metadata/iterate_metadata_constant.js +13 -8
  21. package/lib/factories/internal/metadata/iterate_metadata_constant.js.map +1 -1
  22. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +8 -5
  23. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  24. package/lib/functional/$from.d.ts +3 -0
  25. package/lib/functional/$from.js +9 -0
  26. package/lib/functional/$from.js.map +1 -0
  27. package/lib/functional/Namespace.js +7 -0
  28. package/lib/functional/Namespace.js.map +1 -1
  29. package/lib/module.d.ts +1 -0
  30. package/lib/module.js +2 -5
  31. package/lib/module.js.map +1 -1
  32. package/lib/programmers/CheckerProgrammer.js +11 -16
  33. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  34. package/lib/programmers/RandomProgrammer.js +1 -1
  35. package/lib/programmers/RandomProgrammer.js.map +1 -1
  36. package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
  37. package/lib/programmers/http/HttpHeadersProgrammer.js +1 -1
  38. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  39. package/lib/programmers/http/HttpParameterProgrammer.js +1 -1
  40. package/lib/programmers/http/HttpParameterProgrammer.js.map +1 -1
  41. package/lib/programmers/http/HttpQueryProgrammer.js +1 -1
  42. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  43. package/lib/programmers/internal/application_array.js +8 -0
  44. package/lib/programmers/internal/application_array.js.map +1 -1
  45. package/lib/programmers/internal/application_number.js +8 -1
  46. package/lib/programmers/internal/application_number.js.map +1 -1
  47. package/lib/programmers/internal/application_string.js +8 -1
  48. package/lib/programmers/internal/application_string.js.map +1 -1
  49. package/lib/programmers/internal/check_array_length.js +7 -4
  50. package/lib/programmers/internal/check_array_length.js.map +1 -1
  51. package/lib/programmers/internal/check_bigint.js +7 -4
  52. package/lib/programmers/internal/check_bigint.js.map +1 -1
  53. package/lib/programmers/internal/check_number.js +7 -4
  54. package/lib/programmers/internal/check_number.js.map +1 -1
  55. package/lib/programmers/internal/check_string.js +7 -4
  56. package/lib/programmers/internal/check_string.js.map +1 -1
  57. package/lib/programmers/internal/metadata_to_pattern.js +3 -1
  58. package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
  59. package/lib/programmers/json/JsonAssertParseProgrammer.js +1 -1
  60. package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
  61. package/lib/programmers/json/JsonIsParseProgrammer.js +1 -1
  62. package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
  63. package/lib/programmers/json/JsonStringifyProgrammer.js +3 -8
  64. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  65. package/lib/programmers/json/JsonValidateParseProgrammer.js +1 -1
  66. package/lib/programmers/json/JsonValidateParseProgrammer.js.map +1 -1
  67. package/lib/programmers/misc/MiscCloneProgrammer.js +19 -24
  68. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  69. package/lib/programmers/misc/MiscLiteralsProgrammer.js +1 -1
  70. package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
  71. package/lib/programmers/misc/MiscPruneProgrammer.js +11 -16
  72. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  73. package/lib/programmers/notations/NotationGeneralProgrammer.js +11 -16
  74. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  75. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +1 -1
  76. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  77. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +38 -42
  78. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  79. package/lib/programmers/protobuf/ProtobufMessageProgrammer.d.ts +1 -1
  80. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +22 -25
  81. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  82. package/lib/reflect.d.ts +3 -0
  83. package/lib/reflect.js +13 -0
  84. package/lib/reflect.js.map +1 -0
  85. package/lib/schemas/json/IJsonSchema.d.ts +1 -0
  86. package/lib/schemas/metadata/IMetadataApplication.d.ts +2 -2
  87. package/lib/schemas/metadata/{IMetadataCollection.d.ts → IMetadataComponents.d.ts} +1 -1
  88. package/lib/schemas/metadata/{IMetadataCollection.js → IMetadataComponents.js} +1 -1
  89. package/lib/schemas/metadata/IMetadataComponents.js.map +1 -0
  90. package/lib/schemas/metadata/IMetadataConstant.d.ts +1 -1
  91. package/lib/schemas/metadata/IMetadataTypeTag.d.ts +2 -2
  92. package/lib/schemas/metadata/Metadata.d.ts +2 -2
  93. package/lib/schemas/metadata/Metadata.js +82 -173
  94. package/lib/schemas/metadata/Metadata.js.map +1 -1
  95. package/lib/schemas/metadata/MetadataAlias.js +1 -1
  96. package/lib/schemas/metadata/MetadataAlias.js.map +1 -1
  97. package/lib/schemas/metadata/MetadataApplication.d.ts +13 -0
  98. package/lib/schemas/metadata/MetadataApplication.js +30 -0
  99. package/lib/schemas/metadata/MetadataApplication.js.map +1 -0
  100. package/lib/schemas/metadata/MetadataArrayType.js +1 -1
  101. package/lib/schemas/metadata/MetadataArrayType.js.map +1 -1
  102. package/lib/schemas/metadata/MetadataAtomic.d.ts +3 -0
  103. package/lib/schemas/metadata/MetadataAtomic.js +42 -0
  104. package/lib/schemas/metadata/MetadataAtomic.js.map +1 -1
  105. package/lib/schemas/metadata/MetadataComponents.d.ts +16 -0
  106. package/lib/schemas/metadata/MetadataComponents.js +151 -0
  107. package/lib/schemas/metadata/MetadataComponents.js.map +1 -0
  108. package/lib/schemas/metadata/MetadataConstant.d.ts +9 -1
  109. package/lib/schemas/metadata/MetadataConstant.js +29 -0
  110. package/lib/schemas/metadata/MetadataConstant.js.map +1 -1
  111. package/lib/schemas/metadata/MetadataEscaped.js +4 -4
  112. package/lib/schemas/metadata/MetadataEscaped.js.map +1 -1
  113. package/lib/schemas/metadata/MetadataObject.js +2 -2
  114. package/lib/schemas/metadata/MetadataObject.js.map +1 -1
  115. package/lib/schemas/metadata/MetadataProperty.js +4 -4
  116. package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
  117. package/lib/schemas/metadata/MetadataTupleType.js +1 -1
  118. package/lib/schemas/metadata/MetadataTupleType.js.map +1 -1
  119. package/lib/transformers/CallExpressionTransformer.js +5 -2
  120. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  121. package/lib/transformers/features/json/JsonApplicationTransformer.d.ts +1 -1
  122. package/lib/transformers/features/json/JsonApplicationTransformer.js +4 -5
  123. package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
  124. package/lib/transformers/features/reflect/ReflectMetadataTransformer.d.ts +5 -0
  125. package/lib/transformers/features/reflect/ReflectMetadataTransformer.js +58 -0
  126. package/lib/transformers/features/reflect/ReflectMetadataTransformer.js.map +1 -0
  127. package/package.json +2 -2
  128. package/src/Primitive.ts +135 -135
  129. package/src/executable/TypiaSetupWizard.ts +142 -142
  130. package/src/executable/setup/CommandExecutor.ts +8 -8
  131. package/src/factories/ExpressionFactory.ts +12 -13
  132. package/src/factories/JsonMetadataFactory.ts +53 -50
  133. package/src/factories/LiteralFactory.ts +2 -0
  134. package/src/factories/MetadataCollection.ts +282 -282
  135. package/src/factories/MetadataFactory.ts +55 -22
  136. package/src/factories/NumericRangeFactory.ts +56 -17
  137. package/src/factories/ProtobufFactory.ts +5 -2
  138. package/src/factories/internal/metadata/MetadataHelper.ts +7 -4
  139. package/src/factories/internal/metadata/emplace_metadata_object.ts +178 -178
  140. package/src/factories/internal/metadata/iterate_metadata_constant.ts +10 -8
  141. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +9 -8
  142. package/src/functional/$from.ts +5 -0
  143. package/src/functional/$stoll.ts +8 -8
  144. package/src/functional/Namespace.ts +175 -168
  145. package/src/module.ts +1 -19
  146. package/src/programmers/AssertProgrammer.ts +322 -322
  147. package/src/programmers/CheckerProgrammer.ts +16 -17
  148. package/src/programmers/IsProgrammer.ts +258 -258
  149. package/src/programmers/RandomProgrammer.ts +4 -1
  150. package/src/programmers/ValidateProgrammer.ts +350 -350
  151. package/src/programmers/helpers/AtomicPredicator.ts +31 -31
  152. package/src/programmers/helpers/ProtobufUtil.ts +3 -2
  153. package/src/programmers/http/HttpHeadersProgrammer.ts +4 -1
  154. package/src/programmers/http/HttpParameterProgrammer.ts +4 -1
  155. package/src/programmers/http/HttpQueryProgrammer.ts +4 -1
  156. package/src/programmers/internal/application_array.ts +8 -0
  157. package/src/programmers/internal/application_number.ts +8 -1
  158. package/src/programmers/internal/application_string.ts +8 -1
  159. package/src/programmers/internal/check_array_length.ts +5 -2
  160. package/src/programmers/internal/check_bigint.ts +5 -2
  161. package/src/programmers/internal/check_dynamic_key.ts +178 -178
  162. package/src/programmers/internal/check_dynamic_properties.ts +202 -202
  163. package/src/programmers/internal/check_number.ts +5 -2
  164. package/src/programmers/internal/check_object.ts +62 -62
  165. package/src/programmers/internal/check_string.ts +5 -3
  166. package/src/programmers/internal/metadata_to_pattern.ts +3 -1
  167. package/src/programmers/json/JsonAssertParseProgrammer.ts +1 -0
  168. package/src/programmers/json/JsonIsParseProgrammer.ts +1 -0
  169. package/src/programmers/json/JsonStringifyProgrammer.ts +959 -960
  170. package/src/programmers/json/JsonValidateParseProgrammer.ts +1 -0
  171. package/src/programmers/misc/MiscCloneProgrammer.ts +787 -786
  172. package/src/programmers/misc/MiscLiteralsProgrammer.ts +4 -1
  173. package/src/programmers/misc/MiscPruneProgrammer.ts +549 -548
  174. package/src/programmers/notations/NotationGeneralProgrammer.ts +717 -716
  175. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +1 -0
  176. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +872 -882
  177. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +21 -21
  178. package/src/reflect.ts +24 -0
  179. package/src/schemas/json/IJsonSchema.ts +1 -0
  180. package/src/schemas/metadata/IMetadataApplication.ts +2 -2
  181. package/src/schemas/metadata/{IMetadataCollection.ts → IMetadataComponents.ts} +1 -1
  182. package/src/schemas/metadata/IMetadataConstant.ts +1 -1
  183. package/src/schemas/metadata/IMetadataTypeTag.ts +9 -2
  184. package/src/schemas/metadata/Metadata.ts +18 -91
  185. package/src/schemas/metadata/MetadataAlias.ts +1 -1
  186. package/src/schemas/metadata/MetadataApplication.ts +44 -0
  187. package/src/schemas/metadata/MetadataArrayType.ts +1 -1
  188. package/src/schemas/metadata/MetadataAtomic.ts +44 -0
  189. package/src/schemas/metadata/MetadataComponents.ts +98 -0
  190. package/src/schemas/metadata/MetadataConstant.ts +44 -1
  191. package/src/schemas/metadata/MetadataEscaped.ts +4 -4
  192. package/src/schemas/metadata/MetadataObject.ts +2 -2
  193. package/src/schemas/metadata/MetadataProperty.ts +4 -7
  194. package/src/schemas/metadata/MetadataTupleType.ts +1 -1
  195. package/src/transform.ts +35 -35
  196. package/src/transformers/CallExpressionTransformer.ts +5 -2
  197. package/src/transformers/features/json/JsonApplicationTransformer.ts +7 -4
  198. package/src/transformers/features/{misc/MetadataTransformer.ts → reflect/ReflectMetadataTransformer.ts} +25 -8
  199. package/lib/schemas/metadata/IMetadataCollection.js.map +0 -1
  200. package/lib/transformers/features/misc/MetadataTransformer.d.ts +0 -5
  201. package/lib/transformers/features/misc/MetadataTransformer.js +0 -55
  202. package/lib/transformers/features/misc/MetadataTransformer.js.map +0 -1
package/src/transform.ts CHANGED
@@ -1,35 +1,35 @@
1
- import ts from "typescript";
2
-
3
- import { FileTransformer } from "./transformers/FileTransformer";
4
- import { IProject } from "./transformers/IProject";
5
- import { ITransformOptions } from "./transformers/ITransformOptions";
6
-
7
- export const transform = (
8
- program: ts.Program,
9
- options: ITransformOptions | undefined,
10
- extras: IProject["extras"],
11
- ): ts.TransformerFactory<ts.SourceFile> => {
12
- const compilerOptions: ts.CompilerOptions = program.getCompilerOptions();
13
- const strict: boolean =
14
- compilerOptions.strictNullChecks !== undefined
15
- ? !!compilerOptions.strictNullChecks
16
- : !!compilerOptions.strict;
17
- if (strict === false)
18
- extras.addDiagnostic({
19
- category: ts.DiagnosticCategory.Error,
20
- code: "(typia)" as any,
21
- file: undefined,
22
- start: undefined,
23
- length: undefined,
24
- messageText: "strict mode is required.",
25
- });
26
- return FileTransformer.transform({
27
- program,
28
- compilerOptions,
29
- checker: program.getTypeChecker(),
30
- printer: ts.createPrinter(),
31
- options: options ?? {},
32
- extras,
33
- });
34
- };
35
- export default transform;
1
+ import ts from "typescript";
2
+
3
+ import { FileTransformer } from "./transformers/FileTransformer";
4
+ import { IProject } from "./transformers/IProject";
5
+ import { ITransformOptions } from "./transformers/ITransformOptions";
6
+
7
+ export const transform = (
8
+ program: ts.Program,
9
+ options: ITransformOptions | undefined,
10
+ extras: IProject["extras"],
11
+ ): ts.TransformerFactory<ts.SourceFile> => {
12
+ const compilerOptions: ts.CompilerOptions = program.getCompilerOptions();
13
+ const strict: boolean =
14
+ compilerOptions.strictNullChecks !== undefined
15
+ ? !!compilerOptions.strictNullChecks
16
+ : !!compilerOptions.strict;
17
+ if (strict === false)
18
+ extras.addDiagnostic({
19
+ category: ts.DiagnosticCategory.Error,
20
+ code: "(typia)" as any,
21
+ file: undefined,
22
+ start: undefined,
23
+ length: undefined,
24
+ messageText: "strict mode is required.",
25
+ });
26
+ return FileTransformer.transform({
27
+ program,
28
+ compilerOptions,
29
+ checker: program.getTypeChecker(),
30
+ printer: ts.createPrinter(),
31
+ options: options ?? {},
32
+ extras,
33
+ });
34
+ };
35
+ export default transform;
@@ -45,7 +45,6 @@ import { JsonIsStringifyTransformer } from "./features/json/JsonIsStringifyTrans
45
45
  import { JsonStringifyTransformer } from "./features/json/JsonStringifyTransformer";
46
46
  import { JsonValidateParseTransformer } from "./features/json/JsonValidateParseTransformer";
47
47
  import { JsonValidateStringifyTransformer } from "./features/json/JsonValidateStringifyTransformer";
48
- import { MetadataTransformer } from "./features/misc/MetadataTransformer";
49
48
  import { MiscAssertCloneTransformer } from "./features/misc/MiscAssertCloneTransformer";
50
49
  import { MiscAssertPruneTransformer } from "./features/misc/MiscAssertPruneTransformer";
51
50
  import { MiscCloneTransformer } from "./features/misc/MiscCloneTransformer";
@@ -88,6 +87,7 @@ import { ProtobufIsEncodeTransformer } from "./features/protobuf/ProtobufIsEncod
88
87
  import { ProtobufMessageTransformer } from "./features/protobuf/ProtobufMessageTransformer";
89
88
  import { ProtobufValidateDecodeTransformer } from "./features/protobuf/ProtobufValidateDecodeTransformer";
90
89
  import { ProtobufValidateEncodeTransformer } from "./features/protobuf/ProtobufValidateEncodeTransformer";
90
+ import { ReflectMetadataTransformer } from "./features/reflect/ReflectMetadataTransformer";
91
91
 
92
92
  export namespace CallExpressionTransformer {
93
93
  export const transform =
@@ -174,7 +174,7 @@ const FUNCTORS: Record<string, Record<string, () => Task>> = {
174
174
 
175
175
  // RANDOM + INTERNAL
176
176
  random: () => RandomTransformer.transform,
177
- metadata: () => (P) => () => MetadataTransformer.transform(P),
177
+ metadata: () => ReflectMetadataTransformer.transform,
178
178
 
179
179
  // FACTORIES
180
180
  createAssert: () => CreateAssertTransformer.transform(false),
@@ -270,6 +270,9 @@ const FUNCTORS: Record<string, Record<string, () => Task>> = {
270
270
  createValidateDecode: () =>
271
271
  ProtobufCreateValidateDecodeTransformer.transform,
272
272
  },
273
+ reflect: {
274
+ metadata: () => ReflectMetadataTransformer.transform,
275
+ },
273
276
  misc: {
274
277
  literals: () => (project) => () =>
275
278
  MiscLiteralsTransformer.transform(project),
@@ -17,7 +17,7 @@ import { TransformerError } from "../../TransformerError";
17
17
 
18
18
  export namespace JsonApplicationTransformer {
19
19
  export const transform =
20
- ({ checker }: IProject) =>
20
+ (project: IProject) =>
21
21
  (expression: ts.CallExpression): ts.Expression => {
22
22
  if (!expression.typeArguments?.length)
23
23
  throw new TransformerError({
@@ -36,7 +36,7 @@ export namespace JsonApplicationTransformer {
36
36
 
37
37
  // GET TYPES
38
38
  const types: ts.Type[] = top.elements.map((child) =>
39
- checker.getTypeFromTypeNode(child as ts.TypeNode),
39
+ project.checker.getTypeFromTypeNode(child as ts.TypeNode),
40
40
  );
41
41
  if (types.some((t) => t.isTypeParameter()))
42
42
  throw new TransformerError({
@@ -46,7 +46,7 @@ export namespace JsonApplicationTransformer {
46
46
 
47
47
  // ADDITIONAL PARAMETERS
48
48
  const purpose: "swagger" | "ajv" = get_parameter(
49
- checker,
49
+ project.checker,
50
50
  "Purpose",
51
51
  expression.typeArguments[1],
52
52
  (str) => str === "swagger" || str === "ajv",
@@ -62,7 +62,10 @@ export namespace JsonApplicationTransformer {
62
62
  });
63
63
  const results: ValidationPipe<Metadata, MetadataFactory.IError>[] =
64
64
  types.map((type) =>
65
- MetadataFactory.analyze(checker)({
65
+ MetadataFactory.analyze(
66
+ project.checker,
67
+ project.context,
68
+ )({
66
69
  escape: true,
67
70
  constant: true,
68
71
  absorb: false,
@@ -1,8 +1,10 @@
1
1
  import ts from "typescript";
2
2
 
3
+ import { IdentifierFactory } from "../../../factories/IdentifierFactory";
3
4
  import { LiteralFactory } from "../../../factories/LiteralFactory";
4
5
  import { MetadataCollection } from "../../../factories/MetadataCollection";
5
6
  import { MetadataFactory } from "../../../factories/MetadataFactory";
7
+ import { TypeFactory } from "../../../factories/TypeFactory";
6
8
 
7
9
  import { IMetadataApplication } from "../../../schemas/metadata/IMetadataApplication";
8
10
  import { Metadata } from "../../../schemas/metadata/Metadata";
@@ -10,9 +12,10 @@ import { Metadata } from "../../../schemas/metadata/Metadata";
10
12
  import { IProject } from "../../IProject";
11
13
  import { TransformerError } from "../../TransformerError";
12
14
 
13
- export namespace MetadataTransformer {
15
+ export namespace ReflectMetadataTransformer {
14
16
  export const transform =
15
- ({ checker }: IProject) =>
17
+ (project: IProject) =>
18
+ (modulo: ts.LeftHandSideExpression) =>
16
19
  (expression: ts.CallExpression): ts.Expression => {
17
20
  if (!expression.typeArguments?.length)
18
21
  throw new TransformerError({
@@ -28,24 +31,27 @@ export namespace MetadataTransformer {
28
31
 
29
32
  // GET TYPES
30
33
  const types: ts.Type[] = top.elements.map((child) =>
31
- checker.getTypeFromTypeNode(child as ts.TypeNode),
34
+ project.checker.getTypeFromTypeNode(child as ts.TypeNode),
32
35
  );
33
36
  if (types.some((t) => t.isTypeParameter()))
34
37
  throw new TransformerError({
35
- code: "typia.metadata",
38
+ code: "typia.reflect.metadata",
36
39
  message: "non-specified generic argument(s).",
37
40
  });
38
41
 
39
42
  // METADATA
40
43
  const collection: MetadataCollection = new MetadataCollection();
41
44
  const metadatas: Array<Metadata> = types.map((type) => {
42
- const result = MetadataFactory.analyze(checker)({
45
+ const result = MetadataFactory.analyze(
46
+ project.checker,
47
+ project.context,
48
+ )({
43
49
  escape: true,
44
50
  constant: true,
45
51
  absorb: true,
46
52
  })(collection)(type);
47
53
  if (result.success === false)
48
- throw TransformerError.from("typia.metadata")(
54
+ throw TransformerError.from("typia.reflect.metadata")(
49
55
  result.errors,
50
56
  );
51
57
  return result.data;
@@ -54,8 +60,19 @@ export namespace MetadataTransformer {
54
60
  // CONVERT TO PRIMITIVE TYPE
55
61
  const app: IMetadataApplication = {
56
62
  metadatas: metadatas.map((metadata) => metadata.toJSON()),
57
- collection: collection.toJSON(),
63
+ components: collection.toJSON(),
58
64
  };
59
- return LiteralFactory.generate(app);
65
+ return ts.factory.createCallExpression(
66
+ IdentifierFactory.access(
67
+ ts.factory.createParenthesizedExpression(
68
+ ts.factory.createAsExpression(
69
+ modulo,
70
+ TypeFactory.keyword("any"),
71
+ ),
72
+ ),
73
+ )("from"),
74
+ undefined,
75
+ [LiteralFactory.generate(app)],
76
+ );
60
77
  };
61
78
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"IMetadataCollection.js","sourceRoot":"","sources":["../../../src/schemas/metadata/IMetadataCollection.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- import ts from "typescript";
2
- import { IProject } from "../../IProject";
3
- export declare namespace MetadataTransformer {
4
- const transform: ({ checker }: IProject) => (expression: ts.CallExpression) => ts.Expression;
5
- }
@@ -1,55 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MetadataTransformer = void 0;
7
- var typescript_1 = __importDefault(require("typescript"));
8
- var LiteralFactory_1 = require("../../../factories/LiteralFactory");
9
- var MetadataCollection_1 = require("../../../factories/MetadataCollection");
10
- var MetadataFactory_1 = require("../../../factories/MetadataFactory");
11
- var TransformerError_1 = require("../../TransformerError");
12
- var MetadataTransformer;
13
- (function (MetadataTransformer) {
14
- MetadataTransformer.transform = function (_a) {
15
- var checker = _a.checker;
16
- return function (expression) {
17
- var _a;
18
- if (!((_a = expression.typeArguments) === null || _a === void 0 ? void 0 : _a.length))
19
- throw new TransformerError_1.TransformerError({
20
- code: "typia.metadata",
21
- message: "no generic argument.",
22
- });
23
- var top = expression.typeArguments[0];
24
- if (!typescript_1.default.isTupleTypeNode(top))
25
- return expression;
26
- else if (top.elements.some(function (child) { return !typescript_1.default.isTypeNode(child); }))
27
- return expression;
28
- var types = top.elements.map(function (child) {
29
- return checker.getTypeFromTypeNode(child);
30
- });
31
- if (types.some(function (t) { return t.isTypeParameter(); }))
32
- throw new TransformerError_1.TransformerError({
33
- code: "typia.metadata",
34
- message: "non-specified generic argument(s).",
35
- });
36
- var collection = new MetadataCollection_1.MetadataCollection();
37
- var metadatas = types.map(function (type) {
38
- var result = MetadataFactory_1.MetadataFactory.analyze(checker)({
39
- escape: true,
40
- constant: true,
41
- absorb: true,
42
- })(collection)(type);
43
- if (result.success === false)
44
- throw TransformerError_1.TransformerError.from("typia.metadata")(result.errors);
45
- return result.data;
46
- });
47
- var app = {
48
- metadatas: metadatas.map(function (metadata) { return metadata.toJSON(); }),
49
- collection: collection.toJSON(),
50
- };
51
- return LiteralFactory_1.LiteralFactory.generate(app);
52
- };
53
- };
54
- })(MetadataTransformer || (exports.MetadataTransformer = MetadataTransformer = {}));
55
- //# sourceMappingURL=MetadataTransformer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MetadataTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/misc/MetadataTransformer.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,oEAAmE;AACnE,4EAA2E;AAC3E,sEAAqE;AAMrE,2DAA0D;AAE1D,IAAiB,mBAAmB,CAgDnC;AAhDD,WAAiB,mBAAmB;IACnB,6BAAS,GAClB,UAAC,EAAqB;YAAnB,OAAO,aAAA;QACV,OAAA,UAAC,UAA6B;;YAC1B,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAE,MAAM,CAAA;gBACjC,MAAM,IAAI,mCAAgB,CAAC;oBACvB,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,sBAAsB;iBAClC,CAAC,CAAC;YAGP,IAAM,GAAG,GAAY,UAAU,CAAC,aAAa,CAAC,CAAC,CAAE,CAAC;YAClD,IAAI,CAAC,oBAAE,CAAC,eAAe,CAAC,GAAG,CAAC;gBAAE,OAAO,UAAU,CAAC;iBAC3C,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,CAAC,oBAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC;gBACxD,OAAO,UAAU,CAAC;YAGtB,IAAM,KAAK,GAAc,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,KAAK;gBAC5C,OAAA,OAAO,CAAC,mBAAmB,CAAC,KAAoB,CAAC;YAAjD,CAAiD,CACpD,CAAC;YACF,IAAI,KAAK,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,eAAe,EAAE,EAAnB,CAAmB,CAAC;gBACtC,MAAM,IAAI,mCAAgB,CAAC;oBACvB,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,oCAAoC;iBAChD,CAAC,CAAC;YAGP,IAAM,UAAU,GAAuB,IAAI,uCAAkB,EAAE,CAAC;YAChE,IAAM,SAAS,GAAoB,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI;gBAC9C,IAAM,MAAM,GAAG,iCAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC5C,MAAM,EAAE,IAAI;oBACZ,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,IAAI;iBACf,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrB,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;oBACxB,MAAM,mCAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CACzC,MAAM,CAAC,MAAM,CAChB,CAAC;gBACN,OAAO,MAAM,CAAC,IAAI,CAAC;YACvB,CAAC,CAAC,CAAC;YAGH,IAAM,GAAG,GAAyB;gBAC9B,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,UAAC,QAAQ,IAAK,OAAA,QAAQ,CAAC,MAAM,EAAE,EAAjB,CAAiB,CAAC;gBACzD,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE;aAClC,CAAC;YACF,OAAO,+BAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;IA5CD,CA4CC,CAAC;AACV,CAAC,EAhDgB,mBAAmB,mCAAnB,mBAAmB,QAgDnC"}