typia 4.3.2 → 4.3.3

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 (241) hide show
  1. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +2 -0
  2. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  3. package/lib/programmers/helpers/CloneJoiner.js +10 -2
  4. package/lib/programmers/helpers/CloneJoiner.js.map +1 -1
  5. package/lib/programmers/internal/check_dynamic_properties.js +1 -1
  6. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  7. package/package.json +2 -2
  8. package/src/CustomValidatorMap.ts +126 -126
  9. package/src/IRandomGenerator.ts +34 -34
  10. package/src/IValidation.ts +21 -21
  11. package/src/Primitive.ts +131 -131
  12. package/src/TypeGuardError.ts +36 -36
  13. package/src/executable/TypiaGenerateWizard.ts +85 -85
  14. package/src/executable/TypiaSetupWizard.ts +153 -153
  15. package/src/executable/setup/ArgumentParser.ts +45 -45
  16. package/src/executable/setup/CommandExecutor.ts +8 -8
  17. package/src/executable/setup/FileRetriever.ts +22 -22
  18. package/src/executable/setup/PackageManager.ts +71 -71
  19. package/src/executable/setup/PluginConfigurator.ts +70 -70
  20. package/src/executable/typia.ts +52 -52
  21. package/src/factories/CommentFactory.ts +84 -84
  22. package/src/factories/ExpressionFactory.ts +77 -77
  23. package/src/factories/IdentifierFactory.ts +59 -59
  24. package/src/factories/LiteralFactory.ts +39 -39
  25. package/src/factories/MetadataCollection.ts +269 -269
  26. package/src/factories/MetadataFactory.ts +34 -34
  27. package/src/factories/MetadataTagFactory.ts +361 -361
  28. package/src/factories/StatementFactory.ts +24 -24
  29. package/src/factories/TemplateFactory.ts +58 -58
  30. package/src/factories/TypeFactory.ts +124 -124
  31. package/src/factories/ValueFactory.ts +12 -12
  32. package/src/factories/internal/metadata/MetadataHelper.ts +12 -12
  33. package/src/factories/internal/metadata/emend_metadata_atomics.ts +33 -33
  34. package/src/factories/internal/metadata/emplace_metadata_alias.ts +40 -40
  35. package/src/factories/internal/metadata/emplace_metadata_array.ts +34 -34
  36. package/src/factories/internal/metadata/emplace_metadata_object.ts +136 -136
  37. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +50 -50
  38. package/src/factories/internal/metadata/explore_metadata.ts +38 -38
  39. package/src/factories/internal/metadata/iterate_metadata.ts +81 -81
  40. package/src/factories/internal/metadata/iterate_metadata_alias.ts +30 -30
  41. package/src/factories/internal/metadata/iterate_metadata_array.ts +24 -24
  42. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +59 -59
  43. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
  44. package/src/factories/internal/metadata/iterate_metadata_collection.ts +133 -133
  45. package/src/factories/internal/metadata/iterate_metadata_constant.ts +58 -58
  46. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +88 -84
  47. package/src/factories/internal/metadata/iterate_metadata_map.ts +41 -41
  48. package/src/factories/internal/metadata/iterate_metadata_native.ts +219 -219
  49. package/src/factories/internal/metadata/iterate_metadata_object.ts +43 -43
  50. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +49 -49
  51. package/src/factories/internal/metadata/iterate_metadata_set.ts +33 -33
  52. package/src/factories/internal/metadata/iterate_metadata_sort.ts +69 -69
  53. package/src/factories/internal/metadata/iterate_metadata_tag.ts +31 -31
  54. package/src/factories/internal/metadata/iterate_metadata_template.ts +38 -38
  55. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +24 -24
  56. package/src/factories/internal/metadata/iterate_metadata_union.ts +24 -24
  57. package/src/functional/$any.ts +2 -2
  58. package/src/functional/$dictionary.ts +25 -25
  59. package/src/functional/$every.ts +11 -11
  60. package/src/functional/$guard.ts +35 -35
  61. package/src/functional/$is_between.ts +2 -2
  62. package/src/functional/$is_custom.ts +14 -14
  63. package/src/functional/$is_date.ts +3 -3
  64. package/src/functional/$is_datetime.ts +2 -2
  65. package/src/functional/$is_email.ts +4 -4
  66. package/src/functional/$is_ipv4.ts +4 -4
  67. package/src/functional/$is_ipv6.ts +4 -4
  68. package/src/functional/$is_url.ts +4 -4
  69. package/src/functional/$is_uuid.ts +4 -4
  70. package/src/functional/$join.ts +46 -46
  71. package/src/functional/$number.ts +12 -12
  72. package/src/functional/$report.ts +15 -15
  73. package/src/functional/$rest.ts +3 -3
  74. package/src/functional/$string.ts +50 -50
  75. package/src/functional/$tail.ts +5 -5
  76. package/src/functional/Namespace.ts +127 -127
  77. package/src/index.ts +4 -4
  78. package/src/metadata/ICommentTag.ts +4 -4
  79. package/src/metadata/IJsDocTagInfo.ts +10 -10
  80. package/src/metadata/IMetadata.ts +28 -28
  81. package/src/metadata/IMetadataAlias.ts +14 -14
  82. package/src/metadata/IMetadataApplication.ts +7 -7
  83. package/src/metadata/IMetadataArray.ts +10 -10
  84. package/src/metadata/IMetadataCollection.ts +11 -11
  85. package/src/metadata/IMetadataConstant.ts +16 -16
  86. package/src/metadata/IMetadataDictionary.ts +14 -14
  87. package/src/metadata/IMetadataEntry.ts +6 -6
  88. package/src/metadata/IMetadataObject.ts +18 -18
  89. package/src/metadata/IMetadataProperty.ts +11 -11
  90. package/src/metadata/IMetadataResolved.ts +6 -6
  91. package/src/metadata/IMetadataTag.ts +112 -112
  92. package/src/metadata/IMetadataTuple.ts +10 -10
  93. package/src/metadata/Metadata.ts +607 -607
  94. package/src/metadata/MetadataAlias.ts +66 -66
  95. package/src/metadata/MetadataArray.ts +55 -55
  96. package/src/metadata/MetadataConstant.ts +3 -3
  97. package/src/metadata/MetadataObject.ts +129 -129
  98. package/src/metadata/MetadataProperty.ts +64 -64
  99. package/src/metadata/MetadataResolved.ts +51 -51
  100. package/src/metadata/MetadataTuple.ts +58 -58
  101. package/src/module.ts +2038 -2038
  102. package/src/programmers/ApplicationProgrammer.ts +47 -47
  103. package/src/programmers/AssertCloneProgrammer.ts +71 -71
  104. package/src/programmers/AssertParseProgrammer.ts +66 -66
  105. package/src/programmers/AssertProgrammer.ts +279 -279
  106. package/src/programmers/AssertPruneProgrammer.ts +68 -68
  107. package/src/programmers/AssertStringifyProgrammer.ts +66 -66
  108. package/src/programmers/CheckerProgrammer.ts +1173 -1173
  109. package/src/programmers/CloneProgrammer.ts +587 -587
  110. package/src/programmers/FeatureProgrammer.ts +495 -495
  111. package/src/programmers/IsCloneProgrammer.ts +78 -78
  112. package/src/programmers/IsParseProgrammer.ts +72 -72
  113. package/src/programmers/IsProgrammer.ts +239 -239
  114. package/src/programmers/IsPruneProgrammer.ts +73 -73
  115. package/src/programmers/IsStringifyProgrammer.ts +76 -76
  116. package/src/programmers/LiteralsProgrammer.ts +64 -64
  117. package/src/programmers/PruneProgrammer.ts +542 -542
  118. package/src/programmers/RandomProgrammer.ts +578 -578
  119. package/src/programmers/StringifyProgrammer.ts +986 -986
  120. package/src/programmers/TypiaProgrammer.ts +129 -129
  121. package/src/programmers/ValidateCloneProgrammer.ts +85 -85
  122. package/src/programmers/ValidateParseProgrammer.ts +70 -70
  123. package/src/programmers/ValidateProgrammer.ts +305 -305
  124. package/src/programmers/ValidatePruneProgrammer.ts +78 -78
  125. package/src/programmers/ValidateStringifyProgrammer.ts +84 -84
  126. package/src/programmers/helpers/AtomicPredicator.ts +31 -31
  127. package/src/programmers/helpers/CloneJoiner.ts +168 -131
  128. package/src/programmers/helpers/FunctionImporeter.ts +78 -78
  129. package/src/programmers/helpers/ICheckEntry.ts +12 -12
  130. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  131. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  132. package/src/programmers/helpers/PruneJoiner.ts +143 -143
  133. package/src/programmers/helpers/RandomJoiner.ts +173 -173
  134. package/src/programmers/helpers/RandomRanger.ts +208 -208
  135. package/src/programmers/helpers/StringifyJoinder.ts +113 -113
  136. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  137. package/src/programmers/helpers/UnionExplorer.ts +305 -305
  138. package/src/programmers/helpers/UnionPredicator.ts +81 -81
  139. package/src/programmers/helpers/disable_function_importer_declare.ts +26 -26
  140. package/src/programmers/internal/JSON_SCHEMA_PREFIX.ts +1 -1
  141. package/src/programmers/internal/application_alias.ts +66 -66
  142. package/src/programmers/internal/application_array.ts +30 -30
  143. package/src/programmers/internal/application_boolean.ts +15 -15
  144. package/src/programmers/internal/application_constant.ts +26 -26
  145. package/src/programmers/internal/application_default.ts +17 -17
  146. package/src/programmers/internal/application_default_string.ts +33 -33
  147. package/src/programmers/internal/application_native.ts +39 -39
  148. package/src/programmers/internal/application_number.ts +80 -80
  149. package/src/programmers/internal/application_object.ts +165 -165
  150. package/src/programmers/internal/application_resolved.ts +55 -55
  151. package/src/programmers/internal/application_schema.ts +157 -157
  152. package/src/programmers/internal/application_string.ts +44 -44
  153. package/src/programmers/internal/application_templates.ts +25 -25
  154. package/src/programmers/internal/application_tuple.ts +57 -57
  155. package/src/programmers/internal/check_array.ts +30 -30
  156. package/src/programmers/internal/check_array_length.ts +35 -35
  157. package/src/programmers/internal/check_bigint.ts +110 -110
  158. package/src/programmers/internal/check_custom.ts +31 -31
  159. package/src/programmers/internal/check_dynamic_properties.ts +194 -195
  160. package/src/programmers/internal/check_everything.ts +28 -28
  161. package/src/programmers/internal/check_native.ts +21 -21
  162. package/src/programmers/internal/check_object.ts +55 -55
  163. package/src/programmers/internal/check_string.ts +25 -25
  164. package/src/programmers/internal/check_string_tags.ts +67 -67
  165. package/src/programmers/internal/check_template.ts +56 -56
  166. package/src/programmers/internal/check_union_array_like.ts +329 -329
  167. package/src/programmers/internal/decode_union_object.ts +73 -73
  168. package/src/programmers/internal/feature_object_entries.ts +63 -63
  169. package/src/programmers/internal/get_comment_tags.ts +23 -23
  170. package/src/programmers/internal/metadata_to_pattern.ts +34 -34
  171. package/src/programmers/internal/prune_object_properties.ts +60 -60
  172. package/src/programmers/internal/random_custom.ts +29 -29
  173. package/src/programmers/internal/stringify_dynamic_properties.ts +171 -171
  174. package/src/programmers/internal/stringify_native.ts +7 -7
  175. package/src/programmers/internal/stringify_regular_properties.ts +83 -83
  176. package/src/programmers/internal/template_to_pattern.ts +15 -15
  177. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +16 -16
  178. package/src/schemas/IJsonApplication.ts +8 -8
  179. package/src/schemas/IJsonComponents.ts +33 -33
  180. package/src/schemas/IJsonSchema.ts +133 -133
  181. package/src/transform.ts +27 -27
  182. package/src/transformers/CallExpressionTransformer.ts +179 -179
  183. package/src/transformers/FileTransformer.ts +47 -47
  184. package/src/transformers/IProject.ts +11 -11
  185. package/src/transformers/ITransformOptions.ts +62 -62
  186. package/src/transformers/ImportTransformer.ts +66 -66
  187. package/src/transformers/NodeTransformer.ts +13 -13
  188. package/src/transformers/features/miscellaneous/ApplicationTransformer.ts +112 -112
  189. package/src/transformers/features/miscellaneous/AssertCloneTransformer.ts +9 -9
  190. package/src/transformers/features/miscellaneous/AssertPruneTransformer.ts +9 -9
  191. package/src/transformers/features/miscellaneous/CloneTransformer.ts +9 -9
  192. package/src/transformers/features/miscellaneous/CreateAssertCloneTransformer.ts +9 -9
  193. package/src/transformers/features/miscellaneous/CreateAssertPruneTransformer.ts +9 -9
  194. package/src/transformers/features/miscellaneous/CreateCloneTransformer.ts +9 -9
  195. package/src/transformers/features/miscellaneous/CreateIsCloneTransformer.ts +9 -9
  196. package/src/transformers/features/miscellaneous/CreateIsPruneTransformer.ts +9 -9
  197. package/src/transformers/features/miscellaneous/CreatePruneTransformer.ts +9 -9
  198. package/src/transformers/features/miscellaneous/CreateRandomTransformer.ts +39 -39
  199. package/src/transformers/features/miscellaneous/CreateValidateCloneTransformer.ts +9 -9
  200. package/src/transformers/features/miscellaneous/CreateValidatePruneTransformer.ts +9 -9
  201. package/src/transformers/features/miscellaneous/IsCloneTransformer.ts +9 -9
  202. package/src/transformers/features/miscellaneous/IsPruneTransformer.ts +9 -9
  203. package/src/transformers/features/miscellaneous/LiteralsTransformer.ts +28 -28
  204. package/src/transformers/features/miscellaneous/MetadataTransformer.ts +53 -53
  205. package/src/transformers/features/miscellaneous/PruneTransformer.ts +9 -9
  206. package/src/transformers/features/miscellaneous/RandomTransformer.ts +42 -42
  207. package/src/transformers/features/miscellaneous/ValidateCloneTransformer.ts +9 -9
  208. package/src/transformers/features/miscellaneous/ValidatePruneTransformer.ts +9 -9
  209. package/src/transformers/features/parsers/AssertParseTransformer.ts +9 -9
  210. package/src/transformers/features/parsers/CreateAssertParseTransformer.ts +9 -9
  211. package/src/transformers/features/parsers/CreateIsParseTransformer.ts +9 -9
  212. package/src/transformers/features/parsers/CreateValidateParseTransformer.ts +9 -9
  213. package/src/transformers/features/parsers/IsParseTransformer.ts +9 -9
  214. package/src/transformers/features/parsers/ValidateParseTransformer.ts +9 -9
  215. package/src/transformers/features/stringifiers/AssertStringifyTransformer.ts +10 -10
  216. package/src/transformers/features/stringifiers/CreateAssertStringifyTransformer.ts +12 -12
  217. package/src/transformers/features/stringifiers/CreateIsStringifyTransformer.ts +9 -9
  218. package/src/transformers/features/stringifiers/CreateStringifyTransformer.ts +9 -9
  219. package/src/transformers/features/stringifiers/CreateValidateStringifyProgrammer.ts +12 -12
  220. package/src/transformers/features/stringifiers/IsStringifyTransformer.ts +9 -9
  221. package/src/transformers/features/stringifiers/StringifyTransformer.ts +9 -9
  222. package/src/transformers/features/stringifiers/ValidateStringifyTransformer.ts +10 -10
  223. package/src/transformers/features/validators/AssertTransformer.ts +11 -11
  224. package/src/transformers/features/validators/CreateAssertTransformer.ts +13 -13
  225. package/src/transformers/features/validators/CreateIsTransformer.ts +11 -11
  226. package/src/transformers/features/validators/CreateValidateTransformer.ts +13 -13
  227. package/src/transformers/features/validators/IsTransformer.ts +11 -11
  228. package/src/transformers/features/validators/ValidateTransformer.ts +11 -11
  229. package/src/transformers/internal/GenericTransformer.ts +97 -97
  230. package/src/typings/Atomic.ts +17 -17
  231. package/src/typings/ClassProperties.ts +5 -5
  232. package/src/typings/Customizable.ts +5 -5
  233. package/src/typings/OmitNever.ts +3 -3
  234. package/src/typings/SpecialFields.ts +3 -3
  235. package/src/typings/Writable.ts +11 -11
  236. package/src/utils/ArrayUtil.ts +45 -45
  237. package/src/utils/Escaper.ts +46 -46
  238. package/src/utils/MapUtil.ts +12 -12
  239. package/src/utils/PatternUtil.ts +33 -33
  240. package/src/utils/RandomGenerator.ts +81 -81
  241. package/src/utils/Singleton.ts +17 -17
@@ -66,6 +66,8 @@ var iterate_metadata_intersection = function (checker) {
66
66
  (0, iterate_metadata_1.iterate_metadata)(checker)(options)(collection)(meta, type.types[0], resolved, aliased);
67
67
  return true;
68
68
  }
69
+ else if (children.every(function (c) { return c.objects.length === 1 && c.size() === 1; }))
70
+ return false;
69
71
  var atomics = children.filter(function (c) {
70
72
  return (c.atomics.length ? 1 : 0 + c.constants.length ? 1 : 0) ===
71
73
  c.bucket();
@@ -1 +1 @@
1
- {"version":3,"file":"iterate_metadata_intersection.js","sourceRoot":"","sources":["../../../../src/factories/internal/metadata/iterate_metadata_intersection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"iterate_metadata_intersection.js","sourceRoot":"","sources":["../../../../src/factories/internal/metadata/iterate_metadata_intersection.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
31
  exports.CloneJoiner = void 0;
32
32
  var typescript_1 = __importDefault(require("typescript"));
33
+ var IdentifierFactory_1 = require("../../factories/IdentifierFactory");
33
34
  var StatementFactory_1 = require("../../factories/StatementFactory");
34
35
  var TypeFactory_1 = require("../../factories/TypeFactory");
35
36
  var Escaper_1 = require("../../utils/Escaper");
@@ -52,12 +53,19 @@ var CloneJoiner;
52
53
  var key = typescript_1.default.factory.createIdentifier("key");
53
54
  var value = typescript_1.default.factory.createIdentifier("value");
54
55
  var output = typescript_1.default.factory.createIdentifier("output");
55
- var statements = dynamic.map(function (entry) {
56
+ var statements = [];
57
+ if (regular.length !== 0)
58
+ statements.push(typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(typescript_1.default.factory.createArrayLiteralExpression(regular.map(function (r) {
59
+ return typescript_1.default.factory.createStringLiteral(r.key.getSoleLiteral());
60
+ })))("some"), undefined, [
61
+ typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("regular")], undefined, undefined, typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createIdentifier("regular"), typescript_1.default.factory.createIdentifier("key"))),
62
+ ]), typescript_1.default.factory.createContinueStatement()));
63
+ statements.push.apply(statements, __spreadArray([], __read(dynamic.map(function (entry) {
56
64
  return typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("RegExp(/".concat((0, metadata_to_pattern_1.metadata_to_pattern)(true)(entry.key), "/).test")), undefined, [key]), typescript_1.default.factory.createBlock([
57
65
  typescript_1.default.factory.createExpressionStatement(typescript_1.default.factory.createBinaryExpression(typescript_1.default.factory.createElementAccessExpression(output, key), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.EqualsToken), entry.expression)),
58
66
  typescript_1.default.factory.createContinueStatement(),
59
67
  ]));
60
- });
68
+ })), false));
61
69
  return typescript_1.default.factory.createBlock([
62
70
  StatementFactory_1.StatementFactory.constant("output", typescript_1.default.factory.createAsExpression(literal, TypeFactory_1.TypeFactory.keyword("any"))),
63
71
  typescript_1.default.factory.createForOfStatement(undefined, typescript_1.default.factory.createVariableDeclarationList([
@@ -1 +1 @@
1
- {"version":3,"file":"CloneJoiner.js","sourceRoot":"","sources":["../../../src/programmers/helpers/CloneJoiner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CloneJoiner.js","sourceRoot":"","sources":["../../../src/programmers/helpers/CloneJoiner.ts"],"names":[],"mappings":"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"}
@@ -89,7 +89,7 @@ var check_dynamic_property = function (props) {
89
89
  var add = function (exp, output) {
90
90
  return statements.push(typescript_1.default.factory.createIfStatement(exp, typescript_1.default.factory.createReturnStatement(output)));
91
91
  };
92
- if (props.equals === true && regular.length)
92
+ if (regular.length)
93
93
  add(is_regular_property(regular), props.positive);
94
94
  statements.push(StatementFactory_1.StatementFactory.constant("value", typescript_1.default.factory.createElementAccessExpression(input, key)));
95
95
  if (props.undefined === true)
@@ -1 +1 @@
1
- {"version":3,"file":"check_dynamic_properties.js","sourceRoot":"","sources":["../../../src/programmers/internal/check_dynamic_properties.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check_dynamic_properties.js","sourceRoot":"","sources":["../../../src/programmers/internal/check_dynamic_properties.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "4.3.2",
3
+ "version": "4.3.3",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -122,7 +122,7 @@
122
122
  "ts-node": "^10.9.1",
123
123
  "ts-patch": "^3.0.2",
124
124
  "tstl": "^2.5.13",
125
- "typescript": "^5.1.6",
125
+ "typescript": "^5.2.2",
126
126
  "typescript-transform-paths": "^3.4.6",
127
127
  "uuid": "^8.3.2",
128
128
  "zod": "^3.19.1"
@@ -1,126 +1,126 @@
1
- import { Customizable } from "./typings/Customizable";
2
-
3
- /**
4
- * Map of custom validators.
5
- *
6
- * Map of custom validator functions, storing tag name and type of target value
7
- * as key, and custom validator function as value.
8
- *
9
- * When you want to add a custom validation logic utilizing comment tags, you
10
- * can insert a custom validator function with specific tag name and type of
11
- * the target value like below.
12
- *
13
- * ```ts
14
- * typia.customValidators.insert("powerOf")("number")(
15
- * (text: string) => {
16
- * const denominator: number = Math.log(Number(text));
17
- * return (value: number) => {
18
- * value = Math.log(value) / denominator;
19
- * return value === Math.floor(value);
20
- * };
21
- * }
22
- * );
23
- * typia.customValidators.insert("dollar")("string")(
24
- * () => (value: string) => value.startsWith("$"),
25
- * );
26
- *
27
- * interface TagCustom {
28
- * /**
29
- * * @powerOf 10
30
- * *\/
31
- * powerOf: number;
32
- *
33
- * /**
34
- * * @dollar
35
- * *\/
36
- * dollar: string;
37
- * }
38
- * ```
39
- *
40
- * @author Jeongho Nam - https://github.com/samchon
41
- */
42
- export interface CustomValidatorMap {
43
- /**
44
- * Get number of stored tags.
45
- *
46
- * @return Number of stored tags
47
- */
48
- size(): number;
49
-
50
- /**
51
- * Get number of stored types of the specified tag name.
52
- *
53
- * In other words, number of stored custom validator functions of
54
- * the specified tag name.
55
- *
56
- * @param name Tag name
57
- * @return Number of stored types function
58
- */
59
- size(name: string): number;
60
-
61
- /**
62
- * Test whether custom validator function exists or not.
63
- *
64
- * @param name Tag name
65
- * @param type Type of the target value
66
- * @returns Whether exists or not
67
- */
68
- has: (name: string) => (type: keyof Customizable) => boolean;
69
-
70
- /**
71
- * Get custom validator function.
72
- *
73
- * @param name Tag name
74
- * @param type Type of the target value
75
- * @returns Custom validator function or undefined value
76
- */
77
- get(
78
- name: string,
79
- ): <Type extends keyof Customizable>(
80
- type: Type,
81
- ) => CustomValidatorMap.Closure<Type> | undefined;
82
-
83
- /**
84
- * Insert a new custom validator function.
85
- *
86
- * You can add a custom validation logic utilizing comment tags,
87
- * by inserting a function which returns a boolean value, with specific
88
- * tag name and type of the target value.
89
- *
90
- * However, if you try to insert a duplicated tag name and type, the
91
- * closure function would not be enrolled and `false` value would be
92
- * returned.
93
- *
94
- * @param name Tag name
95
- * @param type Type of the target value
96
- * @param closure Custom validator function
97
- * @returns Whether succeeded to insert or not
98
- */
99
- insert(
100
- name: string,
101
- ): <Type extends keyof Customizable>(
102
- type: Type,
103
- ) => (closure: CustomValidatorMap.Closure<Type>) => boolean;
104
-
105
- /**
106
- * Erase custom validator function.
107
- *
108
- * @param name Tag name
109
- * @param type Type of the target value
110
- * @returns Whether succeeded to erase or not
111
- */
112
- erase(name: string): (type: keyof Customizable) => boolean;
113
- }
114
- export namespace CustomValidatorMap {
115
- /**
116
- * Type of closure function of custom validation.
117
- *
118
- * @template Type Type of the target value
119
- * @param text Text of the tag. For example, if the tag is `@powerOf 10`, `text` is 10.
120
- * @param value Value to validate
121
- * @returns Whether the value is valid or not
122
- */
123
- export type Closure<Type extends keyof Customizable> = (
124
- text: string,
125
- ) => (value: Customizable[Type]) => boolean;
126
- }
1
+ import { Customizable } from "./typings/Customizable";
2
+
3
+ /**
4
+ * Map of custom validators.
5
+ *
6
+ * Map of custom validator functions, storing tag name and type of target value
7
+ * as key, and custom validator function as value.
8
+ *
9
+ * When you want to add a custom validation logic utilizing comment tags, you
10
+ * can insert a custom validator function with specific tag name and type of
11
+ * the target value like below.
12
+ *
13
+ * ```ts
14
+ * typia.customValidators.insert("powerOf")("number")(
15
+ * (text: string) => {
16
+ * const denominator: number = Math.log(Number(text));
17
+ * return (value: number) => {
18
+ * value = Math.log(value) / denominator;
19
+ * return value === Math.floor(value);
20
+ * };
21
+ * }
22
+ * );
23
+ * typia.customValidators.insert("dollar")("string")(
24
+ * () => (value: string) => value.startsWith("$"),
25
+ * );
26
+ *
27
+ * interface TagCustom {
28
+ * /**
29
+ * * @powerOf 10
30
+ * *\/
31
+ * powerOf: number;
32
+ *
33
+ * /**
34
+ * * @dollar
35
+ * *\/
36
+ * dollar: string;
37
+ * }
38
+ * ```
39
+ *
40
+ * @author Jeongho Nam - https://github.com/samchon
41
+ */
42
+ export interface CustomValidatorMap {
43
+ /**
44
+ * Get number of stored tags.
45
+ *
46
+ * @return Number of stored tags
47
+ */
48
+ size(): number;
49
+
50
+ /**
51
+ * Get number of stored types of the specified tag name.
52
+ *
53
+ * In other words, number of stored custom validator functions of
54
+ * the specified tag name.
55
+ *
56
+ * @param name Tag name
57
+ * @return Number of stored types function
58
+ */
59
+ size(name: string): number;
60
+
61
+ /**
62
+ * Test whether custom validator function exists or not.
63
+ *
64
+ * @param name Tag name
65
+ * @param type Type of the target value
66
+ * @returns Whether exists or not
67
+ */
68
+ has: (name: string) => (type: keyof Customizable) => boolean;
69
+
70
+ /**
71
+ * Get custom validator function.
72
+ *
73
+ * @param name Tag name
74
+ * @param type Type of the target value
75
+ * @returns Custom validator function or undefined value
76
+ */
77
+ get(
78
+ name: string,
79
+ ): <Type extends keyof Customizable>(
80
+ type: Type,
81
+ ) => CustomValidatorMap.Closure<Type> | undefined;
82
+
83
+ /**
84
+ * Insert a new custom validator function.
85
+ *
86
+ * You can add a custom validation logic utilizing comment tags,
87
+ * by inserting a function which returns a boolean value, with specific
88
+ * tag name and type of the target value.
89
+ *
90
+ * However, if you try to insert a duplicated tag name and type, the
91
+ * closure function would not be enrolled and `false` value would be
92
+ * returned.
93
+ *
94
+ * @param name Tag name
95
+ * @param type Type of the target value
96
+ * @param closure Custom validator function
97
+ * @returns Whether succeeded to insert or not
98
+ */
99
+ insert(
100
+ name: string,
101
+ ): <Type extends keyof Customizable>(
102
+ type: Type,
103
+ ) => (closure: CustomValidatorMap.Closure<Type>) => boolean;
104
+
105
+ /**
106
+ * Erase custom validator function.
107
+ *
108
+ * @param name Tag name
109
+ * @param type Type of the target value
110
+ * @returns Whether succeeded to erase or not
111
+ */
112
+ erase(name: string): (type: keyof Customizable) => boolean;
113
+ }
114
+ export namespace CustomValidatorMap {
115
+ /**
116
+ * Type of closure function of custom validation.
117
+ *
118
+ * @template Type Type of the target value
119
+ * @param text Text of the tag. For example, if the tag is `@powerOf 10`, `text` is 10.
120
+ * @param value Value to validate
121
+ * @returns Whether the value is valid or not
122
+ */
123
+ export type Closure<Type extends keyof Customizable> = (
124
+ text: string,
125
+ ) => (value: Customizable[Type]) => boolean;
126
+ }
@@ -1,34 +1,34 @@
1
- import { Customizable } from "./typings/Customizable";
2
-
3
- export interface IRandomGenerator {
4
- boolean(): boolean;
5
- integer(minimum?: number, maximum?: number): number;
6
- number(minimum?: number, maximum?: number): number;
7
- bigint(minimum?: bigint, maximum?: bigint): bigint;
8
- string(length?: number): string;
9
- array<T>(closure: (index: number) => T, count?: number): T[];
10
- length(): number;
11
-
12
- uuid(): string;
13
- email(): string;
14
- url(): string;
15
- ipv4(): string;
16
- ipv6(): string;
17
- pattern(regex: RegExp): string;
18
- date(minimum?: number, maximum?: number): string;
19
- datetime(minimum?: number, maximum?: number): string;
20
-
21
- customs?: IRandomGenerator.CustomMap;
22
- }
23
- export namespace IRandomGenerator {
24
- export type CustomMap = {
25
- [Type in keyof Customizable]?: (
26
- tags: ICommentTag[],
27
- ) => Customizable[Type] | undefined;
28
- };
29
-
30
- export interface ICommentTag {
31
- name: string;
32
- value?: string;
33
- }
34
- }
1
+ import { Customizable } from "./typings/Customizable";
2
+
3
+ export interface IRandomGenerator {
4
+ boolean(): boolean;
5
+ integer(minimum?: number, maximum?: number): number;
6
+ number(minimum?: number, maximum?: number): number;
7
+ bigint(minimum?: bigint, maximum?: bigint): bigint;
8
+ string(length?: number): string;
9
+ array<T>(closure: (index: number) => T, count?: number): T[];
10
+ length(): number;
11
+
12
+ uuid(): string;
13
+ email(): string;
14
+ url(): string;
15
+ ipv4(): string;
16
+ ipv6(): string;
17
+ pattern(regex: RegExp): string;
18
+ date(minimum?: number, maximum?: number): string;
19
+ datetime(minimum?: number, maximum?: number): string;
20
+
21
+ customs?: IRandomGenerator.CustomMap;
22
+ }
23
+ export namespace IRandomGenerator {
24
+ export type CustomMap = {
25
+ [Type in keyof Customizable]?: (
26
+ tags: ICommentTag[],
27
+ ) => Customizable[Type] | undefined;
28
+ };
29
+
30
+ export interface ICommentTag {
31
+ name: string;
32
+ value?: string;
33
+ }
34
+ }
@@ -1,21 +1,21 @@
1
- export type IValidation<T = unknown> =
2
- | IValidation.ISuccess<T>
3
- | IValidation.IFailure;
4
- export namespace IValidation {
5
- export interface ISuccess<T = unknown> {
6
- success: true;
7
- data: T;
8
- errors: [];
9
- }
10
-
11
- export interface IFailure {
12
- success: false;
13
- errors: IError[];
14
- }
15
-
16
- export interface IError {
17
- path: string;
18
- expected: string;
19
- value: any;
20
- }
21
- }
1
+ export type IValidation<T = unknown> =
2
+ | IValidation.ISuccess<T>
3
+ | IValidation.IFailure;
4
+ export namespace IValidation {
5
+ export interface ISuccess<T = unknown> {
6
+ success: true;
7
+ data: T;
8
+ errors: [];
9
+ }
10
+
11
+ export interface IFailure {
12
+ success: false;
13
+ errors: IError[];
14
+ }
15
+
16
+ export interface IError {
17
+ path: string;
18
+ expected: string;
19
+ value: any;
20
+ }
21
+ }