typia 5.0.0-dev.20230730 → 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 (227) hide show
  1. package/lib/factories/CommentFactory.d.ts +1 -1
  2. package/lib/factories/CommentFactory.js +31 -28
  3. package/lib/factories/CommentFactory.js.map +1 -1
  4. package/lib/functional/$string.js +16 -20
  5. package/lib/functional/$string.js.map +1 -1
  6. package/lib/programmers/internal/application_object.js +2 -0
  7. package/lib/programmers/internal/application_object.js.map +1 -1
  8. package/lib/schemas/metadata/Metadata.d.ts +1 -0
  9. package/lib/schemas/metadata/Metadata.js +3 -0
  10. package/lib/schemas/metadata/Metadata.js.map +1 -1
  11. package/package.json +2 -2
  12. package/src/factories/CommentFactory.ts +84 -76
  13. package/src/factories/MetadataCollection.ts +264 -264
  14. package/src/factories/MetadataFactory.ts +30 -30
  15. package/src/factories/MetadataTagFactory.ts +362 -362
  16. package/src/factories/ProtocolFactory.ts +80 -80
  17. package/src/factories/internal/metadata/MetadataHelper.ts +12 -12
  18. package/src/factories/internal/metadata/emend_metadata_atomics.ts +33 -33
  19. package/src/factories/internal/metadata/emplace_metadata_alias.ts +40 -40
  20. package/src/factories/internal/metadata/emplace_metadata_array.ts +34 -34
  21. package/src/factories/internal/metadata/emplace_metadata_object.ts +136 -136
  22. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +50 -50
  23. package/src/factories/internal/metadata/explore_metadata.ts +40 -40
  24. package/src/factories/internal/metadata/iterate_metadata.ts +81 -81
  25. package/src/factories/internal/metadata/iterate_metadata_alias.ts +30 -30
  26. package/src/factories/internal/metadata/iterate_metadata_array.ts +24 -24
  27. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +59 -59
  28. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
  29. package/src/factories/internal/metadata/iterate_metadata_collection.ts +133 -133
  30. package/src/factories/internal/metadata/iterate_metadata_constant.ts +58 -58
  31. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +83 -83
  32. package/src/factories/internal/metadata/iterate_metadata_map.ts +41 -41
  33. package/src/factories/internal/metadata/iterate_metadata_native.ts +219 -219
  34. package/src/factories/internal/metadata/iterate_metadata_object.ts +43 -43
  35. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +49 -49
  36. package/src/factories/internal/metadata/iterate_metadata_set.ts +33 -33
  37. package/src/factories/internal/metadata/iterate_metadata_sort.ts +69 -69
  38. package/src/factories/internal/metadata/iterate_metadata_tag.ts +31 -31
  39. package/src/factories/internal/metadata/iterate_metadata_template.ts +38 -38
  40. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +24 -24
  41. package/src/factories/internal/metadata/iterate_metadata_union.ts +24 -24
  42. package/src/factories/internal/protocols/ProtocolMetadataUtil.ts +180 -180
  43. package/src/factories/internal/protocols/emplace_protocol_object.ts +25 -25
  44. package/src/factories/internal/protocols/emplace_protocol_property.ts +12 -12
  45. package/src/factories/internal/protocols/iterate_protocol_atomic.ts +34 -34
  46. package/src/factories/internal/protocols/iterate_protocol_constant.ts +27 -27
  47. package/src/factories/internal/protocols/iterate_protocol_main.ts +19 -19
  48. package/src/factories/internal/protocols/iterate_protocol_map.ts +58 -58
  49. package/src/factories/internal/protocols/iterate_protocol_metadata.ts +96 -96
  50. package/src/factories/internal/protocols/iterate_protocol_native.ts +34 -34
  51. package/src/factories/internal/protocols/iterate_protocol_never.ts +1 -1
  52. package/src/factories/internal/protocols/iterate_protocol_object.ts +110 -110
  53. package/src/factories/internal/protocols/iterate_protocol_repeated.ts +34 -34
  54. package/src/factories/internal/protocols/iterate_protocol_tuple.ts +29 -29
  55. package/src/functional/$number.ts +13 -13
  56. package/src/functional/$proto_bytes.ts +25 -25
  57. package/src/functional/$proto_field.ts +30 -30
  58. package/src/functional/$proto_float.ts +37 -37
  59. package/src/functional/$proto_i32.ts +29 -29
  60. package/src/functional/$proto_i64.ts +37 -37
  61. package/src/functional/$proto_size.ts +82 -82
  62. package/src/functional/$proto_string.ts +24 -24
  63. package/src/functional/$string.ts +32 -19
  64. package/src/functional/$varint.ts +130 -130
  65. package/src/functional/$zigzag.ts +39 -39
  66. package/src/json.ts +648 -648
  67. package/src/misc.ts +651 -651
  68. package/src/module.ts +781 -781
  69. package/src/programmers/CheckerProgrammer.ts +1182 -1182
  70. package/src/programmers/FeatureProgrammer.ts +495 -495
  71. package/src/programmers/IsProgrammer.ts +239 -239
  72. package/src/programmers/IsPruneProgrammer.ts +73 -73
  73. package/src/programmers/RandomProgrammer.ts +581 -581
  74. package/src/programmers/helpers/AtomicPredicator.ts +31 -31
  75. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  76. package/src/programmers/helpers/PruneJoiner.ts +143 -143
  77. package/src/programmers/helpers/RandomJoiner.ts +173 -173
  78. package/src/programmers/helpers/RandomRanger.ts +216 -216
  79. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  80. package/src/programmers/helpers/UnionExplorer.ts +301 -301
  81. package/src/programmers/helpers/UnionPredicator.ts +81 -81
  82. package/src/programmers/internal/application_alias.ts +66 -66
  83. package/src/programmers/internal/application_array.ts +30 -30
  84. package/src/programmers/internal/application_constant.ts +26 -26
  85. package/src/programmers/internal/application_default.ts +17 -17
  86. package/src/programmers/internal/application_default_string.ts +33 -33
  87. package/src/programmers/internal/application_native.ts +39 -39
  88. package/src/programmers/internal/application_number.ts +77 -77
  89. package/src/programmers/internal/application_object.ts +165 -162
  90. package/src/programmers/internal/application_resolved.ts +55 -55
  91. package/src/programmers/internal/application_schema.ts +157 -157
  92. package/src/programmers/internal/application_string.ts +44 -44
  93. package/src/programmers/internal/application_templates.ts +25 -25
  94. package/src/programmers/internal/application_tuple.ts +57 -57
  95. package/src/programmers/internal/check_array.ts +30 -30
  96. package/src/programmers/internal/check_array_length.ts +35 -35
  97. package/src/programmers/internal/check_bigint.ts +82 -82
  98. package/src/programmers/internal/check_custom.ts +31 -31
  99. package/src/programmers/internal/check_number.ts +177 -177
  100. package/src/programmers/internal/check_string.ts +25 -25
  101. package/src/programmers/internal/check_string_tags.ts +67 -67
  102. package/src/programmers/internal/check_template.ts +56 -56
  103. package/src/programmers/internal/check_union_array_like.ts +329 -329
  104. package/src/programmers/internal/decode_union_object.ts +73 -73
  105. package/src/programmers/internal/feature_object_entries.ts +63 -63
  106. package/src/programmers/internal/get_comment_tags.ts +23 -23
  107. package/src/programmers/internal/metadata_to_pattern.ts +34 -34
  108. package/src/programmers/internal/prune_object_properties.ts +60 -60
  109. package/src/programmers/internal/random_custom.ts +29 -29
  110. package/src/programmers/internal/stringify_regular_properties.ts +83 -83
  111. package/src/programmers/internal/template_to_pattern.ts +15 -15
  112. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +16 -16
  113. package/src/programmers/json/JsonApplicationProgrammer.ts +47 -47
  114. package/src/programmers/json/JsonAssertParseProgrammer.ts +66 -66
  115. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +66 -66
  116. package/src/programmers/json/JsonIsParseProgrammer.ts +72 -72
  117. package/src/programmers/json/JsonIsStringifyProgrammer.ts +76 -76
  118. package/src/programmers/json/JsonStringifyProgrammer.ts +979 -979
  119. package/src/programmers/json/JsonValidateParseProgrammer.ts +70 -70
  120. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +84 -84
  121. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +71 -71
  122. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +68 -68
  123. package/src/programmers/misc/MiscCloneProgrammer.ts +587 -587
  124. package/src/programmers/misc/MiscIsCloneProgrammer.ts +78 -78
  125. package/src/programmers/misc/MiscLiteralsProgrammer.ts +63 -63
  126. package/src/programmers/misc/MiscPruneProgrammer.ts +542 -542
  127. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +85 -85
  128. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +78 -78
  129. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +69 -69
  130. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +66 -66
  131. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +38 -38
  132. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +36 -36
  133. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +75 -75
  134. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +76 -76
  135. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +125 -125
  136. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +83 -83
  137. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +86 -86
  138. package/src/protobuf.ts +210 -210
  139. package/src/schemas/json/IJsonApplication.ts +8 -8
  140. package/src/schemas/json/IJsonComponents.ts +33 -33
  141. package/src/schemas/json/IJsonSchema.ts +133 -133
  142. package/src/schemas/metadata/ICommentTag.ts +4 -4
  143. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  144. package/src/schemas/metadata/IMetadata.ts +28 -28
  145. package/src/schemas/metadata/IMetadataAlias.ts +14 -14
  146. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  147. package/src/schemas/metadata/IMetadataArray.ts +10 -10
  148. package/src/schemas/metadata/IMetadataCollection.ts +11 -11
  149. package/src/schemas/metadata/IMetadataConstant.ts +16 -16
  150. package/src/schemas/metadata/IMetadataDictionary.ts +14 -14
  151. package/src/schemas/metadata/IMetadataEntry.ts +6 -6
  152. package/src/schemas/metadata/IMetadataObject.ts +18 -18
  153. package/src/schemas/metadata/IMetadataProperty.ts +11 -11
  154. package/src/schemas/metadata/IMetadataResolved.ts +6 -6
  155. package/src/schemas/metadata/IMetadataTag.ts +113 -113
  156. package/src/schemas/metadata/IMetadataTuple.ts +10 -10
  157. package/src/schemas/metadata/Metadata.ts +610 -608
  158. package/src/schemas/metadata/MetadataAlias.ts +66 -66
  159. package/src/schemas/metadata/MetadataArray.ts +55 -55
  160. package/src/schemas/metadata/MetadataConstant.ts +3 -3
  161. package/src/schemas/metadata/MetadataObject.ts +129 -129
  162. package/src/schemas/metadata/MetadataProperty.ts +64 -64
  163. package/src/schemas/metadata/MetadataResolved.ts +51 -51
  164. package/src/schemas/metadata/MetadataTuple.ts +53 -53
  165. package/src/schemas/protobuf/IProtocolMap.ts +5 -5
  166. package/src/schemas/protobuf/IProtocolMessage.ts +6 -6
  167. package/src/schemas/protobuf/IProtocolProperty.ts +13 -13
  168. package/src/transformers/CallExpressionTransformer.ts +240 -240
  169. package/src/transformers/features/AssertTransformer.ts +11 -11
  170. package/src/transformers/features/CreateAssertTransformer.ts +13 -13
  171. package/src/transformers/features/CreateIsTransformer.ts +11 -11
  172. package/src/transformers/features/CreateRandomTransformer.ts +39 -39
  173. package/src/transformers/features/CreateValidateTransformer.ts +13 -13
  174. package/src/transformers/features/IsTransformer.ts +11 -11
  175. package/src/transformers/features/RandomTransformer.ts +42 -42
  176. package/src/transformers/features/ValidateTransformer.ts +11 -11
  177. package/src/transformers/features/json/JsonApplicationTransformer.ts +102 -102
  178. package/src/transformers/features/json/JsonAssertParseTransformer.ts +10 -10
  179. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +10 -10
  180. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +10 -10
  181. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +12 -12
  182. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +9 -9
  183. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +10 -10
  184. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +9 -9
  185. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +10 -10
  186. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +12 -12
  187. package/src/transformers/features/json/JsonIsParseTransformer.ts +9 -9
  188. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +10 -10
  189. package/src/transformers/features/json/JsonStringifyTransformer.ts +9 -9
  190. package/src/transformers/features/json/JsonValidateParseTransformer.ts +10 -10
  191. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +10 -10
  192. package/src/transformers/features/misc/MetadataTransformer.ts +53 -53
  193. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +10 -10
  194. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +10 -10
  195. package/src/transformers/features/misc/MiscCloneTransformer.ts +9 -9
  196. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +10 -10
  197. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +10 -10
  198. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +9 -9
  199. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +9 -9
  200. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +9 -9
  201. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +9 -9
  202. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +10 -10
  203. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +10 -10
  204. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +9 -9
  205. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +9 -9
  206. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +28 -28
  207. package/src/transformers/features/misc/MiscPruneTransformer.ts +9 -9
  208. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +10 -10
  209. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +10 -10
  210. package/src/transformers/features/protobuf/CreateProtobufAssertDecodeTransformer.ts +10 -10
  211. package/src/transformers/features/protobuf/CreateProtobufAssertEncodeTransformer.ts +10 -10
  212. package/src/transformers/features/protobuf/CreateProtobufDecodeTransformer.ts +10 -10
  213. package/src/transformers/features/protobuf/CreateProtobufEncodeTransformer.ts +10 -10
  214. package/src/transformers/features/protobuf/CreateProtobufIsDecodeTransformer.ts +10 -10
  215. package/src/transformers/features/protobuf/CreateProtobufIsEncodeTransformer.ts +10 -10
  216. package/src/transformers/features/protobuf/CreateProtobufValidateDecodeTransformer.ts +10 -10
  217. package/src/transformers/features/protobuf/CreateProtobufValidateEncodeTransformer.ts +10 -10
  218. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +10 -10
  219. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +10 -10
  220. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +10 -10
  221. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +10 -10
  222. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +10 -10
  223. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +10 -10
  224. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +31 -31
  225. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +10 -10
  226. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +10 -10
  227. package/src/utils/NameEncoder.ts +32 -32
@@ -1,80 +1,80 @@
1
- import ts from "typescript";
2
-
3
- import { Metadata } from "../schemas/metadata/Metadata";
4
- import { IProtocolMessage } from "../schemas/protobuf/IProtocolMessage";
5
-
6
- import { MetadataCollection } from "./MetadataCollection";
7
- import { MetadataFactory } from "./MetadataFactory";
8
- import { emplace_protocol_object } from "./internal/protocols/emplace_protocol_object";
9
- import { iterate_protocol_main } from "./internal/protocols/iterate_protocol_main";
10
-
11
- export namespace ProtocolFactory {
12
- export const metadata =
13
- (checker: ts.TypeChecker) =>
14
- (collection: MetadataCollection) =>
15
- (type: ts.Type) =>
16
- MetadataFactory.analyze(checker)({
17
- resolve: false,
18
- constant: true,
19
- absorb: true,
20
- validate: (meta) => {
21
- if (meta.any) throw new Error(ErrorMessages.NO_ANY);
22
- else if (meta.functional && meta.size() !== 1)
23
- throw new Error(ErrorMessages.NO_FUNCTIONAL);
24
- else if (meta.objects.find((o) => o.name === "__Main"))
25
- throw new Error(ErrorMessages.NO_MAIN);
26
- else if (meta.objects.find((o) => o.name === "__Timestamp"))
27
- throw new Error(ErrorMessages.NO_TIMESTAMP);
28
- else if (
29
- meta.objects.some((o) =>
30
- o.properties.some((p) => !is_atomic_key(p.key)),
31
- ) ||
32
- meta.maps.some((m) => !is_atomic_key(m.key))
33
- )
34
- throw new Error(ErrorMessages.NOT_ALLOWED_KEY);
35
- },
36
- })(collection)(type);
37
-
38
- export const analyze =
39
- (collection: MetadataCollection) =>
40
- (dict: Map<string, IProtocolMessage>) =>
41
- (meta: Metadata) => {
42
- // EMPLACE OBJECTS
43
- for (const obj of collection.objects())
44
- emplace_protocol_object(dict)(obj);
45
-
46
- // WHEN NOT OBJECT, WRAP IT INTO A FAKE MAIN OBJECT
47
- iterate_protocol_main(dict)(meta);
48
- };
49
-
50
- const is_atomic_key = (key: Metadata) => {
51
- if (
52
- key.required &&
53
- key.nullable === false &&
54
- key.functional === false &&
55
- key.resolved === null &&
56
- key.size() ===
57
- key.atomics.length +
58
- key.constants
59
- .map((c) => c.values.length)
60
- .reduce((a, b) => a + b, 0) +
61
- key.templates.length
62
- ) {
63
- const set: Set<string> = new Set();
64
- for (const atomic of key.atomics) set.add(atomic);
65
- for (const constant of key.constants) set.add(constant.type);
66
- if (key.templates.length) set.add("string");
67
-
68
- return set.size === 1;
69
- }
70
- return false;
71
- };
72
- }
73
-
74
- const enum ErrorMessages {
75
- NO_ANY = `Error on typia.message(): any type is not supported in protocol buffer.`,
76
- NO_FUNCTIONAL = `Error on typia.message(): functional type is not supported in protocol buffer.`,
77
- NO_MAIN = `Error on typia.message(): reserved type "__Main" has been detected.`,
78
- NO_TIMESTAMP = `Error on typia.message(): reserved type "__Timestamp" has been detected.`,
79
- NOT_ALLOWED_KEY = `Error on typia.message(): only atomic key type is supported in protocol buffer.`,
80
- }
1
+ import ts from "typescript";
2
+
3
+ import { Metadata } from "../schemas/metadata/Metadata";
4
+ import { IProtocolMessage } from "../schemas/protobuf/IProtocolMessage";
5
+
6
+ import { MetadataCollection } from "./MetadataCollection";
7
+ import { MetadataFactory } from "./MetadataFactory";
8
+ import { emplace_protocol_object } from "./internal/protocols/emplace_protocol_object";
9
+ import { iterate_protocol_main } from "./internal/protocols/iterate_protocol_main";
10
+
11
+ export namespace ProtocolFactory {
12
+ export const metadata =
13
+ (checker: ts.TypeChecker) =>
14
+ (collection: MetadataCollection) =>
15
+ (type: ts.Type) =>
16
+ MetadataFactory.analyze(checker)({
17
+ resolve: false,
18
+ constant: true,
19
+ absorb: true,
20
+ validate: (meta) => {
21
+ if (meta.any) throw new Error(ErrorMessages.NO_ANY);
22
+ else if (meta.functional && meta.size() !== 1)
23
+ throw new Error(ErrorMessages.NO_FUNCTIONAL);
24
+ else if (meta.objects.find((o) => o.name === "__Main"))
25
+ throw new Error(ErrorMessages.NO_MAIN);
26
+ else if (meta.objects.find((o) => o.name === "__Timestamp"))
27
+ throw new Error(ErrorMessages.NO_TIMESTAMP);
28
+ else if (
29
+ meta.objects.some((o) =>
30
+ o.properties.some((p) => !is_atomic_key(p.key)),
31
+ ) ||
32
+ meta.maps.some((m) => !is_atomic_key(m.key))
33
+ )
34
+ throw new Error(ErrorMessages.NOT_ALLOWED_KEY);
35
+ },
36
+ })(collection)(type);
37
+
38
+ export const analyze =
39
+ (collection: MetadataCollection) =>
40
+ (dict: Map<string, IProtocolMessage>) =>
41
+ (meta: Metadata) => {
42
+ // EMPLACE OBJECTS
43
+ for (const obj of collection.objects())
44
+ emplace_protocol_object(dict)(obj);
45
+
46
+ // WHEN NOT OBJECT, WRAP IT INTO A FAKE MAIN OBJECT
47
+ iterate_protocol_main(dict)(meta);
48
+ };
49
+
50
+ const is_atomic_key = (key: Metadata) => {
51
+ if (
52
+ key.required &&
53
+ key.nullable === false &&
54
+ key.functional === false &&
55
+ key.resolved === null &&
56
+ key.size() ===
57
+ key.atomics.length +
58
+ key.constants
59
+ .map((c) => c.values.length)
60
+ .reduce((a, b) => a + b, 0) +
61
+ key.templates.length
62
+ ) {
63
+ const set: Set<string> = new Set();
64
+ for (const atomic of key.atomics) set.add(atomic);
65
+ for (const constant of key.constants) set.add(constant.type);
66
+ if (key.templates.length) set.add("string");
67
+
68
+ return set.size === 1;
69
+ }
70
+ return false;
71
+ };
72
+ }
73
+
74
+ const enum ErrorMessages {
75
+ NO_ANY = `Error on typia.message(): any type is not supported in protocol buffer.`,
76
+ NO_FUNCTIONAL = `Error on typia.message(): functional type is not supported in protocol buffer.`,
77
+ NO_MAIN = `Error on typia.message(): reserved type "__Main" has been detected.`,
78
+ NO_TIMESTAMP = `Error on typia.message(): reserved type "__Timestamp" has been detected.`,
79
+ NOT_ALLOWED_KEY = `Error on typia.message(): only atomic key type is supported in protocol buffer.`,
80
+ }
@@ -1,12 +1,12 @@
1
- import { Metadata } from "../../../schemas/metadata/Metadata";
2
-
3
- export namespace MetadataHelper {
4
- export const literal_to_metadata = (key: string): Metadata => {
5
- const metadata: Metadata = Metadata.initialize();
6
- metadata.constants.push({
7
- type: "string",
8
- values: [key],
9
- });
10
- return metadata;
11
- };
12
- }
1
+ import { Metadata } from "../../../schemas/metadata/Metadata";
2
+
3
+ export namespace MetadataHelper {
4
+ export const literal_to_metadata = (key: string): Metadata => {
5
+ const metadata: Metadata = Metadata.initialize();
6
+ metadata.constants.push({
7
+ type: "string",
8
+ values: [key],
9
+ });
10
+ return metadata;
11
+ };
12
+ }
@@ -1,33 +1,33 @@
1
- import { Metadata } from "../../../schemas/metadata/Metadata";
2
-
3
- import { ArrayUtil } from "../../../utils/ArrayUtil";
4
-
5
- export const emend_metadata_atomics = (meta: Metadata) => {
6
- // ATOMICS
7
- for (const type of meta.atomics) {
8
- const index: number = meta.constants.findIndex((c) => c.type === type);
9
- if (index !== -1) meta.constants.splice(index, 1);
10
- }
11
-
12
- // BOOLEAN
13
- {
14
- const index: number = meta.constants.findIndex(
15
- (c) => c.type === "boolean",
16
- );
17
- if (index !== -1 && meta.constants[index]!.values.length === 2) {
18
- meta.constants.splice(index, 1);
19
- ArrayUtil.take(
20
- meta.atomics,
21
- (type) => type === "boolean",
22
- () => "boolean",
23
- );
24
- }
25
- }
26
-
27
- // TEMPLATE
28
- if (
29
- meta.templates.length &&
30
- meta.atomics.find((type) => type === "string") !== undefined
31
- )
32
- meta.templates.splice(0, meta.templates.length);
33
- };
1
+ import { Metadata } from "../../../schemas/metadata/Metadata";
2
+
3
+ import { ArrayUtil } from "../../../utils/ArrayUtil";
4
+
5
+ export const emend_metadata_atomics = (meta: Metadata) => {
6
+ // ATOMICS
7
+ for (const type of meta.atomics) {
8
+ const index: number = meta.constants.findIndex((c) => c.type === type);
9
+ if (index !== -1) meta.constants.splice(index, 1);
10
+ }
11
+
12
+ // BOOLEAN
13
+ {
14
+ const index: number = meta.constants.findIndex(
15
+ (c) => c.type === "boolean",
16
+ );
17
+ if (index !== -1 && meta.constants[index]!.values.length === 2) {
18
+ meta.constants.splice(index, 1);
19
+ ArrayUtil.take(
20
+ meta.atomics,
21
+ (type) => type === "boolean",
22
+ () => "boolean",
23
+ );
24
+ }
25
+ }
26
+
27
+ // TEMPLATE
28
+ if (
29
+ meta.templates.length &&
30
+ meta.atomics.find((type) => type === "string") !== undefined
31
+ )
32
+ meta.templates.splice(0, meta.templates.length);
33
+ };
@@ -1,40 +1,40 @@
1
- import ts from "typescript";
2
-
3
- import { Metadata } from "../../../schemas/metadata/Metadata";
4
- import { MetadataAlias } from "../../../schemas/metadata/MetadataAlias";
5
-
6
- import { ArrayUtil } from "../../../utils/ArrayUtil";
7
-
8
- import { MetadataCollection } from "../../MetadataCollection";
9
- import { MetadataFactory } from "../../MetadataFactory";
10
- import { MetadataTagFactory } from "../../MetadataTagFactory";
11
- import { explore_metadata } from "./explore_metadata";
12
-
13
- export const emplace_metadata_alias =
14
- (checker: ts.TypeChecker) =>
15
- (options: MetadataFactory.IOptions) =>
16
- (collection: MetadataCollection) =>
17
- (type: ts.Type, nullable: boolean): MetadataAlias => {
18
- // CHECK EXISTENCE
19
- const [alias, newbie, closure] = collection.emplaceAlias(
20
- checker,
21
- type,
22
- type.aliasSymbol!,
23
- );
24
- ArrayUtil.add(alias.nullables, nullable);
25
- if (newbie === false) return alias;
26
-
27
- // CONSTRUCT VALUE TYPE
28
- const value: Metadata = explore_metadata(checker)(options)(collection)(
29
- type,
30
- false,
31
- true,
32
- );
33
- closure(value);
34
- alias.tags.push(
35
- ...MetadataTagFactory.generate(value)(alias.jsDocTags)(
36
- () => alias.name,
37
- ),
38
- );
39
- return alias;
40
- };
1
+ import ts from "typescript";
2
+
3
+ import { Metadata } from "../../../schemas/metadata/Metadata";
4
+ import { MetadataAlias } from "../../../schemas/metadata/MetadataAlias";
5
+
6
+ import { ArrayUtil } from "../../../utils/ArrayUtil";
7
+
8
+ import { MetadataCollection } from "../../MetadataCollection";
9
+ import { MetadataFactory } from "../../MetadataFactory";
10
+ import { MetadataTagFactory } from "../../MetadataTagFactory";
11
+ import { explore_metadata } from "./explore_metadata";
12
+
13
+ export const emplace_metadata_alias =
14
+ (checker: ts.TypeChecker) =>
15
+ (options: MetadataFactory.IOptions) =>
16
+ (collection: MetadataCollection) =>
17
+ (type: ts.Type, nullable: boolean): MetadataAlias => {
18
+ // CHECK EXISTENCE
19
+ const [alias, newbie, closure] = collection.emplaceAlias(
20
+ checker,
21
+ type,
22
+ type.aliasSymbol!,
23
+ );
24
+ ArrayUtil.add(alias.nullables, nullable);
25
+ if (newbie === false) return alias;
26
+
27
+ // CONSTRUCT VALUE TYPE
28
+ const value: Metadata = explore_metadata(checker)(options)(collection)(
29
+ type,
30
+ false,
31
+ true,
32
+ );
33
+ closure(value);
34
+ alias.tags.push(
35
+ ...MetadataTagFactory.generate(value)(alias.jsDocTags)(
36
+ () => alias.name,
37
+ ),
38
+ );
39
+ return alias;
40
+ };
@@ -1,34 +1,34 @@
1
- import ts from "typescript";
2
-
3
- import { Metadata } from "../../../schemas/metadata/Metadata";
4
- import { MetadataArray } from "../../../schemas/metadata/MetadataArray";
5
-
6
- import { ArrayUtil } from "../../../utils/ArrayUtil";
7
-
8
- import { MetadataCollection } from "../../MetadataCollection";
9
- import { MetadataFactory } from "../../MetadataFactory";
10
- import { explore_metadata } from "./explore_metadata";
11
-
12
- export const emplace_metadata_array =
13
- (checker: ts.TypeChecker) =>
14
- (options: MetadataFactory.IOptions) =>
15
- (collection: MetadataCollection) =>
16
- (type: ts.Type, nullable: boolean): MetadataArray => {
17
- // CHECK EXISTENCE
18
- const [array, newbie, setValue] = collection.emplaceArray(
19
- checker,
20
- type,
21
- );
22
- ArrayUtil.add(array.nullables, nullable);
23
- if (newbie === false) return array;
24
-
25
- // CONSTRUCT VALUE TYPE
26
- const value: Metadata = explore_metadata(checker)(options)(collection)(
27
- type.getNumberIndexType()!,
28
- false,
29
- false,
30
- );
31
- setValue(value);
32
-
33
- return array;
34
- };
1
+ import ts from "typescript";
2
+
3
+ import { Metadata } from "../../../schemas/metadata/Metadata";
4
+ import { MetadataArray } from "../../../schemas/metadata/MetadataArray";
5
+
6
+ import { ArrayUtil } from "../../../utils/ArrayUtil";
7
+
8
+ import { MetadataCollection } from "../../MetadataCollection";
9
+ import { MetadataFactory } from "../../MetadataFactory";
10
+ import { explore_metadata } from "./explore_metadata";
11
+
12
+ export const emplace_metadata_array =
13
+ (checker: ts.TypeChecker) =>
14
+ (options: MetadataFactory.IOptions) =>
15
+ (collection: MetadataCollection) =>
16
+ (type: ts.Type, nullable: boolean): MetadataArray => {
17
+ // CHECK EXISTENCE
18
+ const [array, newbie, setValue] = collection.emplaceArray(
19
+ checker,
20
+ type,
21
+ );
22
+ ArrayUtil.add(array.nullables, nullable);
23
+ if (newbie === false) return array;
24
+
25
+ // CONSTRUCT VALUE TYPE
26
+ const value: Metadata = explore_metadata(checker)(options)(collection)(
27
+ type.getNumberIndexType()!,
28
+ false,
29
+ false,
30
+ );
31
+ setValue(value);
32
+
33
+ return array;
34
+ };