typia 3.4.14 → 3.4.16

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 (167) hide show
  1. package/README.md +5 -2
  2. package/lib/executable/internal/TypiaSetupWizard.d.ts +6 -2
  3. package/lib/executable/internal/TypiaSetupWizard.js +26 -25
  4. package/lib/executable/internal/TypiaSetupWizard.js.map +1 -1
  5. package/lib/executable/typia.js +11 -10
  6. package/lib/executable/typia.js.map +1 -1
  7. package/lib/factories/MetadataFactory.d.ts +1 -0
  8. package/lib/factories/MetadataFactory.js +1 -1
  9. package/lib/factories/MetadataFactory.js.map +1 -1
  10. package/lib/factories/MetadataTagFactory.js +4 -1
  11. package/lib/factories/MetadataTagFactory.js.map +1 -1
  12. package/lib/factories/internal/{MetadataHelper.d.ts → metadata/MetadataHelper.d.ts} +1 -1
  13. package/lib/factories/internal/{MetadataHelper.js → metadata/MetadataHelper.js} +1 -1
  14. package/lib/factories/internal/metadata/MetadataHelper.js.map +1 -0
  15. package/lib/factories/internal/{emplace_metadata_object.d.ts → metadata/emplace_metadata_object.d.ts} +3 -3
  16. package/lib/factories/internal/{emplace_metadata_object.js → metadata/emplace_metadata_object.js} +5 -5
  17. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -0
  18. package/lib/factories/internal/{explore_metadata.d.ts → metadata/explore_metadata.d.ts} +3 -3
  19. package/lib/factories/internal/{explore_metadata.js → metadata/explore_metadata.js} +5 -3
  20. package/lib/factories/internal/metadata/explore_metadata.js.map +1 -0
  21. package/lib/factories/internal/{iterate_metadata.d.ts → metadata/iterate_metadata.d.ts} +3 -3
  22. package/lib/factories/internal/{iterate_metadata.js → metadata/iterate_metadata.js} +1 -1
  23. package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -0
  24. package/lib/factories/internal/{iterate_metadata_array.d.ts → metadata/iterate_metadata_array.d.ts} +3 -3
  25. package/lib/factories/internal/{iterate_metadata_array.js → metadata/iterate_metadata_array.js} +1 -1
  26. package/lib/factories/internal/metadata/iterate_metadata_array.js.map +1 -0
  27. package/lib/factories/internal/{iterate_metadata_atomic.d.ts → metadata/iterate_metadata_atomic.d.ts} +1 -1
  28. package/lib/factories/internal/{iterate_metadata_atomic.js → metadata/iterate_metadata_atomic.js} +1 -1
  29. package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -0
  30. package/lib/factories/internal/{iterate_metadata_coalesce.d.ts → metadata/iterate_metadata_coalesce.d.ts} +1 -1
  31. package/lib/factories/internal/{iterate_metadata_coalesce.js → metadata/iterate_metadata_coalesce.js} +2 -2
  32. package/lib/factories/internal/metadata/iterate_metadata_coalesce.js.map +1 -0
  33. package/lib/factories/internal/{iterate_metadata_constant.d.ts → metadata/iterate_metadata_constant.d.ts} +2 -2
  34. package/lib/factories/internal/{iterate_metadata_constant.js → metadata/iterate_metadata_constant.js} +1 -1
  35. package/lib/factories/internal/metadata/iterate_metadata_constant.js.map +1 -0
  36. package/lib/factories/internal/{iterate_metadata_map.d.ts → metadata/iterate_metadata_map.d.ts} +3 -3
  37. package/lib/factories/internal/{iterate_metadata_map.js → metadata/iterate_metadata_map.js} +2 -2
  38. package/lib/factories/internal/metadata/iterate_metadata_map.js.map +1 -0
  39. package/lib/factories/internal/{iterate_metadata_native.d.ts → metadata/iterate_metadata_native.d.ts} +1 -1
  40. package/lib/factories/internal/{iterate_metadata_native.js → metadata/iterate_metadata_native.js} +2 -2
  41. package/lib/factories/internal/metadata/iterate_metadata_native.js.map +1 -0
  42. package/lib/factories/internal/{iterate_metadata_object.d.ts → metadata/iterate_metadata_object.d.ts} +3 -3
  43. package/lib/factories/internal/{iterate_metadata_object.js → metadata/iterate_metadata_object.js} +3 -3
  44. package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -0
  45. package/lib/factories/internal/{iterate_metadata_resolve.d.ts → metadata/iterate_metadata_resolve.d.ts} +3 -3
  46. package/lib/factories/internal/{iterate_metadata_resolve.js → metadata/iterate_metadata_resolve.js} +2 -2
  47. package/lib/factories/internal/metadata/iterate_metadata_resolve.js.map +1 -0
  48. package/lib/factories/internal/{iterate_metadata_set.d.ts → metadata/iterate_metadata_set.d.ts} +3 -3
  49. package/lib/factories/internal/{iterate_metadata_set.js → metadata/iterate_metadata_set.js} +2 -2
  50. package/lib/factories/internal/metadata/iterate_metadata_set.js.map +1 -0
  51. package/lib/factories/internal/{iterate_metadata_template.d.ts → metadata/iterate_metadata_template.d.ts} +3 -3
  52. package/lib/factories/internal/{iterate_metadata_template.js → metadata/iterate_metadata_template.js} +0 -0
  53. package/lib/factories/internal/metadata/iterate_metadata_template.js.map +1 -0
  54. package/lib/factories/internal/{iterate_metadata_tuple.d.ts → metadata/iterate_metadata_tuple.d.ts} +3 -3
  55. package/lib/factories/internal/{iterate_metadata_tuple.js → metadata/iterate_metadata_tuple.js} +3 -3
  56. package/lib/factories/internal/metadata/iterate_metadata_tuple.js.map +1 -0
  57. package/lib/factories/internal/{iterate_metadata_union.d.ts → metadata/iterate_metadata_union.d.ts} +3 -3
  58. package/lib/factories/internal/{iterate_metadata_union.js → metadata/iterate_metadata_union.js} +3 -3
  59. package/lib/factories/internal/metadata/iterate_metadata_union.js.map +1 -0
  60. package/lib/functional/$number.js +2 -9
  61. package/lib/functional/$number.js.map +1 -1
  62. package/lib/programmers/AssertParseProgrammer.js +12 -1
  63. package/lib/programmers/AssertParseProgrammer.js.map +1 -1
  64. package/lib/programmers/AssertProgrammer.js +2 -1
  65. package/lib/programmers/AssertProgrammer.js.map +1 -1
  66. package/lib/programmers/AssertStringifyProgrammer.js +13 -2
  67. package/lib/programmers/AssertStringifyProgrammer.js.map +1 -1
  68. package/lib/programmers/CheckerProgrammer.js +6 -0
  69. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  70. package/lib/programmers/IsParseProgrammer.js +12 -1
  71. package/lib/programmers/IsParseProgrammer.js.map +1 -1
  72. package/lib/programmers/IsProgrammer.js +5 -2
  73. package/lib/programmers/IsProgrammer.js.map +1 -1
  74. package/lib/programmers/IsStringifyProgrammer.js +13 -2
  75. package/lib/programmers/IsStringifyProgrammer.js.map +1 -1
  76. package/lib/programmers/StringifyProgrammer.js +5 -0
  77. package/lib/programmers/StringifyProgrammer.js.map +1 -1
  78. package/lib/programmers/ValidateParseProgrammer.js +12 -1
  79. package/lib/programmers/ValidateParseProgrammer.js.map +1 -1
  80. package/lib/programmers/ValidateProgrammer.js +2 -1
  81. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  82. package/lib/programmers/ValidateStringifyProgrammer.js +13 -2
  83. package/lib/programmers/ValidateStringifyProgrammer.js.map +1 -1
  84. package/lib/programmers/helpers/OptionPredicator.d.ts +2 -1
  85. package/lib/programmers/helpers/OptionPredicator.js +7 -3
  86. package/lib/programmers/helpers/OptionPredicator.js.map +1 -1
  87. package/lib/programmers/internal/application_schema.js +7 -3
  88. package/lib/programmers/internal/application_schema.js.map +1 -1
  89. package/lib/programmers/internal/check_bigint.d.ts +3 -0
  90. package/lib/programmers/internal/check_bigint.js +97 -0
  91. package/lib/programmers/internal/check_bigint.js.map +1 -0
  92. package/lib/programmers/internal/check_number.js +21 -22
  93. package/lib/programmers/internal/check_number.js.map +1 -1
  94. package/lib/schemas/IJsonSchema.d.ts +3 -5
  95. package/lib/transformers/ITransformOptions.d.ts +42 -1
  96. package/lib/transformers/features/miscellaneous/ApplicationTransformer.js +4 -0
  97. package/lib/transformers/features/miscellaneous/ApplicationTransformer.js.map +1 -1
  98. package/lib/transformers/features/stringifiers/StringifyTransformer.js +12 -1
  99. package/lib/transformers/features/stringifiers/StringifyTransformer.js.map +1 -1
  100. package/package.json +3 -2
  101. package/src/executable/internal/TypiaSetupWizard.ts +182 -175
  102. package/src/executable/typia.ts +6 -4
  103. package/src/factories/MetadataCollection.ts +122 -122
  104. package/src/factories/MetadataFactory.ts +47 -46
  105. package/src/factories/MetadataTagFactory.ts +351 -347
  106. package/src/factories/internal/{MetadataHelper.ts → metadata/MetadataHelper.ts} +12 -12
  107. package/src/factories/internal/{emplace_metadata_object.ts → metadata/emplace_metadata_object.ts} +140 -140
  108. package/src/factories/internal/{explore_metadata.ts → metadata/explore_metadata.ts} +92 -91
  109. package/src/factories/internal/{iterate_metadata.ts → metadata/iterate_metadata.ts} +80 -80
  110. package/src/factories/internal/{iterate_metadata_array.ts → metadata/iterate_metadata_array.ts} +29 -29
  111. package/src/factories/internal/{iterate_metadata_atomic.ts → metadata/iterate_metadata_atomic.ts} +59 -59
  112. package/src/factories/internal/{iterate_metadata_coalesce.ts → metadata/iterate_metadata_coalesce.ts} +33 -33
  113. package/src/factories/internal/{iterate_metadata_constant.ts → metadata/iterate_metadata_constant.ts} +58 -58
  114. package/src/factories/internal/{iterate_metadata_map.ts → metadata/iterate_metadata_map.ts} +41 -41
  115. package/src/factories/internal/{iterate_metadata_native.ts → metadata/iterate_metadata_native.ts} +227 -227
  116. package/src/factories/internal/{iterate_metadata_object.ts → metadata/iterate_metadata_object.ts} +48 -48
  117. package/src/factories/internal/{iterate_metadata_resolve.ts → metadata/iterate_metadata_resolve.ts} +27 -27
  118. package/src/factories/internal/{iterate_metadata_set.ts → metadata/iterate_metadata_set.ts} +33 -33
  119. package/src/factories/internal/{iterate_metadata_template.ts → metadata/iterate_metadata_template.ts} +38 -38
  120. package/src/factories/internal/{iterate_metadata_tuple.ts → metadata/iterate_metadata_tuple.ts} +45 -45
  121. package/src/factories/internal/{iterate_metadata_union.ts → metadata/iterate_metadata_union.ts} +59 -59
  122. package/src/functional/$number.ts +12 -19
  123. package/src/metadata/IMetadataTag.ts +122 -122
  124. package/src/metadata/Metadata.ts +477 -477
  125. package/src/module.ts +1535 -1535
  126. package/src/programmers/AssertParseProgrammer.ts +55 -45
  127. package/src/programmers/AssertProgrammer.ts +445 -444
  128. package/src/programmers/AssertStringifyProgrammer.ts +65 -45
  129. package/src/programmers/CheckerProgrammer.ts +810 -804
  130. package/src/programmers/IsParseProgrammer.ts +61 -51
  131. package/src/programmers/IsProgrammer.ts +175 -172
  132. package/src/programmers/IsStringifyProgrammer.ts +69 -49
  133. package/src/programmers/StringifyProgrammer.ts +762 -756
  134. package/src/programmers/ValidateParseProgrammer.ts +59 -49
  135. package/src/programmers/ValidateProgrammer.ts +237 -236
  136. package/src/programmers/ValidateStringifyProgrammer.ts +80 -60
  137. package/src/programmers/helpers/OptionPredicator.ts +15 -11
  138. package/src/programmers/internal/application_default.ts +17 -17
  139. package/src/programmers/internal/application_object.ts +103 -103
  140. package/src/programmers/internal/application_schema.ts +228 -221
  141. package/src/programmers/internal/check_bigint.ts +85 -0
  142. package/src/programmers/internal/check_number.ts +175 -178
  143. package/src/schemas/IJsonSchema.ts +90 -92
  144. package/src/transformers/CallExpressionTransformer.ts +124 -124
  145. package/src/transformers/ITransformOptions.ts +47 -4
  146. package/src/transformers/features/miscellaneous/ApplicationTransformer.ts +119 -114
  147. package/src/transformers/features/stringifiers/StringifyTransformer.ts +46 -36
  148. package/lib/factories/internal/MetadataHelper.js.map +0 -1
  149. package/lib/factories/internal/emplace_metadata_object.js.map +0 -1
  150. package/lib/factories/internal/explore_metadata.js.map +0 -1
  151. package/lib/factories/internal/iterate_metadata.js.map +0 -1
  152. package/lib/factories/internal/iterate_metadata_array.js.map +0 -1
  153. package/lib/factories/internal/iterate_metadata_atomic.js.map +0 -1
  154. package/lib/factories/internal/iterate_metadata_coalesce.js.map +0 -1
  155. package/lib/factories/internal/iterate_metadata_constant.js.map +0 -1
  156. package/lib/factories/internal/iterate_metadata_map.js.map +0 -1
  157. package/lib/factories/internal/iterate_metadata_native.js.map +0 -1
  158. package/lib/factories/internal/iterate_metadata_object.js.map +0 -1
  159. package/lib/factories/internal/iterate_metadata_resolve.js.map +0 -1
  160. package/lib/factories/internal/iterate_metadata_set.js.map +0 -1
  161. package/lib/factories/internal/iterate_metadata_template.js.map +0 -1
  162. package/lib/factories/internal/iterate_metadata_tuple.js.map +0 -1
  163. package/lib/factories/internal/iterate_metadata_union.js.map +0 -1
  164. package/lib/transformers/features/miscellaneous/CreateInstanceTransformer.d.ts +0 -5
  165. package/lib/transformers/features/miscellaneous/CreateInstanceTransformer.js +0 -29
  166. package/lib/transformers/features/miscellaneous/CreateInstanceTransformer.js.map +0 -1
  167. package/src/transformers/features/miscellaneous/CreateInstanceTransformer.ts +0 -41
@@ -1,124 +1,124 @@
1
- import path from "path";
2
- import ts from "typescript";
3
-
4
- import { IProject } from "./IProject";
5
- import { ApplicationTransformer } from "./features/miscellaneous/ApplicationTransformer";
6
- import { MetadataTransformer } from "./features/miscellaneous/MetadataTransformer";
7
- import { AssertParseTransformer } from "./features/parsers/AssertParseTransformer";
8
- import { CreateAssertParseTransformer } from "./features/parsers/CreateAssertParseTransformer";
9
- import { CreateIsParseTransformer } from "./features/parsers/CreateIsParseTransformer";
10
- import { CreateValidateParseTransformer } from "./features/parsers/CreateValidateParseTransformer";
11
- import { IsParseTransformer } from "./features/parsers/IsParseTransformer";
12
- import { ValidateParseTransformer } from "./features/parsers/ValidateParseTransformer";
13
- import { AssertStringifyTransformer } from "./features/stringifiers/AssertStringifyTransformer";
14
- import { CreateAssertStringifyTransformer } from "./features/stringifiers/CreateAssertStringifyTransformer";
15
- import { CreateIsStringifyTransformer } from "./features/stringifiers/CreateIsStringifyTransformer";
16
- import { CreateStringifyTransformer } from "./features/stringifiers/CreateStringifyTransformer";
17
- import { CreateValidateStringifyTransformer } from "./features/stringifiers/CreateValidateStringifyProgrammer";
18
- import { IsStringifyTransformer } from "./features/stringifiers/IsStringifyTransformer";
19
- import { StringifyTransformer } from "./features/stringifiers/StringifyTransformer";
20
- import { ValidateStringifyTransformer } from "./features/stringifiers/ValidateStringifyTransformer";
21
- import { AssertTransformer } from "./features/validators/AssertTransformer";
22
- import { CreateAssertTransformer } from "./features/validators/CreateAssertTransformer";
23
- import { CreateIsTransformer } from "./features/validators/CreateIsTransformer";
24
- import { CreateValidateTransformer } from "./features/validators/CreateValidateTransformer";
25
- import { IsTransformer } from "./features/validators/IsTransformer";
26
- import { ValidateTransformer } from "./features/validators/ValidateTransformer";
27
-
28
- export namespace CallExpressionTransformer {
29
- export function transform(
30
- project: IProject,
31
- expression: ts.CallExpression,
32
- ): ts.Expression {
33
- //----
34
- // VALIDATIONS
35
- //----
36
- // SIGNATURE DECLARATION
37
- const declaration: ts.Declaration | undefined =
38
- project.checker.getResolvedSignature(expression)?.declaration;
39
- if (!declaration) return expression;
40
-
41
- // FILE PATH
42
- const file: string = path.resolve(declaration.getSourceFile().fileName);
43
- if (file.indexOf(LIB_PATH) === -1 && file !== SRC_PATH)
44
- return expression;
45
-
46
- //----
47
- // TRANSFORMATION
48
- //----
49
- // FUNCTION NAME
50
- const { name } = project.checker.getTypeAtLocation(declaration).symbol;
51
-
52
- // FIND TRANSFORMER
53
- const functor: (() => Task) | undefined = FUNCTORS[name];
54
- if (functor === undefined) return expression;
55
-
56
- // RETURNS WITH TRANSFORMATION
57
- return functor()(project, expression.expression, expression);
58
- }
59
- }
60
-
61
- type Task = (
62
- project: IProject,
63
- modulo: ts.LeftHandSideExpression,
64
- expression: ts.CallExpression,
65
- ) => ts.Expression;
66
-
67
- const LIB_PATH = path.join("node_modules", "typia", "lib", "module.d.ts");
68
- const SRC_PATH = path.resolve(path.join(__dirname, "..", "module.ts"));
69
-
70
- const FUNCTORS: Record<string, () => Task> = {
71
- //----
72
- // SINGLE FUNCTIONS
73
- //----
74
- // BASIC VALIDATORS
75
- assert: () => AssertTransformer.transform(false),
76
- assertType: () => AssertTransformer.transform(false),
77
- is: () => IsTransformer.transform(false),
78
- validate: () => ValidateTransformer.transform(false),
79
-
80
- // STRICT VALIDATORS
81
- assertEquals: () => AssertTransformer.transform(true),
82
- equals: () => IsTransformer.transform(true),
83
- validateEquals: () => ValidateTransformer.transform(true),
84
-
85
- // PARSE FUNCTIONS
86
- isParse: () => IsParseTransformer.transform,
87
- assertParse: () => AssertParseTransformer.transform,
88
- validateParse: () => ValidateParseTransformer.transform,
89
-
90
- // STRINGIFY FUNCTIONS
91
- stringify: () => StringifyTransformer.transform,
92
- assertStringify: () => AssertStringifyTransformer.transform,
93
- isStringify: () => IsStringifyTransformer.transform,
94
- validateStringify: () => ValidateStringifyTransformer.transform,
95
-
96
- // MISC
97
- application: () => ApplicationTransformer.transform,
98
- metadata: () => MetadataTransformer.transform,
99
-
100
- //----
101
- // FACTORY FUNCTIONS
102
- //----
103
- // BASIC VALIDATORS
104
- createAssert: () => CreateAssertTransformer.transform(false),
105
- createAssertType: () => CreateAssertTransformer.transform(false),
106
- createIs: () => CreateIsTransformer.transform(false),
107
- createValidate: () => CreateValidateTransformer.transform(false),
108
-
109
- // STRICT VALIDATORS
110
- createAssertEquals: () => CreateAssertTransformer.transform(true),
111
- createEquals: () => CreateIsTransformer.transform(true),
112
- createValidateEquals: () => CreateValidateTransformer.transform(true),
113
-
114
- // PARSE FUNCTIONS
115
- createIsParse: () => CreateIsParseTransformer.transform,
116
- createAssertParse: () => CreateAssertParseTransformer.transform,
117
- createValidateParse: () => CreateValidateParseTransformer.transform,
118
-
119
- // STRINGIFY FUNCTIONS
120
- createStringify: () => CreateStringifyTransformer.transform,
121
- createAssertStringify: () => CreateAssertStringifyTransformer.transform,
122
- createIsStringify: () => CreateIsStringifyTransformer.transform,
123
- createValidateStringify: () => CreateValidateStringifyTransformer.transform,
124
- };
1
+ import path from "path";
2
+ import ts from "typescript";
3
+
4
+ import { IProject } from "./IProject";
5
+ import { ApplicationTransformer } from "./features/miscellaneous/ApplicationTransformer";
6
+ import { MetadataTransformer } from "./features/miscellaneous/MetadataTransformer";
7
+ import { AssertParseTransformer } from "./features/parsers/AssertParseTransformer";
8
+ import { CreateAssertParseTransformer } from "./features/parsers/CreateAssertParseTransformer";
9
+ import { CreateIsParseTransformer } from "./features/parsers/CreateIsParseTransformer";
10
+ import { CreateValidateParseTransformer } from "./features/parsers/CreateValidateParseTransformer";
11
+ import { IsParseTransformer } from "./features/parsers/IsParseTransformer";
12
+ import { ValidateParseTransformer } from "./features/parsers/ValidateParseTransformer";
13
+ import { AssertStringifyTransformer } from "./features/stringifiers/AssertStringifyTransformer";
14
+ import { CreateAssertStringifyTransformer } from "./features/stringifiers/CreateAssertStringifyTransformer";
15
+ import { CreateIsStringifyTransformer } from "./features/stringifiers/CreateIsStringifyTransformer";
16
+ import { CreateStringifyTransformer } from "./features/stringifiers/CreateStringifyTransformer";
17
+ import { CreateValidateStringifyTransformer } from "./features/stringifiers/CreateValidateStringifyProgrammer";
18
+ import { IsStringifyTransformer } from "./features/stringifiers/IsStringifyTransformer";
19
+ import { StringifyTransformer } from "./features/stringifiers/StringifyTransformer";
20
+ import { ValidateStringifyTransformer } from "./features/stringifiers/ValidateStringifyTransformer";
21
+ import { AssertTransformer } from "./features/validators/AssertTransformer";
22
+ import { CreateAssertTransformer } from "./features/validators/CreateAssertTransformer";
23
+ import { CreateIsTransformer } from "./features/validators/CreateIsTransformer";
24
+ import { CreateValidateTransformer } from "./features/validators/CreateValidateTransformer";
25
+ import { IsTransformer } from "./features/validators/IsTransformer";
26
+ import { ValidateTransformer } from "./features/validators/ValidateTransformer";
27
+
28
+ export namespace CallExpressionTransformer {
29
+ export function transform(
30
+ project: IProject,
31
+ expression: ts.CallExpression,
32
+ ): ts.Expression {
33
+ //----
34
+ // VALIDATIONS
35
+ //----
36
+ // SIGNATURE DECLARATION
37
+ const declaration: ts.Declaration | undefined =
38
+ project.checker.getResolvedSignature(expression)?.declaration;
39
+ if (!declaration) return expression;
40
+
41
+ // FILE PATH
42
+ const file: string = path.resolve(declaration.getSourceFile().fileName);
43
+ if (file.indexOf(LIB_PATH) === -1 && file !== SRC_PATH)
44
+ return expression;
45
+
46
+ //----
47
+ // TRANSFORMATION
48
+ //----
49
+ // FUNCTION NAME
50
+ const { name } = project.checker.getTypeAtLocation(declaration).symbol;
51
+
52
+ // FIND TRANSFORMER
53
+ const functor: (() => Task) | undefined = FUNCTORS[name];
54
+ if (functor === undefined) return expression;
55
+
56
+ // RETURNS WITH TRANSFORMATION
57
+ return functor()(project, expression.expression, expression);
58
+ }
59
+ }
60
+
61
+ type Task = (
62
+ project: IProject,
63
+ modulo: ts.LeftHandSideExpression,
64
+ expression: ts.CallExpression,
65
+ ) => ts.Expression;
66
+
67
+ const LIB_PATH = path.join("node_modules", "typia", "lib", "module.d.ts");
68
+ const SRC_PATH = path.resolve(path.join(__dirname, "..", "module.ts"));
69
+
70
+ const FUNCTORS: Record<string, () => Task> = {
71
+ //----
72
+ // SINGLE FUNCTIONS
73
+ //----
74
+ // BASIC VALIDATORS
75
+ assert: () => AssertTransformer.transform(false),
76
+ assertType: () => AssertTransformer.transform(false),
77
+ is: () => IsTransformer.transform(false),
78
+ validate: () => ValidateTransformer.transform(false),
79
+
80
+ // STRICT VALIDATORS
81
+ assertEquals: () => AssertTransformer.transform(true),
82
+ equals: () => IsTransformer.transform(true),
83
+ validateEquals: () => ValidateTransformer.transform(true),
84
+
85
+ // PARSE FUNCTIONS
86
+ isParse: () => IsParseTransformer.transform,
87
+ assertParse: () => AssertParseTransformer.transform,
88
+ validateParse: () => ValidateParseTransformer.transform,
89
+
90
+ // STRINGIFY FUNCTIONS
91
+ stringify: () => StringifyTransformer.transform,
92
+ assertStringify: () => AssertStringifyTransformer.transform,
93
+ isStringify: () => IsStringifyTransformer.transform,
94
+ validateStringify: () => ValidateStringifyTransformer.transform,
95
+
96
+ // MISC
97
+ application: () => ApplicationTransformer.transform,
98
+ metadata: () => MetadataTransformer.transform,
99
+
100
+ //----
101
+ // FACTORY FUNCTIONS
102
+ //----
103
+ // BASIC VALIDATORS
104
+ createAssert: () => CreateAssertTransformer.transform(false),
105
+ createAssertType: () => CreateAssertTransformer.transform(false),
106
+ createIs: () => CreateIsTransformer.transform(false),
107
+ createValidate: () => CreateValidateTransformer.transform(false),
108
+
109
+ // STRICT VALIDATORS
110
+ createAssertEquals: () => CreateAssertTransformer.transform(true),
111
+ createEquals: () => CreateIsTransformer.transform(true),
112
+ createValidateEquals: () => CreateValidateTransformer.transform(true),
113
+
114
+ // PARSE FUNCTIONS
115
+ createIsParse: () => CreateIsParseTransformer.transform,
116
+ createAssertParse: () => CreateAssertParseTransformer.transform,
117
+ createValidateParse: () => CreateValidateParseTransformer.transform,
118
+
119
+ // STRINGIFY FUNCTIONS
120
+ createStringify: () => CreateStringifyTransformer.transform,
121
+ createAssertStringify: () => CreateAssertStringifyTransformer.transform,
122
+ createIsStringify: () => CreateIsStringifyTransformer.transform,
123
+ createValidateStringify: () => CreateValidateStringifyTransformer.transform,
124
+ };
@@ -1,4 +1,47 @@
1
- export interface ITransformOptions {
2
- functional?: boolean;
3
- numeric?: boolean;
4
- }
1
+ export interface ITransformOptions {
2
+ /**
3
+ * Whether to validate finite number or not.
4
+ *
5
+ * If configured true, number typed values would be validated by Number.isNaN().
6
+ *
7
+ * However, whatever you configure, it would be ignored when marshaling or parsing.
8
+ *
9
+ * - when marshaling, always be true
10
+ * - assertStringify()
11
+ * - validateEncode()
12
+ * - when parsing, always be false
13
+ * - assertParse()
14
+ * - isDecode()
15
+ *
16
+ * @default false
17
+ */
18
+ finite?: boolean;
19
+
20
+ /**
21
+ * Whether to validate finite number or not.
22
+ *
23
+ * If configured true, number typed values would be validated by Number.isFinite().
24
+ *
25
+ * However, whatever you configure, it can be ignored in below case.
26
+ *
27
+ * - when `finite` option is true, this option would be ignored
28
+ * - when marshaling, always be true
29
+ * - assertStringify()
30
+ * - validateEncode()
31
+ * - when parsing, always be false
32
+ * - assertParse()
33
+ * - isDecode()
34
+ *
35
+ * @default false
36
+ */
37
+ numeric?: boolean;
38
+
39
+ /**
40
+ * Whether to validate functional type or not.
41
+ *
42
+ * However, whatever you configure, it becomes false when marshaling or parsing.
43
+ *
44
+ * @default false
45
+ */
46
+ functional?: boolean;
47
+ }
@@ -1,114 +1,119 @@
1
- import ts from "typescript";
2
-
3
- import { LiteralFactory } from "../../../factories/LiteralFactory";
4
- import { MetadataCollection } from "../../../factories/MetadataCollection";
5
- import { MetadataFactory } from "../../../factories/MetadataFactory";
6
-
7
- import { Metadata } from "../../../metadata/Metadata";
8
- import { IJsonApplication } from "../../../schemas/IJsonApplication";
9
-
10
- import { ApplicationProgrammer } from "../../../programmers/ApplicationProgrammer";
11
-
12
- import { IProject } from "../../IProject";
13
-
14
- export namespace ApplicationTransformer {
15
- export function transform(
16
- { checker }: IProject,
17
- _modulo: ts.LeftHandSideExpression,
18
- expression: ts.CallExpression,
19
- ): ts.Expression {
20
- if (!expression.typeArguments?.length)
21
- throw new Error(ErrorMessages.NO_GENERIC_ARGUMENT);
22
-
23
- //----
24
- // GET ARGUMENTS
25
- //----
26
- // VALIDATE TUPLE ARGUMENTS
27
- const top: ts.Node = expression.typeArguments[0]!;
28
- if (!ts.isTupleTypeNode(top)) return expression;
29
- else if (top.elements.some((child) => !ts.isTypeNode(child)))
30
- return expression;
31
-
32
- // GET TYPES
33
- const types: ts.Type[] = top.elements.map((child) =>
34
- checker.getTypeFromTypeNode(child as ts.TypeNode),
35
- );
36
- if (types.some((t) => t.isTypeParameter()))
37
- throw new Error(ErrorMessages.GENERIC_ARGUMENT);
38
-
39
- // ADDITIONAL PARAMETERS
40
- const purpose: "swagger" | "ajv" = get_parameter(
41
- checker,
42
- "Purpose",
43
- expression.typeArguments[1],
44
- (str) => str === "swagger" || str === "ajv",
45
- () => "swagger",
46
- );
47
- const prefix: string = get_parameter(
48
- checker,
49
- "Prefix",
50
- expression.typeArguments[2],
51
- () => true,
52
- () =>
53
- purpose === "swagger"
54
- ? "#/components/schemas"
55
- : "components#/schemas",
56
- );
57
-
58
- //----
59
- // GENERATORS
60
- //----
61
- // METADATA
62
- const collection: MetadataCollection = new MetadataCollection({
63
- replace: MetadataCollection.replace,
64
- });
65
- const metadatas: Array<Metadata> = types.map((type) =>
66
- MetadataFactory.generate(checker, collection, type, {
67
- resolve: true,
68
- constant: true,
69
- }),
70
- );
71
-
72
- // APPLICATION
73
- const app: IJsonApplication = ApplicationProgrammer.generate(
74
- metadatas,
75
- {
76
- purpose,
77
- prefix,
78
- },
79
- );
80
-
81
- // RETURNS WITH LITERAL EXPRESSION
82
- return LiteralFactory.generate(app);
83
- }
84
-
85
- function get_parameter<T extends string>(
86
- checker: ts.TypeChecker,
87
- name: string,
88
- node: ts.TypeNode | undefined,
89
- predicator: (value: string) => boolean,
90
- defaulter: () => T,
91
- ): T {
92
- if (!node) return defaulter();
93
-
94
- // CHECK LITERAL TYPE
95
- const type: ts.Type = checker.getTypeFromTypeNode(node);
96
- if (!type.isLiteral())
97
- throw new Error(
98
- `Error on typia.application(): generic argument "${name}" must be constant.`,
99
- );
100
-
101
- // GET VALUE AND VALIDATE IT
102
- const value = type.value;
103
- if (typeof value !== "string" || predicator(value) === false)
104
- throw new Error(
105
- `Error on typia.application(): invalid value on generic argument "${name}".`,
106
- );
107
- return value as T;
108
- }
109
- }
110
-
111
- const enum ErrorMessages {
112
- NO_GENERIC_ARGUMENT = "Error on typia.application(): no generic argument.",
113
- GENERIC_ARGUMENT = "Error on typia.application(): non-specified generic argument(s).",
114
- }
1
+ import ts from "typescript";
2
+
3
+ import { LiteralFactory } from "../../../factories/LiteralFactory";
4
+ import { MetadataCollection } from "../../../factories/MetadataCollection";
5
+ import { MetadataFactory } from "../../../factories/MetadataFactory";
6
+
7
+ import { Metadata } from "../../../metadata/Metadata";
8
+ import { IJsonApplication } from "../../../schemas/IJsonApplication";
9
+
10
+ import { ApplicationProgrammer } from "../../../programmers/ApplicationProgrammer";
11
+
12
+ import { IProject } from "../../IProject";
13
+
14
+ export namespace ApplicationTransformer {
15
+ export function transform(
16
+ { checker }: IProject,
17
+ _modulo: ts.LeftHandSideExpression,
18
+ expression: ts.CallExpression,
19
+ ): ts.Expression {
20
+ if (!expression.typeArguments?.length)
21
+ throw new Error(ErrorMessages.NO_GENERIC_ARGUMENT);
22
+
23
+ //----
24
+ // GET ARGUMENTS
25
+ //----
26
+ // VALIDATE TUPLE ARGUMENTS
27
+ const top: ts.Node = expression.typeArguments[0]!;
28
+ if (!ts.isTupleTypeNode(top)) return expression;
29
+ else if (top.elements.some((child) => !ts.isTypeNode(child)))
30
+ return expression;
31
+
32
+ // GET TYPES
33
+ const types: ts.Type[] = top.elements.map((child) =>
34
+ checker.getTypeFromTypeNode(child as ts.TypeNode),
35
+ );
36
+ if (types.some((t) => t.isTypeParameter()))
37
+ throw new Error(ErrorMessages.GENERIC_ARGUMENT);
38
+
39
+ // ADDITIONAL PARAMETERS
40
+ const purpose: "swagger" | "ajv" = get_parameter(
41
+ checker,
42
+ "Purpose",
43
+ expression.typeArguments[1],
44
+ (str) => str === "swagger" || str === "ajv",
45
+ () => "swagger",
46
+ );
47
+ const prefix: string = get_parameter(
48
+ checker,
49
+ "Prefix",
50
+ expression.typeArguments[2],
51
+ () => true,
52
+ () =>
53
+ purpose === "swagger"
54
+ ? "#/components/schemas"
55
+ : "components#/schemas",
56
+ );
57
+
58
+ //----
59
+ // GENERATORS
60
+ //----
61
+ // METADATA
62
+ const collection: MetadataCollection = new MetadataCollection({
63
+ replace: MetadataCollection.replace,
64
+ });
65
+ const metadatas: Array<Metadata> = types.map((type) =>
66
+ MetadataFactory.generate(checker, collection, type, {
67
+ resolve: true,
68
+ constant: true,
69
+ validate: (meta) => {
70
+ if (meta.atomics.find((str) => str === "bigint"))
71
+ throw new Error(ErrorMessages.NO_BIGIT);
72
+ },
73
+ }),
74
+ );
75
+
76
+ // APPLICATION
77
+ const app: IJsonApplication = ApplicationProgrammer.generate(
78
+ metadatas,
79
+ {
80
+ purpose,
81
+ prefix,
82
+ },
83
+ );
84
+
85
+ // RETURNS WITH LITERAL EXPRESSION
86
+ return LiteralFactory.generate(app);
87
+ }
88
+
89
+ function get_parameter<T extends string>(
90
+ checker: ts.TypeChecker,
91
+ name: string,
92
+ node: ts.TypeNode | undefined,
93
+ predicator: (value: string) => boolean,
94
+ defaulter: () => T,
95
+ ): T {
96
+ if (!node) return defaulter();
97
+
98
+ // CHECK LITERAL TYPE
99
+ const type: ts.Type = checker.getTypeFromTypeNode(node);
100
+ if (!type.isLiteral())
101
+ throw new Error(
102
+ `Error on typia.application(): generic argument "${name}" must be constant.`,
103
+ );
104
+
105
+ // GET VALUE AND VALIDATE IT
106
+ const value = type.value;
107
+ if (typeof value !== "string" || predicator(value) === false)
108
+ throw new Error(
109
+ `Error on typia.application(): invalid value on generic argument "${name}".`,
110
+ );
111
+ return value as T;
112
+ }
113
+ }
114
+
115
+ const enum ErrorMessages {
116
+ NO_GENERIC_ARGUMENT = "Error on typia.application(): no generic argument.",
117
+ GENERIC_ARGUMENT = "Error on typia.application(): non-specified generic argument(s).",
118
+ NO_BIGIT = "Error on typia.application(): does not allow bigint type.",
119
+ }
@@ -1,36 +1,46 @@
1
- import ts from "typescript";
2
-
3
- import { StringifyProgrammer } from "../../../programmers/StringifyProgrammer";
4
-
5
- import { IProject } from "../../IProject";
6
-
7
- export namespace StringifyTransformer {
8
- export function transform(
9
- project: IProject,
10
- modulo: ts.LeftHandSideExpression,
11
- expression: ts.CallExpression,
12
- ): ts.Expression {
13
- if (expression.arguments.length !== 1)
14
- throw new Error(ErrorMessages.NO_INPUT_VALUE);
15
-
16
- const type: ts.Type =
17
- expression.typeArguments && expression.typeArguments[0]
18
- ? project.checker.getTypeFromTypeNode(
19
- expression.typeArguments[0],
20
- )
21
- : project.checker.getTypeAtLocation(expression.arguments[0]!);
22
- if (type.isTypeParameter())
23
- throw new Error(ErrorMessages.GENERIC_ARGUMENT);
24
-
25
- return ts.factory.createCallExpression(
26
- StringifyProgrammer.generate(project, modulo)(type),
27
- undefined,
28
- [expression.arguments[0]!],
29
- );
30
- }
31
- }
32
-
33
- const enum ErrorMessages {
34
- NO_INPUT_VALUE = "Error on typia.stringify(): no input value.",
35
- GENERIC_ARGUMENT = "Error on typia.stringify(): non-specified generic argument.",
36
- }
1
+ import ts from "typescript";
2
+
3
+ import { StringifyProgrammer } from "../../../programmers/StringifyProgrammer";
4
+
5
+ import { IProject } from "../../IProject";
6
+
7
+ export namespace StringifyTransformer {
8
+ export function transform(
9
+ project: IProject,
10
+ modulo: ts.LeftHandSideExpression,
11
+ expression: ts.CallExpression,
12
+ ): ts.Expression {
13
+ if (expression.arguments.length !== 1)
14
+ throw new Error(ErrorMessages.NO_INPUT_VALUE);
15
+
16
+ const type: ts.Type =
17
+ expression.typeArguments && expression.typeArguments[0]
18
+ ? project.checker.getTypeFromTypeNode(
19
+ expression.typeArguments[0],
20
+ )
21
+ : project.checker.getTypeAtLocation(expression.arguments[0]!);
22
+ if (type.isTypeParameter())
23
+ throw new Error(ErrorMessages.GENERIC_ARGUMENT);
24
+
25
+ return ts.factory.createCallExpression(
26
+ StringifyProgrammer.generate(
27
+ {
28
+ ...project,
29
+ options: {
30
+ ...project.options,
31
+ functional: false,
32
+ numeric: true,
33
+ },
34
+ },
35
+ modulo,
36
+ )(type),
37
+ undefined,
38
+ [expression.arguments[0]!],
39
+ );
40
+ }
41
+ }
42
+
43
+ const enum ErrorMessages {
44
+ NO_INPUT_VALUE = "Error on typia.stringify(): no input value.",
45
+ GENERIC_ARGUMENT = "Error on typia.stringify(): non-specified generic argument.",
46
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"MetadataHelper.js","sourceRoot":"","sources":["../../../src/factories/internal/MetadataHelper.ts"],"names":[],"mappings":";;;AAAA,oDAAmD;AAEnD,IAAiB,cAAc,CAS9B;AATD,WAAiB,cAAc;IAC3B,SAAgB,mBAAmB,CAAC,GAAW;QAC3C,IAAM,QAAQ,GAAa,mBAAQ,CAAC,UAAU,EAAE,CAAC;QACjD,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,CAAC,GAAG,CAAC;SAChB,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IACpB,CAAC;IAPe,kCAAmB,sBAOlC,CAAA;AACL,CAAC,EATgB,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAS9B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"emplace_metadata_object.js","sourceRoot":"","sources":["../../../src/factories/internal/emplace_metadata_object.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"explore_metadata.js","sourceRoot":"","sources":["../../../src/factories/internal/explore_metadata.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"iterate_metadata.js","sourceRoot":"","sources":["../../../src/factories/internal/iterate_metadata.ts"],"names":[],"mappings":";;;AAIA,mDAAkD;AAIlD,mEAAkE;AAClE,qEAAoE;AACpE,yEAAwE;AACxE,yEAAwE;AACxE,+DAA8D;AAC9D,qEAAoE;AACpE,qEAAoE;AACpE,uEAAsE;AACtE,+DAA8D;AAC9D,yEAAwE;AACxE,mEAAkE;AAClE,mEAAkE;AAE3D,IAAM,gBAAgB,GACzB,UAAC,OAAuB;IACxB,OAAA,UAAC,OAAiC;QAClC,OAAA,UAAC,UAA8B;YAC/B,OAAA,UAAC,IAAc,EAAE,IAAa,EAAE,cAAuB;gBACnD,IAAI,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI;oBAC/B,MAAM,IAAI,KAAK,CACX,uFAAgF,IAAI,CAAC,OAAO,EAAE,MAAG,CACpG,CAAC;gBAGN,IACI,IAAA,+CAAsB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAChD,IAAI,EACJ,IAAI,EACJ,cAAc,CACjB;oBACD,IAAA,mDAAwB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAClD,IAAI,EACJ,IAAI,EACJ,cAAc,CACjB;oBAED,OAAO;gBAGX,IAAM,IAAI,GAA4B,OAAO,CAAC,cAAc,CACxD,IAAI,EACJ,SAAS,EACT,SAAS,CACZ,CAAC;gBACF,IAAI,IAAI,KAAK,SAAS,EAAE;oBAEpB,qBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI,CAAC,CAAC;oBAC3C,OAAO;iBACV;gBAGD,IAAA,qDAAyB,EAAC,IAAI,EAAE,IAAI,CAAC;oBACjC,IAAA,qDAAyB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBACvD,IAAA,qDAAyB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CACnD,IAAI,EACJ,IAAI,CACP;oBACD,IAAA,iDAAuB,EAAC,IAAI,EAAE,IAAI,CAAC;oBACnC,IAAA,+CAAsB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAChD,IAAI,EACJ,IAAoB,CACvB;oBACD,IAAA,+CAAsB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAChE,IAAA,iDAAuB,EAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAC5C,IAAA,2CAAoB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAC9D,IAAA,2CAAoB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAC9D,IAAA,iDAAuB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CACjD,IAAI,EACJ,IAAI,EACJ,cAAc,CACjB,CAAC;YACV,CAAC;QAtDD,CAsDC;IAvDD,CAuDC;AAxDD,CAwDC,CAAC;AA1DO,QAAA,gBAAgB,oBA0DvB"}