typia 5.0.0-dev.20230726 → 5.0.0-dev.20230805

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 (228) hide show
  1. package/lib/factories/CommentFactory.d.ts +1 -1
  2. package/lib/factories/CommentFactory.js +113 -50
  3. package/lib/factories/CommentFactory.js.map +1 -1
  4. package/lib/factories/MetadataCollection.js.map +1 -1
  5. package/lib/functional/$string.js +16 -20
  6. package/lib/functional/$string.js.map +1 -1
  7. package/lib/programmers/internal/application_object.js +2 -0
  8. package/lib/programmers/internal/application_object.js.map +1 -1
  9. package/lib/schemas/metadata/Metadata.d.ts +1 -0
  10. package/lib/schemas/metadata/Metadata.js +3 -0
  11. package/lib/schemas/metadata/Metadata.js.map +1 -1
  12. package/package.json +3 -4
  13. package/src/factories/CommentFactory.ts +67 -47
  14. package/src/factories/MetadataCollection.ts +264 -255
  15. package/src/factories/MetadataFactory.ts +30 -30
  16. package/src/factories/MetadataTagFactory.ts +362 -362
  17. package/src/factories/ProtocolFactory.ts +80 -80
  18. package/src/factories/internal/metadata/MetadataHelper.ts +12 -12
  19. package/src/factories/internal/metadata/emend_metadata_atomics.ts +33 -33
  20. package/src/factories/internal/metadata/emplace_metadata_alias.ts +40 -40
  21. package/src/factories/internal/metadata/emplace_metadata_array.ts +34 -34
  22. package/src/factories/internal/metadata/emplace_metadata_object.ts +136 -136
  23. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +50 -50
  24. package/src/factories/internal/metadata/explore_metadata.ts +40 -40
  25. package/src/factories/internal/metadata/iterate_metadata.ts +81 -81
  26. package/src/factories/internal/metadata/iterate_metadata_alias.ts +30 -30
  27. package/src/factories/internal/metadata/iterate_metadata_array.ts +24 -24
  28. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +59 -59
  29. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
  30. package/src/factories/internal/metadata/iterate_metadata_collection.ts +133 -133
  31. package/src/factories/internal/metadata/iterate_metadata_constant.ts +58 -58
  32. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +83 -83
  33. package/src/factories/internal/metadata/iterate_metadata_map.ts +41 -41
  34. package/src/factories/internal/metadata/iterate_metadata_native.ts +219 -219
  35. package/src/factories/internal/metadata/iterate_metadata_object.ts +43 -43
  36. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +49 -49
  37. package/src/factories/internal/metadata/iterate_metadata_set.ts +33 -33
  38. package/src/factories/internal/metadata/iterate_metadata_sort.ts +69 -69
  39. package/src/factories/internal/metadata/iterate_metadata_tag.ts +31 -31
  40. package/src/factories/internal/metadata/iterate_metadata_template.ts +38 -38
  41. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +24 -24
  42. package/src/factories/internal/metadata/iterate_metadata_union.ts +24 -24
  43. package/src/factories/internal/protocols/ProtocolMetadataUtil.ts +180 -180
  44. package/src/factories/internal/protocols/emplace_protocol_object.ts +25 -25
  45. package/src/factories/internal/protocols/emplace_protocol_property.ts +12 -12
  46. package/src/factories/internal/protocols/iterate_protocol_atomic.ts +34 -34
  47. package/src/factories/internal/protocols/iterate_protocol_constant.ts +27 -27
  48. package/src/factories/internal/protocols/iterate_protocol_main.ts +19 -19
  49. package/src/factories/internal/protocols/iterate_protocol_map.ts +58 -58
  50. package/src/factories/internal/protocols/iterate_protocol_metadata.ts +96 -96
  51. package/src/factories/internal/protocols/iterate_protocol_native.ts +34 -34
  52. package/src/factories/internal/protocols/iterate_protocol_never.ts +1 -1
  53. package/src/factories/internal/protocols/iterate_protocol_object.ts +110 -110
  54. package/src/factories/internal/protocols/iterate_protocol_repeated.ts +34 -34
  55. package/src/factories/internal/protocols/iterate_protocol_tuple.ts +29 -29
  56. package/src/functional/$number.ts +13 -13
  57. package/src/functional/$proto_bytes.ts +25 -25
  58. package/src/functional/$proto_field.ts +30 -30
  59. package/src/functional/$proto_float.ts +37 -37
  60. package/src/functional/$proto_i32.ts +29 -29
  61. package/src/functional/$proto_i64.ts +37 -37
  62. package/src/functional/$proto_size.ts +82 -82
  63. package/src/functional/$proto_string.ts +24 -24
  64. package/src/functional/$string.ts +32 -19
  65. package/src/functional/$varint.ts +130 -130
  66. package/src/functional/$zigzag.ts +39 -39
  67. package/src/json.ts +648 -648
  68. package/src/misc.ts +651 -651
  69. package/src/module.ts +781 -781
  70. package/src/programmers/CheckerProgrammer.ts +1182 -1182
  71. package/src/programmers/FeatureProgrammer.ts +495 -495
  72. package/src/programmers/IsProgrammer.ts +239 -239
  73. package/src/programmers/IsPruneProgrammer.ts +73 -73
  74. package/src/programmers/RandomProgrammer.ts +581 -581
  75. package/src/programmers/helpers/AtomicPredicator.ts +31 -31
  76. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  77. package/src/programmers/helpers/PruneJoiner.ts +143 -143
  78. package/src/programmers/helpers/RandomJoiner.ts +173 -173
  79. package/src/programmers/helpers/RandomRanger.ts +216 -216
  80. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  81. package/src/programmers/helpers/UnionExplorer.ts +301 -301
  82. package/src/programmers/helpers/UnionPredicator.ts +81 -81
  83. package/src/programmers/internal/application_alias.ts +66 -66
  84. package/src/programmers/internal/application_array.ts +30 -30
  85. package/src/programmers/internal/application_constant.ts +26 -26
  86. package/src/programmers/internal/application_default.ts +17 -17
  87. package/src/programmers/internal/application_default_string.ts +33 -33
  88. package/src/programmers/internal/application_native.ts +39 -39
  89. package/src/programmers/internal/application_number.ts +77 -77
  90. package/src/programmers/internal/application_object.ts +165 -162
  91. package/src/programmers/internal/application_resolved.ts +55 -55
  92. package/src/programmers/internal/application_schema.ts +157 -157
  93. package/src/programmers/internal/application_string.ts +44 -44
  94. package/src/programmers/internal/application_templates.ts +25 -25
  95. package/src/programmers/internal/application_tuple.ts +57 -57
  96. package/src/programmers/internal/check_array.ts +30 -30
  97. package/src/programmers/internal/check_array_length.ts +35 -35
  98. package/src/programmers/internal/check_bigint.ts +82 -82
  99. package/src/programmers/internal/check_custom.ts +31 -31
  100. package/src/programmers/internal/check_number.ts +177 -177
  101. package/src/programmers/internal/check_string.ts +25 -25
  102. package/src/programmers/internal/check_string_tags.ts +67 -67
  103. package/src/programmers/internal/check_template.ts +56 -56
  104. package/src/programmers/internal/check_union_array_like.ts +329 -329
  105. package/src/programmers/internal/decode_union_object.ts +73 -73
  106. package/src/programmers/internal/feature_object_entries.ts +63 -63
  107. package/src/programmers/internal/get_comment_tags.ts +23 -23
  108. package/src/programmers/internal/metadata_to_pattern.ts +34 -34
  109. package/src/programmers/internal/prune_object_properties.ts +60 -60
  110. package/src/programmers/internal/random_custom.ts +29 -29
  111. package/src/programmers/internal/stringify_regular_properties.ts +83 -83
  112. package/src/programmers/internal/template_to_pattern.ts +15 -15
  113. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +16 -16
  114. package/src/programmers/json/JsonApplicationProgrammer.ts +47 -47
  115. package/src/programmers/json/JsonAssertParseProgrammer.ts +66 -66
  116. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +66 -66
  117. package/src/programmers/json/JsonIsParseProgrammer.ts +72 -72
  118. package/src/programmers/json/JsonIsStringifyProgrammer.ts +76 -76
  119. package/src/programmers/json/JsonStringifyProgrammer.ts +979 -979
  120. package/src/programmers/json/JsonValidateParseProgrammer.ts +70 -70
  121. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +84 -84
  122. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +71 -71
  123. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +68 -68
  124. package/src/programmers/misc/MiscCloneProgrammer.ts +587 -587
  125. package/src/programmers/misc/MiscIsCloneProgrammer.ts +78 -78
  126. package/src/programmers/misc/MiscLiteralsProgrammer.ts +63 -63
  127. package/src/programmers/misc/MiscPruneProgrammer.ts +542 -542
  128. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +85 -85
  129. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +78 -78
  130. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +69 -69
  131. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +66 -66
  132. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +38 -38
  133. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +36 -36
  134. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +75 -75
  135. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +76 -76
  136. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +125 -125
  137. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +83 -83
  138. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +86 -86
  139. package/src/protobuf.ts +210 -210
  140. package/src/schemas/json/IJsonApplication.ts +8 -8
  141. package/src/schemas/json/IJsonComponents.ts +33 -33
  142. package/src/schemas/json/IJsonSchema.ts +133 -133
  143. package/src/schemas/metadata/ICommentTag.ts +4 -4
  144. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  145. package/src/schemas/metadata/IMetadata.ts +28 -28
  146. package/src/schemas/metadata/IMetadataAlias.ts +14 -14
  147. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  148. package/src/schemas/metadata/IMetadataArray.ts +10 -10
  149. package/src/schemas/metadata/IMetadataCollection.ts +11 -11
  150. package/src/schemas/metadata/IMetadataConstant.ts +16 -16
  151. package/src/schemas/metadata/IMetadataDictionary.ts +14 -14
  152. package/src/schemas/metadata/IMetadataEntry.ts +6 -6
  153. package/src/schemas/metadata/IMetadataObject.ts +18 -18
  154. package/src/schemas/metadata/IMetadataProperty.ts +11 -11
  155. package/src/schemas/metadata/IMetadataResolved.ts +6 -6
  156. package/src/schemas/metadata/IMetadataTag.ts +113 -113
  157. package/src/schemas/metadata/IMetadataTuple.ts +10 -10
  158. package/src/schemas/metadata/Metadata.ts +610 -608
  159. package/src/schemas/metadata/MetadataAlias.ts +66 -66
  160. package/src/schemas/metadata/MetadataArray.ts +55 -55
  161. package/src/schemas/metadata/MetadataConstant.ts +3 -3
  162. package/src/schemas/metadata/MetadataObject.ts +129 -129
  163. package/src/schemas/metadata/MetadataProperty.ts +64 -64
  164. package/src/schemas/metadata/MetadataResolved.ts +51 -51
  165. package/src/schemas/metadata/MetadataTuple.ts +53 -53
  166. package/src/schemas/protobuf/IProtocolMap.ts +5 -5
  167. package/src/schemas/protobuf/IProtocolMessage.ts +6 -6
  168. package/src/schemas/protobuf/IProtocolProperty.ts +13 -13
  169. package/src/transformers/CallExpressionTransformer.ts +240 -240
  170. package/src/transformers/features/AssertTransformer.ts +11 -11
  171. package/src/transformers/features/CreateAssertTransformer.ts +13 -13
  172. package/src/transformers/features/CreateIsTransformer.ts +11 -11
  173. package/src/transformers/features/CreateRandomTransformer.ts +39 -39
  174. package/src/transformers/features/CreateValidateTransformer.ts +13 -13
  175. package/src/transformers/features/IsTransformer.ts +11 -11
  176. package/src/transformers/features/RandomTransformer.ts +42 -42
  177. package/src/transformers/features/ValidateTransformer.ts +11 -11
  178. package/src/transformers/features/json/JsonApplicationTransformer.ts +102 -102
  179. package/src/transformers/features/json/JsonAssertParseTransformer.ts +10 -10
  180. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +10 -10
  181. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +10 -10
  182. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +12 -12
  183. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +9 -9
  184. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +10 -10
  185. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +9 -9
  186. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +10 -10
  187. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +12 -12
  188. package/src/transformers/features/json/JsonIsParseTransformer.ts +9 -9
  189. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +10 -10
  190. package/src/transformers/features/json/JsonStringifyTransformer.ts +9 -9
  191. package/src/transformers/features/json/JsonValidateParseTransformer.ts +10 -10
  192. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +10 -10
  193. package/src/transformers/features/misc/MetadataTransformer.ts +53 -53
  194. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +10 -10
  195. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +10 -10
  196. package/src/transformers/features/misc/MiscCloneTransformer.ts +9 -9
  197. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +10 -10
  198. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +10 -10
  199. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +9 -9
  200. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +9 -9
  201. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +9 -9
  202. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +9 -9
  203. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +10 -10
  204. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +10 -10
  205. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +9 -9
  206. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +9 -9
  207. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +28 -28
  208. package/src/transformers/features/misc/MiscPruneTransformer.ts +9 -9
  209. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +10 -10
  210. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +10 -10
  211. package/src/transformers/features/protobuf/CreateProtobufAssertDecodeTransformer.ts +10 -10
  212. package/src/transformers/features/protobuf/CreateProtobufAssertEncodeTransformer.ts +10 -10
  213. package/src/transformers/features/protobuf/CreateProtobufDecodeTransformer.ts +10 -10
  214. package/src/transformers/features/protobuf/CreateProtobufEncodeTransformer.ts +10 -10
  215. package/src/transformers/features/protobuf/CreateProtobufIsDecodeTransformer.ts +10 -10
  216. package/src/transformers/features/protobuf/CreateProtobufIsEncodeTransformer.ts +10 -10
  217. package/src/transformers/features/protobuf/CreateProtobufValidateDecodeTransformer.ts +10 -10
  218. package/src/transformers/features/protobuf/CreateProtobufValidateEncodeTransformer.ts +10 -10
  219. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +10 -10
  220. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +10 -10
  221. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +10 -10
  222. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +10 -10
  223. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +10 -10
  224. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +10 -10
  225. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +31 -31
  226. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +10 -10
  227. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +10 -10
  228. package/src/utils/NameEncoder.ts +32 -32
@@ -1,10 +1,10 @@
1
- import { JsonValidateParseProgrammer } from "../../../programmers/json/JsonValidateParseProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace JsonValidateParseTransformer {
6
- export const transform = GenericTransformer.scalar("validatParse")(
7
- (project) => (modulo) =>
8
- JsonValidateParseProgrammer.write(project)(modulo),
9
- );
10
- }
1
+ import { JsonValidateParseProgrammer } from "../../../programmers/json/JsonValidateParseProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace JsonValidateParseTransformer {
6
+ export const transform = GenericTransformer.scalar("validatParse")(
7
+ (project) => (modulo) =>
8
+ JsonValidateParseProgrammer.write(project)(modulo),
9
+ );
10
+ }
@@ -1,10 +1,10 @@
1
- import { JsonValidateStringifyProgrammer } from "../../../programmers/json/JsonValidateStringifyProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace JsonValidateStringifyTransformer {
6
- export const transform = GenericTransformer.scalar("validatStringify")(
7
- (project) => (modulo) =>
8
- JsonValidateStringifyProgrammer.write(project)(modulo),
9
- );
10
- }
1
+ import { JsonValidateStringifyProgrammer } from "../../../programmers/json/JsonValidateStringifyProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace JsonValidateStringifyTransformer {
6
+ export const transform = GenericTransformer.scalar("validatStringify")(
7
+ (project) => (modulo) =>
8
+ JsonValidateStringifyProgrammer.write(project)(modulo),
9
+ );
10
+ }
@@ -1,53 +1,53 @@
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 "../../../schemas/metadata/IMetadataApplication";
8
- import { Metadata } from "../../../schemas/metadata/Metadata";
9
-
10
- import { IProject } from "../../IProject";
11
-
12
- export namespace MetadataTransformer {
13
- export const transform =
14
- ({ checker }: IProject) =>
15
- (expression: ts.CallExpression): ts.Expression => {
16
- if (!expression.typeArguments?.length)
17
- throw new Error(NO_GENERIC_ARGUMENT);
18
-
19
- // VALIDATE TUPLE ARGUMENTS
20
- const top: ts.Node = expression.typeArguments[0]!;
21
- if (!ts.isTupleTypeNode(top)) return expression;
22
- else if (top.elements.some((child) => !ts.isTypeNode(child)))
23
- return expression;
24
-
25
- // GET TYPES
26
- const types: ts.Type[] = top.elements.map((child) =>
27
- checker.getTypeFromTypeNode(child as ts.TypeNode),
28
- );
29
- if (types.some((t) => t.isTypeParameter()))
30
- throw new Error(GENERIC_ARGUMENT);
31
-
32
- // METADATA
33
- const collection: MetadataCollection = new MetadataCollection();
34
- const metadatas: Array<Metadata> = types.map((type) =>
35
- MetadataFactory.analyze(checker)({
36
- resolve: true,
37
- constant: true,
38
- absorb: true,
39
- })(collection)(type),
40
- );
41
-
42
- // CONVERT TO PRIMITIVE TYPE
43
- const app: IMetadataApplication = {
44
- metadatas: metadatas.map((metadata) => metadata.toJSON()),
45
- collection: collection.toJSON(),
46
- };
47
- return LiteralFactory.generate(app);
48
- };
49
- }
50
-
51
- const NO_GENERIC_ARGUMENT = "Error on typia.metadata(): no generic argument.";
52
- const GENERIC_ARGUMENT =
53
- "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 "../../../schemas/metadata/IMetadataApplication";
8
+ import { Metadata } from "../../../schemas/metadata/Metadata";
9
+
10
+ import { IProject } from "../../IProject";
11
+
12
+ export namespace MetadataTransformer {
13
+ export const transform =
14
+ ({ checker }: IProject) =>
15
+ (expression: ts.CallExpression): ts.Expression => {
16
+ if (!expression.typeArguments?.length)
17
+ throw new Error(NO_GENERIC_ARGUMENT);
18
+
19
+ // VALIDATE TUPLE ARGUMENTS
20
+ const top: ts.Node = expression.typeArguments[0]!;
21
+ if (!ts.isTupleTypeNode(top)) return expression;
22
+ else if (top.elements.some((child) => !ts.isTypeNode(child)))
23
+ return expression;
24
+
25
+ // GET TYPES
26
+ const types: ts.Type[] = top.elements.map((child) =>
27
+ checker.getTypeFromTypeNode(child as ts.TypeNode),
28
+ );
29
+ if (types.some((t) => t.isTypeParameter()))
30
+ throw new Error(GENERIC_ARGUMENT);
31
+
32
+ // METADATA
33
+ const collection: MetadataCollection = new MetadataCollection();
34
+ const metadatas: Array<Metadata> = types.map((type) =>
35
+ MetadataFactory.analyze(checker)({
36
+ resolve: true,
37
+ constant: true,
38
+ absorb: true,
39
+ })(collection)(type),
40
+ );
41
+
42
+ // CONVERT TO PRIMITIVE TYPE
43
+ const app: IMetadataApplication = {
44
+ metadatas: metadatas.map((metadata) => metadata.toJSON()),
45
+ collection: collection.toJSON(),
46
+ };
47
+ return LiteralFactory.generate(app);
48
+ };
49
+ }
50
+
51
+ const NO_GENERIC_ARGUMENT = "Error on typia.metadata(): no generic argument.";
52
+ const GENERIC_ARGUMENT =
53
+ "Error on typia.metadata(): non-specified generic argument(s).";
@@ -1,10 +1,10 @@
1
- import { MiscAssertCloneProgrammer } from "../../../programmers/misc/MiscAssertCloneProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace MiscAssertCloneTransformer {
6
- export const transform = GenericTransformer.scalar("assertClone")(
7
- (project) => (modulo) =>
8
- MiscAssertCloneProgrammer.write(project)(modulo),
9
- );
10
- }
1
+ import { MiscAssertCloneProgrammer } from "../../../programmers/misc/MiscAssertCloneProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace MiscAssertCloneTransformer {
6
+ export const transform = GenericTransformer.scalar("assertClone")(
7
+ (project) => (modulo) =>
8
+ MiscAssertCloneProgrammer.write(project)(modulo),
9
+ );
10
+ }
@@ -1,10 +1,10 @@
1
- import { MiscAssertPruneProgrammer } from "../../../programmers/misc/MiscAssertPruneProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace MiscAssertPruneTransformer {
6
- export const transform = GenericTransformer.scalar("assertPrune")(
7
- (project) => (modulo) =>
8
- MiscAssertPruneProgrammer.write(project)(modulo),
9
- );
10
- }
1
+ import { MiscAssertPruneProgrammer } from "../../../programmers/misc/MiscAssertPruneProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace MiscAssertPruneTransformer {
6
+ export const transform = GenericTransformer.scalar("assertPrune")(
7
+ (project) => (modulo) =>
8
+ MiscAssertPruneProgrammer.write(project)(modulo),
9
+ );
10
+ }
@@ -1,9 +1,9 @@
1
- import { MiscCloneProgrammer } from "../../../programmers/misc/MiscCloneProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace MiscCloneTransformer {
6
- export const transform = GenericTransformer.scalar("clone")(
7
- (project) => (modulo) => MiscCloneProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { MiscCloneProgrammer } from "../../../programmers/misc/MiscCloneProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace MiscCloneTransformer {
6
+ export const transform = GenericTransformer.scalar("clone")(
7
+ (project) => (modulo) => MiscCloneProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,10 +1,10 @@
1
- import { MiscAssertCloneProgrammer } from "../../../programmers/misc/MiscAssertCloneProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace MiscCreateAssertCloneTransformer {
6
- export const transform = GenericTransformer.factory("createAssertClone")(
7
- (project) => (modulo) =>
8
- MiscAssertCloneProgrammer.write(project)(modulo),
9
- );
10
- }
1
+ import { MiscAssertCloneProgrammer } from "../../../programmers/misc/MiscAssertCloneProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace MiscCreateAssertCloneTransformer {
6
+ export const transform = GenericTransformer.factory("createAssertClone")(
7
+ (project) => (modulo) =>
8
+ MiscAssertCloneProgrammer.write(project)(modulo),
9
+ );
10
+ }
@@ -1,10 +1,10 @@
1
- import { MiscAssertPruneProgrammer } from "../../../programmers/misc/MiscAssertPruneProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace MiscCreateAssertPruneTransformer {
6
- export const transform = GenericTransformer.factory("createAssertPrune")(
7
- (project) => (modulo) =>
8
- MiscAssertPruneProgrammer.write(project)(modulo),
9
- );
10
- }
1
+ import { MiscAssertPruneProgrammer } from "../../../programmers/misc/MiscAssertPruneProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace MiscCreateAssertPruneTransformer {
6
+ export const transform = GenericTransformer.factory("createAssertPrune")(
7
+ (project) => (modulo) =>
8
+ MiscAssertPruneProgrammer.write(project)(modulo),
9
+ );
10
+ }
@@ -1,9 +1,9 @@
1
- import { MiscCloneProgrammer } from "../../../programmers/misc/MiscCloneProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace MiscCreateCloneTransformer {
6
- export const transform = GenericTransformer.factory("createClone")(
7
- (project) => (modulo) => MiscCloneProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { MiscCloneProgrammer } from "../../../programmers/misc/MiscCloneProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace MiscCreateCloneTransformer {
6
+ export const transform = GenericTransformer.factory("createClone")(
7
+ (project) => (modulo) => MiscCloneProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { MiscIsCloneProgrammer } from "../../../programmers/misc/MiscIsCloneProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace MiscCreateIsCloneTransformer {
6
- export const transform = GenericTransformer.factory("createIsClone")(
7
- (project) => (modulo) => MiscIsCloneProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { MiscIsCloneProgrammer } from "../../../programmers/misc/MiscIsCloneProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace MiscCreateIsCloneTransformer {
6
+ export const transform = GenericTransformer.factory("createIsClone")(
7
+ (project) => (modulo) => MiscIsCloneProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { IsPruneProgrammer } from "../../../programmers/IsPruneProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace MiscCreateIsPruneTransformer {
6
- export const transform = GenericTransformer.factory("createIsPrune")(
7
- (project) => (modulo) => IsPruneProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { IsPruneProgrammer } from "../../../programmers/IsPruneProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace MiscCreateIsPruneTransformer {
6
+ export const transform = GenericTransformer.factory("createIsPrune")(
7
+ (project) => (modulo) => IsPruneProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { MiscPruneProgrammer } from "../../../programmers/misc/MiscPruneProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace MiscCreatePruneTransformer {
6
- export const transform = GenericTransformer.factory("createPrune")(
7
- (project) => (modulo) => MiscPruneProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { MiscPruneProgrammer } from "../../../programmers/misc/MiscPruneProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace MiscCreatePruneTransformer {
6
+ export const transform = GenericTransformer.factory("createPrune")(
7
+ (project) => (modulo) => MiscPruneProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,10 +1,10 @@
1
- import { MiscValidateCloneProgrammer } from "../../../programmers/misc/MiscValidateCloneProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace MiscCreateValidateCloneTransformer {
6
- export const transform = GenericTransformer.factory("createValidateClone")(
7
- (project) => (modulo) =>
8
- MiscValidateCloneProgrammer.write(project)(modulo),
9
- );
10
- }
1
+ import { MiscValidateCloneProgrammer } from "../../../programmers/misc/MiscValidateCloneProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace MiscCreateValidateCloneTransformer {
6
+ export const transform = GenericTransformer.factory("createValidateClone")(
7
+ (project) => (modulo) =>
8
+ MiscValidateCloneProgrammer.write(project)(modulo),
9
+ );
10
+ }
@@ -1,10 +1,10 @@
1
- import { MiscValidatePruneProgrammer } from "../../../programmers/misc/MiscValidatePruneProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace MiscCreateValidatePruneTransformer {
6
- export const transform = GenericTransformer.factory("createValidatePrune")(
7
- (project) => (modulo) =>
8
- MiscValidatePruneProgrammer.write(project)(modulo),
9
- );
10
- }
1
+ import { MiscValidatePruneProgrammer } from "../../../programmers/misc/MiscValidatePruneProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace MiscCreateValidatePruneTransformer {
6
+ export const transform = GenericTransformer.factory("createValidatePrune")(
7
+ (project) => (modulo) =>
8
+ MiscValidatePruneProgrammer.write(project)(modulo),
9
+ );
10
+ }
@@ -1,9 +1,9 @@
1
- import { MiscIsCloneProgrammer } from "../../../programmers/misc/MiscIsCloneProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace MiscIsCloneTransformer {
6
- export const transform = GenericTransformer.scalar("isClone")(
7
- (project) => (modulo) => MiscIsCloneProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { MiscIsCloneProgrammer } from "../../../programmers/misc/MiscIsCloneProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace MiscIsCloneTransformer {
6
+ export const transform = GenericTransformer.scalar("isClone")(
7
+ (project) => (modulo) => MiscIsCloneProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { IsPruneProgrammer } from "../../../programmers/IsPruneProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace MiscIsPruneTransformer {
6
- export const transform = GenericTransformer.scalar("isPrune")(
7
- (project) => (modulo) => IsPruneProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { IsPruneProgrammer } from "../../../programmers/IsPruneProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace MiscIsPruneTransformer {
6
+ export const transform = GenericTransformer.scalar("isPrune")(
7
+ (project) => (modulo) => IsPruneProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,28 +1,28 @@
1
- import ts from "typescript";
2
-
3
- import { MiscLiteralsProgrammer } from "../../../programmers/misc/MiscLiteralsProgrammer";
4
-
5
- import { IProject } from "../../IProject";
6
-
7
- export namespace MiscLiteralsTransformer {
8
- export const transform =
9
- (project: IProject) =>
10
- (expression: ts.CallExpression): ts.Expression => {
11
- // CHECK GENERIC ARGUMENT EXISTENCE
12
- if (!expression.typeArguments?.[0]) throw new Error(NOT_SPECIFIED);
13
-
14
- // GET TYPE INFO
15
- const node: ts.TypeNode = expression.typeArguments[0];
16
- const type: ts.Type = project.checker.getTypeFromTypeNode(node);
17
-
18
- if (type.isTypeParameter()) throw new Error(NO_GENERIC_ARGUMENT);
19
-
20
- // DO TRANSFORM
21
- return MiscLiteralsProgrammer.write(project)(type);
22
- };
23
- }
24
-
25
- const NOT_SPECIFIED =
26
- "Error on typia.literals(): generic argument is not specified.";
27
- const NO_GENERIC_ARGUMENT =
28
- "Error on typia.literals(): non-specified generic argument.";
1
+ import ts from "typescript";
2
+
3
+ import { MiscLiteralsProgrammer } from "../../../programmers/misc/MiscLiteralsProgrammer";
4
+
5
+ import { IProject } from "../../IProject";
6
+
7
+ export namespace MiscLiteralsTransformer {
8
+ export const transform =
9
+ (project: IProject) =>
10
+ (expression: ts.CallExpression): ts.Expression => {
11
+ // CHECK GENERIC ARGUMENT EXISTENCE
12
+ if (!expression.typeArguments?.[0]) throw new Error(NOT_SPECIFIED);
13
+
14
+ // GET TYPE INFO
15
+ const node: ts.TypeNode = expression.typeArguments[0];
16
+ const type: ts.Type = project.checker.getTypeFromTypeNode(node);
17
+
18
+ if (type.isTypeParameter()) throw new Error(NO_GENERIC_ARGUMENT);
19
+
20
+ // DO TRANSFORM
21
+ return MiscLiteralsProgrammer.write(project)(type);
22
+ };
23
+ }
24
+
25
+ const NOT_SPECIFIED =
26
+ "Error on typia.literals(): generic argument is not specified.";
27
+ const NO_GENERIC_ARGUMENT =
28
+ "Error on typia.literals(): non-specified generic argument.";
@@ -1,9 +1,9 @@
1
- import { MiscPruneProgrammer } from "../../../programmers/misc/MiscPruneProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace MiscPruneTransformer {
6
- export const transform = GenericTransformer.scalar("prune")(
7
- (project) => (modulo) => MiscPruneProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { MiscPruneProgrammer } from "../../../programmers/misc/MiscPruneProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace MiscPruneTransformer {
6
+ export const transform = GenericTransformer.scalar("prune")(
7
+ (project) => (modulo) => MiscPruneProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,10 +1,10 @@
1
- import { MiscValidateCloneProgrammer } from "../../../programmers/misc/MiscValidateCloneProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace MiscValidateCloneTransformer {
6
- export const transform = GenericTransformer.scalar("validatClone")(
7
- (project) => (modulo) =>
8
- MiscValidateCloneProgrammer.write(project)(modulo),
9
- );
10
- }
1
+ import { MiscValidateCloneProgrammer } from "../../../programmers/misc/MiscValidateCloneProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace MiscValidateCloneTransformer {
6
+ export const transform = GenericTransformer.scalar("validatClone")(
7
+ (project) => (modulo) =>
8
+ MiscValidateCloneProgrammer.write(project)(modulo),
9
+ );
10
+ }
@@ -1,10 +1,10 @@
1
- import { MiscValidatePruneProgrammer } from "../../../programmers/misc/MiscValidatePruneProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace MiscValidatePruneTransformer {
6
- export const transform = GenericTransformer.scalar("validatPrune")(
7
- (project) => (modulo) =>
8
- MiscValidatePruneProgrammer.write(project)(modulo),
9
- );
10
- }
1
+ import { MiscValidatePruneProgrammer } from "../../../programmers/misc/MiscValidatePruneProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace MiscValidatePruneTransformer {
6
+ export const transform = GenericTransformer.scalar("validatPrune")(
7
+ (project) => (modulo) =>
8
+ MiscValidatePruneProgrammer.write(project)(modulo),
9
+ );
10
+ }
@@ -1,10 +1,10 @@
1
- import { ProtobufAssertDecodeProgrammer } from "../../../programmers/protobuf/ProtobufAssertDecodeProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace CreateProtobufAssertDecodeTransformer {
6
- export const transform = GenericTransformer.factory("createAssertDecode")(
7
- (project) => (modulo) =>
8
- ProtobufAssertDecodeProgrammer.write(project)(modulo),
9
- );
10
- }
1
+ import { ProtobufAssertDecodeProgrammer } from "../../../programmers/protobuf/ProtobufAssertDecodeProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace CreateProtobufAssertDecodeTransformer {
6
+ export const transform = GenericTransformer.factory("createAssertDecode")(
7
+ (project) => (modulo) =>
8
+ ProtobufAssertDecodeProgrammer.write(project)(modulo),
9
+ );
10
+ }
@@ -1,10 +1,10 @@
1
- import { ProtobufAssertEncodeProgrammer } from "../../../programmers/protobuf/ProtobufAssertEncodeProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace CreateProtobufAssertEncodeTransformer {
6
- export const transform = GenericTransformer.factory("createAssertEncode")(
7
- (project) => (modulo) =>
8
- ProtobufAssertEncodeProgrammer.write(project)(modulo),
9
- );
10
- }
1
+ import { ProtobufAssertEncodeProgrammer } from "../../../programmers/protobuf/ProtobufAssertEncodeProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace CreateProtobufAssertEncodeTransformer {
6
+ export const transform = GenericTransformer.factory("createAssertEncode")(
7
+ (project) => (modulo) =>
8
+ ProtobufAssertEncodeProgrammer.write(project)(modulo),
9
+ );
10
+ }
@@ -1,10 +1,10 @@
1
- import { ProtobufDecodeProgrammer } from "../../../programmers/protobuf/ProtobufDecodeProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace CreateProtobufDecodeTransformer {
6
- export const transform = GenericTransformer.factory("createDecode")(
7
- (project) => (modulo) =>
8
- ProtobufDecodeProgrammer.write(project)(modulo),
9
- );
10
- }
1
+ import { ProtobufDecodeProgrammer } from "../../../programmers/protobuf/ProtobufDecodeProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace CreateProtobufDecodeTransformer {
6
+ export const transform = GenericTransformer.factory("createDecode")(
7
+ (project) => (modulo) =>
8
+ ProtobufDecodeProgrammer.write(project)(modulo),
9
+ );
10
+ }
@@ -1,10 +1,10 @@
1
- import { ProtobufEncodeProgrammer } from "../../../programmers/protobuf/ProtobufEncodeProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace CreateProtobufEncodeTransformer {
6
- export const transform = GenericTransformer.factory("createEncode")(
7
- (project) => (modulo) =>
8
- ProtobufEncodeProgrammer.write(project)(modulo),
9
- );
10
- }
1
+ import { ProtobufEncodeProgrammer } from "../../../programmers/protobuf/ProtobufEncodeProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace CreateProtobufEncodeTransformer {
6
+ export const transform = GenericTransformer.factory("createEncode")(
7
+ (project) => (modulo) =>
8
+ ProtobufEncodeProgrammer.write(project)(modulo),
9
+ );
10
+ }