typia 3.6.8 → 3.6.10

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