typia 3.7.5 → 3.8.0-dev.20230415

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 (235) hide show
  1. package/README.md +0 -32
  2. package/lib/executable/TypiaSetupWizard.d.ts +0 -1
  3. package/lib/executable/TypiaSetupWizard.js +26 -56
  4. package/lib/executable/TypiaSetupWizard.js.map +1 -1
  5. package/lib/executable/setup/PackageManager.d.ts +1 -1
  6. package/lib/executable/typia.d.ts +1 -1
  7. package/lib/executable/typia.js +1 -1
  8. package/lib/executable/typia.js.map +1 -1
  9. package/lib/factories/IdentifierFactory.d.ts +1 -1
  10. package/lib/factories/IdentifierFactory.js +1 -1
  11. package/lib/factories/IdentifierFactory.js.map +1 -1
  12. package/lib/metadata/Metadata.js +1 -1
  13. package/lib/metadata/Metadata.js.map +1 -1
  14. package/lib/module.js +1 -1
  15. package/lib/module.js.map +1 -1
  16. package/lib/programmers/CheckerProgrammer.js +1 -3
  17. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  18. package/lib/programmers/internal/check_string_tags.js +2 -2
  19. package/lib/programmers/internal/check_string_tags.js.map +1 -1
  20. package/lib/programmers/internal/check_template.js +1 -1
  21. package/lib/programmers/internal/check_template.js.map +1 -1
  22. package/package.json +13 -12
  23. package/src/CustomValidatorMap.ts +126 -126
  24. package/src/IRandomGenerator.ts +33 -33
  25. package/src/IValidation.ts +21 -21
  26. package/src/Primitive.ts +104 -104
  27. package/src/TypeGuardError.ts +36 -36
  28. package/src/executable/TypiaGenerateWizard.ts +85 -85
  29. package/src/executable/TypiaSetupWizard.ts +118 -150
  30. package/src/executable/setup/ArgumentParser.ts +45 -45
  31. package/src/executable/setup/CommandExecutor.ts +8 -8
  32. package/src/executable/setup/FileRetriever.ts +22 -22
  33. package/src/executable/setup/PackageManager.ts +71 -71
  34. package/src/executable/setup/PluginConfigurator.ts +59 -59
  35. package/src/executable/typia.ts +52 -54
  36. package/src/factories/CommentFactory.ts +10 -10
  37. package/src/factories/ExpressionFactory.ts +77 -77
  38. package/src/factories/IdentifierFactory.ts +59 -81
  39. package/src/factories/LiteralFactory.ts +44 -44
  40. package/src/factories/MetadataCollection.ts +122 -122
  41. package/src/factories/MetadataFactory.ts +51 -51
  42. package/src/factories/MetadataTagFactory.ts +302 -302
  43. package/src/factories/StatementFactory.ts +60 -60
  44. package/src/factories/TemplateFactory.ts +56 -56
  45. package/src/factories/TypeFactory.ts +129 -129
  46. package/src/factories/TypiaFileFactory.ts +120 -120
  47. package/src/factories/ValueFactory.ts +12 -12
  48. package/src/factories/internal/metadata/MetadataHelper.ts +12 -12
  49. package/src/factories/internal/metadata/emplace_metadata_object.ts +142 -142
  50. package/src/factories/internal/metadata/explore_metadata.ts +92 -92
  51. package/src/factories/internal/metadata/iterate_metadata.ts +80 -80
  52. package/src/factories/internal/metadata/iterate_metadata_array.ts +29 -29
  53. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +59 -59
  54. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
  55. package/src/factories/internal/metadata/iterate_metadata_constant.ts +58 -58
  56. package/src/factories/internal/metadata/iterate_metadata_map.ts +41 -41
  57. package/src/factories/internal/metadata/iterate_metadata_native.ts +222 -222
  58. package/src/factories/internal/metadata/iterate_metadata_object.ts +48 -48
  59. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +27 -27
  60. package/src/factories/internal/metadata/iterate_metadata_set.ts +33 -33
  61. package/src/factories/internal/metadata/iterate_metadata_template.ts +38 -38
  62. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +45 -45
  63. package/src/factories/internal/metadata/iterate_metadata_union.ts +59 -59
  64. package/src/functional/$any.ts +3 -3
  65. package/src/functional/$dictionary.ts +20 -20
  66. package/src/functional/$every.ts +11 -11
  67. package/src/functional/$guard.ts +35 -35
  68. package/src/functional/$is_between.ts +7 -7
  69. package/src/functional/$is_custom.ts +14 -14
  70. package/src/functional/$is_date.ts +4 -4
  71. package/src/functional/$is_datetime.ts +3 -3
  72. package/src/functional/$is_email.ts +5 -5
  73. package/src/functional/$is_ipv4.ts +5 -5
  74. package/src/functional/$is_ipv6.ts +5 -5
  75. package/src/functional/$is_url.ts +5 -5
  76. package/src/functional/$is_uuid.ts +5 -5
  77. package/src/functional/$join.ts +50 -50
  78. package/src/functional/$number.ts +12 -12
  79. package/src/functional/$report.ts +15 -15
  80. package/src/functional/$rest.ts +3 -3
  81. package/src/functional/$string.ts +37 -37
  82. package/src/functional/$tail.ts +6 -6
  83. package/src/functional/Namespace.ts +127 -127
  84. package/src/index.ts +4 -4
  85. package/src/metadata/ICommentTag.ts +4 -4
  86. package/src/metadata/IJsDocTagInfo.ts +10 -10
  87. package/src/metadata/IMetadata.ts +25 -25
  88. package/src/metadata/IMetadataApplication.ts +7 -7
  89. package/src/metadata/IMetadataConstant.ts +16 -16
  90. package/src/metadata/IMetadataEntry.ts +6 -6
  91. package/src/metadata/IMetadataObject.ts +29 -29
  92. package/src/metadata/IMetadataProperty.ts +11 -11
  93. package/src/metadata/IMetadataTag.ts +105 -105
  94. package/src/metadata/Metadata.ts +533 -534
  95. package/src/metadata/MetadataConstant.ts +3 -3
  96. package/src/metadata/MetadataObject.ts +131 -131
  97. package/src/metadata/MetadataProperty.ts +64 -64
  98. package/src/module.ts +2043 -2043
  99. package/src/programmers/ApplicationProgrammer.ts +55 -55
  100. package/src/programmers/AssertCloneProgrammer.ts +70 -70
  101. package/src/programmers/AssertParseProgrammer.ts +65 -65
  102. package/src/programmers/AssertProgrammer.ts +284 -284
  103. package/src/programmers/AssertPruneProgrammer.ts +67 -67
  104. package/src/programmers/AssertStringifyProgrammer.ts +71 -71
  105. package/src/programmers/CheckerProgrammer.ts +920 -922
  106. package/src/programmers/CloneProgrammer.ts +388 -388
  107. package/src/programmers/FeatureProgrammer.ts +512 -512
  108. package/src/programmers/IsCloneProgrammer.ts +80 -80
  109. package/src/programmers/IsParseProgrammer.ts +74 -74
  110. package/src/programmers/IsProgrammer.ts +206 -206
  111. package/src/programmers/IsPruneProgrammer.ts +75 -75
  112. package/src/programmers/IsStringifyProgrammer.ts +81 -81
  113. package/src/programmers/LiteralsProgrammer.ts +65 -65
  114. package/src/programmers/PruneProgrammer.ts +343 -343
  115. package/src/programmers/RandomProgrammer.ts +413 -413
  116. package/src/programmers/StringifyProgrammer.ts +801 -801
  117. package/src/programmers/ValidateCloneProgrammer.ts +90 -90
  118. package/src/programmers/ValidateParseProgrammer.ts +69 -69
  119. package/src/programmers/ValidateProgrammer.ts +317 -317
  120. package/src/programmers/ValidatePruneProgrammer.ts +83 -83
  121. package/src/programmers/ValidateStringifyProgrammer.ts +89 -89
  122. package/src/programmers/helpers/AtomicPredicator.ts +31 -31
  123. package/src/programmers/helpers/CloneJoiner.ts +134 -134
  124. package/src/programmers/helpers/FunctionImporeter.ts +55 -55
  125. package/src/programmers/helpers/ICheckEntry.ts +12 -12
  126. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  127. package/src/programmers/helpers/OptionPredicator.ts +19 -19
  128. package/src/programmers/helpers/PruneJoiner.ts +52 -52
  129. package/src/programmers/helpers/RandomJoiner.ts +161 -161
  130. package/src/programmers/helpers/RandomRanger.ts +216 -216
  131. package/src/programmers/helpers/StringifyJoinder.ts +114 -114
  132. package/src/programmers/helpers/StringifyPredicator.ts +18 -18
  133. package/src/programmers/helpers/UnionExplorer.ts +281 -281
  134. package/src/programmers/helpers/UnionPredicator.ts +81 -81
  135. package/src/programmers/internal/application_array.ts +37 -37
  136. package/src/programmers/internal/application_boolean.ts +17 -17
  137. package/src/programmers/internal/application_constant.ts +29 -29
  138. package/src/programmers/internal/application_default.ts +17 -17
  139. package/src/programmers/internal/application_default_string.ts +32 -32
  140. package/src/programmers/internal/application_native.ts +32 -32
  141. package/src/programmers/internal/application_number.ts +73 -73
  142. package/src/programmers/internal/application_object.ts +153 -153
  143. package/src/programmers/internal/application_schema.ts +184 -184
  144. package/src/programmers/internal/application_string.ts +45 -45
  145. package/src/programmers/internal/application_templates.ts +27 -27
  146. package/src/programmers/internal/application_tuple.ts +29 -29
  147. package/src/programmers/internal/check_array.ts +30 -30
  148. package/src/programmers/internal/check_array_length.ts +35 -35
  149. package/src/programmers/internal/check_bigint.ts +82 -82
  150. package/src/programmers/internal/check_custom.ts +33 -33
  151. package/src/programmers/internal/check_dynamic_properties.ts +197 -197
  152. package/src/programmers/internal/check_everything.ts +28 -28
  153. package/src/programmers/internal/check_native.ts +21 -21
  154. package/src/programmers/internal/check_number.ts +177 -177
  155. package/src/programmers/internal/check_object.ts +55 -55
  156. package/src/programmers/internal/check_string.ts +25 -25
  157. package/src/programmers/internal/check_string_tags.ts +67 -73
  158. package/src/programmers/internal/check_template.ts +56 -59
  159. package/src/programmers/internal/check_union_array_like.ts +272 -272
  160. package/src/programmers/internal/check_union_tuple.ts +35 -35
  161. package/src/programmers/internal/decode_union_object.ts +73 -73
  162. package/src/programmers/internal/feature_object_entries.ts +63 -63
  163. package/src/programmers/internal/get_comment_tags.ts +23 -23
  164. package/src/programmers/internal/metadata_to_pattern.ts +34 -34
  165. package/src/programmers/internal/prune_object_properties.ts +60 -60
  166. package/src/programmers/internal/random_custom.ts +30 -30
  167. package/src/programmers/internal/stringify_dynamic_properties.ts +168 -168
  168. package/src/programmers/internal/stringify_native.ts +8 -8
  169. package/src/programmers/internal/stringify_regular_properties.ts +84 -84
  170. package/src/programmers/internal/template_to_pattern.ts +15 -15
  171. package/src/schemas/IJsonApplication.ts +9 -9
  172. package/src/schemas/IJsonComponents.ts +26 -26
  173. package/src/schemas/IJsonSchema.ts +121 -121
  174. package/src/transform.ts +21 -21
  175. package/src/transformers/CallExpressionTransformer.ts +174 -174
  176. package/src/transformers/ExpressionWithArgumentTransformer.ts +66 -66
  177. package/src/transformers/FileTransformer.ts +49 -49
  178. package/src/transformers/IProject.ts +11 -11
  179. package/src/transformers/ITransformOptions.ts +62 -62
  180. package/src/transformers/ImportTransformer.ts +66 -66
  181. package/src/transformers/NodeTransformer.ts +19 -19
  182. package/src/transformers/features/miscellaneous/ApplicationTransformer.ts +119 -119
  183. package/src/transformers/features/miscellaneous/AssertCloneTransformer.ts +9 -9
  184. package/src/transformers/features/miscellaneous/AssertPruneTransformer.ts +9 -9
  185. package/src/transformers/features/miscellaneous/CloneTransformer.ts +9 -9
  186. package/src/transformers/features/miscellaneous/CreateAssertCloneTransformer.ts +9 -9
  187. package/src/transformers/features/miscellaneous/CreateAssertPruneTransformer.ts +9 -9
  188. package/src/transformers/features/miscellaneous/CreateCloneTransformer.ts +9 -9
  189. package/src/transformers/features/miscellaneous/CreateIsCloneTransformer.ts +9 -9
  190. package/src/transformers/features/miscellaneous/CreateIsPruneTransformer.ts +9 -9
  191. package/src/transformers/features/miscellaneous/CreatePruneTransformer.ts +9 -9
  192. package/src/transformers/features/miscellaneous/CreateRandomTransformer.ts +41 -41
  193. package/src/transformers/features/miscellaneous/CreateValidateCloneTransformer.ts +9 -9
  194. package/src/transformers/features/miscellaneous/CreateValidatePruneTransformer.ts +9 -9
  195. package/src/transformers/features/miscellaneous/IsCloneTransformer.ts +9 -9
  196. package/src/transformers/features/miscellaneous/IsPruneTransformer.ts +9 -9
  197. package/src/transformers/features/miscellaneous/LiteralsTransformer.ts +30 -30
  198. package/src/transformers/features/miscellaneous/MetadataTransformer.ts +54 -54
  199. package/src/transformers/features/miscellaneous/PruneTransformer.ts +9 -9
  200. package/src/transformers/features/miscellaneous/RandomTransformer.ts +46 -46
  201. package/src/transformers/features/miscellaneous/ValidateCloneTransformer.ts +9 -9
  202. package/src/transformers/features/miscellaneous/ValidatePruneTransformer.ts +9 -9
  203. package/src/transformers/features/parsers/AssertParseTransformer.ts +9 -9
  204. package/src/transformers/features/parsers/CreateAssertParseTransformer.ts +9 -9
  205. package/src/transformers/features/parsers/CreateIsParseTransformer.ts +9 -9
  206. package/src/transformers/features/parsers/CreateValidateParseTransformer.ts +9 -9
  207. package/src/transformers/features/parsers/IsParseTransformer.ts +9 -9
  208. package/src/transformers/features/parsers/ValidateParseTransformer.ts +9 -9
  209. package/src/transformers/features/stringifiers/AssertStringifyTransformer.ts +10 -10
  210. package/src/transformers/features/stringifiers/CreateAssertStringifyTransformer.ts +9 -9
  211. package/src/transformers/features/stringifiers/CreateIsStringifyTransformer.ts +9 -9
  212. package/src/transformers/features/stringifiers/CreateStringifyTransformer.ts +9 -9
  213. package/src/transformers/features/stringifiers/CreateValidateStringifyProgrammer.ts +11 -11
  214. package/src/transformers/features/stringifiers/IsStringifyTransformer.ts +9 -9
  215. package/src/transformers/features/stringifiers/StringifyTransformer.ts +9 -9
  216. package/src/transformers/features/stringifiers/ValidateStringifyTransformer.ts +10 -10
  217. package/src/transformers/features/validators/AssertTransformer.ts +11 -11
  218. package/src/transformers/features/validators/CreateAssertTransformer.ts +12 -12
  219. package/src/transformers/features/validators/CreateIsTransformer.ts +10 -10
  220. package/src/transformers/features/validators/CreateValidateTransformer.ts +12 -12
  221. package/src/transformers/features/validators/IsTransformer.ts +10 -10
  222. package/src/transformers/features/validators/ValidateTransformer.ts +11 -11
  223. package/src/transformers/internal/GenericTransformer.ts +99 -99
  224. package/src/typings/Atomic.ts +17 -17
  225. package/src/typings/ClassProperties.ts +5 -5
  226. package/src/typings/Customizable.ts +5 -5
  227. package/src/typings/OmitNever.ts +3 -3
  228. package/src/typings/SpecialFields.ts +3 -3
  229. package/src/typings/Writable.ts +11 -11
  230. package/src/utils/ArrayUtil.ts +49 -49
  231. package/src/utils/Escaper.ts +50 -50
  232. package/src/utils/MapUtil.ts +14 -14
  233. package/src/utils/PatternUtil.ts +30 -30
  234. package/src/utils/RandomGenerator.ts +96 -96
  235. package/src/utils/Singleton.ts +17 -17
@@ -1,54 +1,54 @@
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 { IMetadataApplication } from "../../../metadata/IMetadataApplication";
8
- import { Metadata } from "../../../metadata/Metadata";
9
-
10
- import { IProject } from "../../IProject";
11
-
12
- export namespace MetadataTransformer {
13
- export function transform(
14
- { checker }: IProject,
15
- _modulo: ts.LeftHandSideExpression,
16
- expression: ts.CallExpression,
17
- ): ts.Expression {
18
- if (!expression.typeArguments?.length)
19
- throw new Error(NO_GENERIC_ARGUMENT);
20
-
21
- // VALIDATE TUPLE ARGUMENTS
22
- const top: ts.Node = expression.typeArguments[0]!;
23
- if (!ts.isTupleTypeNode(top)) return expression;
24
- else if (top.elements.some((child) => !ts.isTypeNode(child)))
25
- return expression;
26
-
27
- // GET TYPES
28
- const types: ts.Type[] = top.elements.map((child) =>
29
- checker.getTypeFromTypeNode(child as ts.TypeNode),
30
- );
31
- if (types.some((t) => t.isTypeParameter()))
32
- throw new Error(GENERIC_ARGUMENT);
33
-
34
- // METADATA
35
- const collection: MetadataCollection = new MetadataCollection();
36
- const metadatas: Array<Metadata> = types.map((type) =>
37
- MetadataFactory.generate(checker, collection, type, {
38
- resolve: false,
39
- constant: true,
40
- }),
41
- );
42
-
43
- // CONVERT TO PRIMITIVE TYPE
44
- const app: IMetadataApplication = {
45
- metadatas: metadatas.map((metadata) => metadata.toJSON()),
46
- collection: collection.objects().map((obj) => obj.toJSON()),
47
- };
48
- return LiteralFactory.generate(app);
49
- }
50
- }
51
-
52
- const NO_GENERIC_ARGUMENT = "Error on typia.metadata(): no generic argument.";
53
- const GENERIC_ARGUMENT =
54
- "Error on typia.metadata(): non-specified generic argument(s).";
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 { IMetadataApplication } from "../../../metadata/IMetadataApplication";
8
+ import { Metadata } from "../../../metadata/Metadata";
9
+
10
+ import { IProject } from "../../IProject";
11
+
12
+ export namespace MetadataTransformer {
13
+ export function transform(
14
+ { checker }: IProject,
15
+ _modulo: ts.LeftHandSideExpression,
16
+ expression: ts.CallExpression,
17
+ ): ts.Expression {
18
+ if (!expression.typeArguments?.length)
19
+ throw new Error(NO_GENERIC_ARGUMENT);
20
+
21
+ // VALIDATE TUPLE ARGUMENTS
22
+ const top: ts.Node = expression.typeArguments[0]!;
23
+ if (!ts.isTupleTypeNode(top)) return expression;
24
+ else if (top.elements.some((child) => !ts.isTypeNode(child)))
25
+ return expression;
26
+
27
+ // GET TYPES
28
+ const types: ts.Type[] = top.elements.map((child) =>
29
+ checker.getTypeFromTypeNode(child as ts.TypeNode),
30
+ );
31
+ if (types.some((t) => t.isTypeParameter()))
32
+ throw new Error(GENERIC_ARGUMENT);
33
+
34
+ // METADATA
35
+ const collection: MetadataCollection = new MetadataCollection();
36
+ const metadatas: Array<Metadata> = types.map((type) =>
37
+ MetadataFactory.generate(checker, collection, type, {
38
+ resolve: false,
39
+ constant: true,
40
+ }),
41
+ );
42
+
43
+ // CONVERT TO PRIMITIVE TYPE
44
+ const app: IMetadataApplication = {
45
+ metadatas: metadatas.map((metadata) => metadata.toJSON()),
46
+ collection: collection.objects().map((obj) => obj.toJSON()),
47
+ };
48
+ return LiteralFactory.generate(app);
49
+ }
50
+ }
51
+
52
+ const NO_GENERIC_ARGUMENT = "Error on typia.metadata(): no generic argument.";
53
+ const GENERIC_ARGUMENT =
54
+ "Error on typia.metadata(): non-specified generic argument(s).";
@@ -1,9 +1,9 @@
1
- import { PruneProgrammer } from "../../../programmers/PruneProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace PruneTransformer {
6
- export const transform = GenericTransformer.scalar("prune")(
7
- (project, modulo) => PruneProgrammer.generate(project, modulo),
8
- );
9
- }
1
+ import { PruneProgrammer } from "../../../programmers/PruneProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace PruneTransformer {
6
+ export const transform = GenericTransformer.scalar("prune")(
7
+ (project, modulo) => PruneProgrammer.generate(project, modulo),
8
+ );
9
+ }
@@ -1,46 +1,46 @@
1
- import ts from "typescript";
2
-
3
- import { RandomProgrammer } from "../../../programmers/RandomProgrammer";
4
-
5
- import { IProject } from "../../IProject";
6
-
7
- export namespace RandomTransformer {
8
- export function transform(
9
- project: IProject,
10
- modulo: ts.LeftHandSideExpression,
11
- expression: ts.CallExpression,
12
- ): ts.Expression {
13
- // CHECK GENERIC ARGUMENT EXISTENCE
14
- if (!expression.typeArguments?.[0]) throw new Error(NOT_SPECIFIED);
15
-
16
- // GET TYPE INFO
17
- const node: ts.TypeNode = expression.typeArguments[0];
18
- const type: ts.Type = project.checker.getTypeFromTypeNode(node);
19
-
20
- if (type.isTypeParameter()) throw new Error(NO_GENERIC_ARGUMENT);
21
-
22
- // DO TRANSFORM
23
- return ts.factory.createCallExpression(
24
- RandomProgrammer.generate(
25
- {
26
- ...project,
27
- options: {
28
- ...project.options,
29
- functional: false,
30
- numeric: false,
31
- },
32
- },
33
- modulo,
34
- )(type, node.getFullText().trim()),
35
- undefined,
36
- expression.arguments.length
37
- ? [expression.arguments[0]!]
38
- : undefined,
39
- );
40
- }
41
- }
42
-
43
- const NOT_SPECIFIED =
44
- "Error on typia.random(): generic argument is not specified.";
45
- const NO_GENERIC_ARGUMENT =
46
- "Error on typia.random(): non-specified generic argument.";
1
+ import ts from "typescript";
2
+
3
+ import { RandomProgrammer } from "../../../programmers/RandomProgrammer";
4
+
5
+ import { IProject } from "../../IProject";
6
+
7
+ export namespace RandomTransformer {
8
+ export function transform(
9
+ project: IProject,
10
+ modulo: ts.LeftHandSideExpression,
11
+ expression: ts.CallExpression,
12
+ ): ts.Expression {
13
+ // CHECK GENERIC ARGUMENT EXISTENCE
14
+ if (!expression.typeArguments?.[0]) throw new Error(NOT_SPECIFIED);
15
+
16
+ // GET TYPE INFO
17
+ const node: ts.TypeNode = expression.typeArguments[0];
18
+ const type: ts.Type = project.checker.getTypeFromTypeNode(node);
19
+
20
+ if (type.isTypeParameter()) throw new Error(NO_GENERIC_ARGUMENT);
21
+
22
+ // DO TRANSFORM
23
+ return ts.factory.createCallExpression(
24
+ RandomProgrammer.generate(
25
+ {
26
+ ...project,
27
+ options: {
28
+ ...project.options,
29
+ functional: false,
30
+ numeric: false,
31
+ },
32
+ },
33
+ modulo,
34
+ )(type, node.getFullText().trim()),
35
+ undefined,
36
+ expression.arguments.length
37
+ ? [expression.arguments[0]!]
38
+ : undefined,
39
+ );
40
+ }
41
+ }
42
+
43
+ const NOT_SPECIFIED =
44
+ "Error on typia.random(): generic argument is not specified.";
45
+ const NO_GENERIC_ARGUMENT =
46
+ "Error on typia.random(): non-specified generic argument.";
@@ -1,9 +1,9 @@
1
- import { ValidateCloneProgrammer } from "../../../programmers/ValidateCloneProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace ValidateCloneTransformer {
6
- export const transform = GenericTransformer.scalar("validatClone")(
7
- (project, modulo) => ValidateCloneProgrammer.generate(project, modulo),
8
- );
9
- }
1
+ import { ValidateCloneProgrammer } from "../../../programmers/ValidateCloneProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace ValidateCloneTransformer {
6
+ export const transform = GenericTransformer.scalar("validatClone")(
7
+ (project, modulo) => ValidateCloneProgrammer.generate(project, modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { ValidatePruneProgrammer } from "../../../programmers/ValidatePruneProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace ValidatePruneTransformer {
6
- export const transform = GenericTransformer.scalar("validatPrune")(
7
- (project, modulo) => ValidatePruneProgrammer.generate(project, modulo),
8
- );
9
- }
1
+ import { ValidatePruneProgrammer } from "../../../programmers/ValidatePruneProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace ValidatePruneTransformer {
6
+ export const transform = GenericTransformer.scalar("validatPrune")(
7
+ (project, modulo) => ValidatePruneProgrammer.generate(project, modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { AssertParseProgrammer } from "../../../programmers/AssertParseProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace AssertParseTransformer {
6
- export const transform = GenericTransformer.scalar("assertParse")(
7
- (project, modulo) => AssertParseProgrammer.generate(project, modulo),
8
- );
9
- }
1
+ import { AssertParseProgrammer } from "../../../programmers/AssertParseProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace AssertParseTransformer {
6
+ export const transform = GenericTransformer.scalar("assertParse")(
7
+ (project, modulo) => AssertParseProgrammer.generate(project, modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { AssertParseProgrammer } from "../../../programmers/AssertParseProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace CreateAssertParseTransformer {
6
- export const transform = GenericTransformer.factory("createAssertParse")(
7
- (project, modulo) => AssertParseProgrammer.generate(project, modulo),
8
- );
9
- }
1
+ import { AssertParseProgrammer } from "../../../programmers/AssertParseProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace CreateAssertParseTransformer {
6
+ export const transform = GenericTransformer.factory("createAssertParse")(
7
+ (project, modulo) => AssertParseProgrammer.generate(project, modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { IsParseProgrammer } from "../../../programmers/IsParseProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace CreateIsParseTransformer {
6
- export const transform = GenericTransformer.factory("createIsParse")(
7
- (project, modulo) => IsParseProgrammer.generate(project, modulo),
8
- );
9
- }
1
+ import { IsParseProgrammer } from "../../../programmers/IsParseProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace CreateIsParseTransformer {
6
+ export const transform = GenericTransformer.factory("createIsParse")(
7
+ (project, modulo) => IsParseProgrammer.generate(project, modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { ValidateParseProgrammer } from "../../../programmers/ValidateParseProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace CreateValidateParseTransformer {
6
- export const transform = GenericTransformer.factory("createValidateParse")(
7
- (project, modulo) => ValidateParseProgrammer.generate(project, modulo),
8
- );
9
- }
1
+ import { ValidateParseProgrammer } from "../../../programmers/ValidateParseProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace CreateValidateParseTransformer {
6
+ export const transform = GenericTransformer.factory("createValidateParse")(
7
+ (project, modulo) => ValidateParseProgrammer.generate(project, modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { IsParseProgrammer } from "../../../programmers/IsParseProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace IsParseTransformer {
6
- export const transform = GenericTransformer.scalar("isParse")(
7
- (project, modulo) => IsParseProgrammer.generate(project, modulo),
8
- );
9
- }
1
+ import { IsParseProgrammer } from "../../../programmers/IsParseProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace IsParseTransformer {
6
+ export const transform = GenericTransformer.scalar("isParse")(
7
+ (project, modulo) => IsParseProgrammer.generate(project, modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { ValidateParseProgrammer } from "../../../programmers/ValidateParseProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace ValidateParseTransformer {
6
- export const transform = GenericTransformer.scalar("validatParse")(
7
- (project, modulo) => ValidateParseProgrammer.generate(project, modulo),
8
- );
9
- }
1
+ import { ValidateParseProgrammer } from "../../../programmers/ValidateParseProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace ValidateParseTransformer {
6
+ export const transform = GenericTransformer.scalar("validatParse")(
7
+ (project, modulo) => ValidateParseProgrammer.generate(project, modulo),
8
+ );
9
+ }
@@ -1,10 +1,10 @@
1
- import { AssertStringifyProgrammer } from "../../../programmers/AssertStringifyProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace AssertStringifyTransformer {
6
- export const transform = GenericTransformer.scalar("assertStringify")(
7
- (project, modulo) =>
8
- AssertStringifyProgrammer.generate(project, modulo),
9
- );
10
- }
1
+ import { AssertStringifyProgrammer } from "../../../programmers/AssertStringifyProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace AssertStringifyTransformer {
6
+ export const transform = GenericTransformer.scalar("assertStringify")(
7
+ (project, modulo) =>
8
+ AssertStringifyProgrammer.generate(project, modulo),
9
+ );
10
+ }
@@ -1,9 +1,9 @@
1
- import { AssertStringifyProgrammer } from "../../../programmers/AssertStringifyProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace CreateAssertStringifyTransformer {
6
- export const transform = GenericTransformer.factory(
7
- "createAssertStringify",
8
- )((project, modulo) => AssertStringifyProgrammer.generate(project, modulo));
9
- }
1
+ import { AssertStringifyProgrammer } from "../../../programmers/AssertStringifyProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace CreateAssertStringifyTransformer {
6
+ export const transform = GenericTransformer.factory(
7
+ "createAssertStringify",
8
+ )((project, modulo) => AssertStringifyProgrammer.generate(project, modulo));
9
+ }
@@ -1,9 +1,9 @@
1
- import { IsStringifyProgrammer } from "../../../programmers/IsStringifyProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace CreateIsStringifyTransformer {
6
- export const transform = GenericTransformer.factory("createIsStringify")(
7
- (project, modulo) => IsStringifyProgrammer.generate(project, modulo),
8
- );
9
- }
1
+ import { IsStringifyProgrammer } from "../../../programmers/IsStringifyProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace CreateIsStringifyTransformer {
6
+ export const transform = GenericTransformer.factory("createIsStringify")(
7
+ (project, modulo) => IsStringifyProgrammer.generate(project, modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { StringifyProgrammer } from "../../../programmers/StringifyProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace CreateStringifyTransformer {
6
- export const transform = GenericTransformer.factory("createStringify")(
7
- (project, modulo) => StringifyProgrammer.generate(project, modulo),
8
- );
9
- }
1
+ import { StringifyProgrammer } from "../../../programmers/StringifyProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace CreateStringifyTransformer {
6
+ export const transform = GenericTransformer.factory("createStringify")(
7
+ (project, modulo) => StringifyProgrammer.generate(project, modulo),
8
+ );
9
+ }
@@ -1,11 +1,11 @@
1
- import { ValidateStringifyProgrammer } from "../../../programmers/ValidateStringifyProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace CreateValidateStringifyTransformer {
6
- export const transform = GenericTransformer.factory(
7
- "createValidateStringify",
8
- )((project, modulo) =>
9
- ValidateStringifyProgrammer.generate(project, modulo),
10
- );
11
- }
1
+ import { ValidateStringifyProgrammer } from "../../../programmers/ValidateStringifyProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace CreateValidateStringifyTransformer {
6
+ export const transform = GenericTransformer.factory(
7
+ "createValidateStringify",
8
+ )((project, modulo) =>
9
+ ValidateStringifyProgrammer.generate(project, modulo),
10
+ );
11
+ }
@@ -1,9 +1,9 @@
1
- import { IsStringifyProgrammer } from "../../../programmers/IsStringifyProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace IsStringifyTransformer {
6
- export const transform = GenericTransformer.scalar("isStringify")(
7
- (project, modulo) => IsStringifyProgrammer.generate(project, modulo),
8
- );
9
- }
1
+ import { IsStringifyProgrammer } from "../../../programmers/IsStringifyProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace IsStringifyTransformer {
6
+ export const transform = GenericTransformer.scalar("isStringify")(
7
+ (project, modulo) => IsStringifyProgrammer.generate(project, modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { StringifyProgrammer } from "../../../programmers/StringifyProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace StringifyTransformer {
6
- export const transform = GenericTransformer.scalar("stringify")(
7
- (project, modulo) => StringifyProgrammer.generate(project, modulo),
8
- );
9
- }
1
+ import { StringifyProgrammer } from "../../../programmers/StringifyProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace StringifyTransformer {
6
+ export const transform = GenericTransformer.scalar("stringify")(
7
+ (project, modulo) => StringifyProgrammer.generate(project, modulo),
8
+ );
9
+ }
@@ -1,10 +1,10 @@
1
- import { ValidateStringifyProgrammer } from "../../../programmers/ValidateStringifyProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace ValidateStringifyTransformer {
6
- export const transform = GenericTransformer.scalar("validatStringify")(
7
- (project, modulo) =>
8
- ValidateStringifyProgrammer.generate(project, modulo),
9
- );
10
- }
1
+ import { ValidateStringifyProgrammer } from "../../../programmers/ValidateStringifyProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace ValidateStringifyTransformer {
6
+ export const transform = GenericTransformer.scalar("validatStringify")(
7
+ (project, modulo) =>
8
+ ValidateStringifyProgrammer.generate(project, modulo),
9
+ );
10
+ }
@@ -1,11 +1,11 @@
1
- import { AssertProgrammer } from "../../../programmers/AssertProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace AssertTransformer {
6
- export const transform = (equals: boolean) =>
7
- GenericTransformer.scalar(equals ? "assertEquals" : "assert")(
8
- (project, modulo) =>
9
- AssertProgrammer.generate(project, modulo, equals),
10
- );
11
- }
1
+ import { AssertProgrammer } from "../../../programmers/AssertProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace AssertTransformer {
6
+ export const transform = (equals: boolean) =>
7
+ GenericTransformer.scalar(equals ? "assertEquals" : "assert")(
8
+ (project, modulo) =>
9
+ AssertProgrammer.generate(project, modulo, equals),
10
+ );
11
+ }
@@ -1,12 +1,12 @@
1
- import { AssertProgrammer } from "../../../programmers/AssertProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace CreateAssertTransformer {
6
- export const transform = (equals: boolean) =>
7
- GenericTransformer.factory(
8
- equals ? "createAssertEquals" : "createAssert",
9
- )((project, modulo) =>
10
- AssertProgrammer.generate(project, modulo, equals),
11
- );
12
- }
1
+ import { AssertProgrammer } from "../../../programmers/AssertProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace CreateAssertTransformer {
6
+ export const transform = (equals: boolean) =>
7
+ GenericTransformer.factory(
8
+ equals ? "createAssertEquals" : "createAssert",
9
+ )((project, modulo) =>
10
+ AssertProgrammer.generate(project, modulo, equals),
11
+ );
12
+ }
@@ -1,10 +1,10 @@
1
- import { IsProgrammer } from "../../../programmers/IsProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace CreateIsTransformer {
6
- export const transform = (equals: boolean) =>
7
- GenericTransformer.factory(equals ? "createEquals" : "createIs")(
8
- (project, modulo) => IsProgrammer.generate(project, modulo, equals),
9
- );
10
- }
1
+ import { IsProgrammer } from "../../../programmers/IsProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace CreateIsTransformer {
6
+ export const transform = (equals: boolean) =>
7
+ GenericTransformer.factory(equals ? "createEquals" : "createIs")(
8
+ (project, modulo) => IsProgrammer.generate(project, modulo, equals),
9
+ );
10
+ }