typia 4.0.0-dev.20230519-3 → 4.0.0-dev.20230527

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 (222) hide show
  1. package/lib/transform.js +1 -1
  2. package/lib/transform.js.map +1 -1
  3. package/lib/utils/TsSymbolUtil.js +2 -1
  4. package/lib/utils/TsSymbolUtil.js.map +1 -1
  5. package/package.json +1 -1
  6. package/src/CustomValidatorMap.ts +126 -126
  7. package/src/IRandomGenerator.ts +33 -33
  8. package/src/IValidation.ts +21 -21
  9. package/src/Primitive.ts +123 -123
  10. package/src/TypeGuardError.ts +36 -36
  11. package/src/executable/TypiaGenerateWizard.ts +85 -85
  12. package/src/executable/TypiaSetupWizard.ts +133 -133
  13. package/src/executable/setup/ArgumentParser.ts +45 -45
  14. package/src/executable/setup/CommandExecutor.ts +8 -8
  15. package/src/executable/setup/FileRetriever.ts +22 -22
  16. package/src/executable/setup/PackageManager.ts +71 -71
  17. package/src/executable/setup/PluginConfigurator.ts +70 -70
  18. package/src/executable/typia.ts +52 -52
  19. package/src/factories/CommentFactory.ts +14 -14
  20. package/src/factories/ExpressionFactory.ts +77 -77
  21. package/src/factories/IdentifierFactory.ts +62 -62
  22. package/src/factories/LiteralFactory.ts +57 -57
  23. package/src/factories/MetadataCollection.ts +123 -123
  24. package/src/factories/MetadataFactory.ts +53 -53
  25. package/src/factories/MetadataTagFactory.ts +295 -295
  26. package/src/factories/StatementFactory.ts +20 -20
  27. package/src/factories/TemplateFactory.ts +64 -64
  28. package/src/factories/TypeFactory.ts +145 -145
  29. package/src/factories/ValueFactory.ts +15 -15
  30. package/src/factories/internal/metadata/MetadataHelper.ts +12 -12
  31. package/src/factories/internal/metadata/emplace_metadata_object.ts +152 -152
  32. package/src/factories/internal/metadata/explore_metadata.ts +93 -93
  33. package/src/factories/internal/metadata/iterate_metadata.ts +63 -63
  34. package/src/factories/internal/metadata/iterate_metadata_array.ts +32 -32
  35. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +59 -59
  36. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
  37. package/src/factories/internal/metadata/iterate_metadata_constant.ts +62 -62
  38. package/src/factories/internal/metadata/iterate_metadata_map.ts +41 -41
  39. package/src/factories/internal/metadata/iterate_metadata_native.ts +217 -217
  40. package/src/factories/internal/metadata/iterate_metadata_object.ts +51 -51
  41. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +30 -30
  42. package/src/factories/internal/metadata/iterate_metadata_set.ts +36 -36
  43. package/src/factories/internal/metadata/iterate_metadata_template.ts +40 -40
  44. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +51 -51
  45. package/src/factories/internal/metadata/iterate_metadata_union.ts +59 -59
  46. package/src/functional/$any.ts +2 -2
  47. package/src/functional/$dictionary.ts +25 -25
  48. package/src/functional/$every.ts +11 -11
  49. package/src/functional/$guard.ts +35 -35
  50. package/src/functional/$is_between.ts +2 -2
  51. package/src/functional/$is_custom.ts +14 -14
  52. package/src/functional/$is_date.ts +3 -3
  53. package/src/functional/$is_datetime.ts +2 -2
  54. package/src/functional/$is_email.ts +4 -4
  55. package/src/functional/$is_ipv4.ts +4 -4
  56. package/src/functional/$is_ipv6.ts +4 -4
  57. package/src/functional/$is_url.ts +4 -4
  58. package/src/functional/$is_uuid.ts +4 -4
  59. package/src/functional/$join.ts +46 -46
  60. package/src/functional/$number.ts +12 -12
  61. package/src/functional/$report.ts +15 -15
  62. package/src/functional/$rest.ts +3 -3
  63. package/src/functional/$string.ts +37 -37
  64. package/src/functional/$tail.ts +5 -5
  65. package/src/functional/Namespace.ts +127 -127
  66. package/src/index.ts +4 -4
  67. package/src/metadata/ICommentTag.ts +4 -4
  68. package/src/metadata/IJsDocTagInfo.ts +10 -10
  69. package/src/metadata/IMetadata.ts +26 -26
  70. package/src/metadata/IMetadataApplication.ts +7 -7
  71. package/src/metadata/IMetadataConstant.ts +16 -16
  72. package/src/metadata/IMetadataEntry.ts +6 -6
  73. package/src/metadata/IMetadataObject.ts +29 -29
  74. package/src/metadata/IMetadataProperty.ts +11 -11
  75. package/src/metadata/IMetadataTag.ts +105 -105
  76. package/src/metadata/Metadata.ts +539 -539
  77. package/src/metadata/MetadataConstant.ts +3 -3
  78. package/src/metadata/MetadataObject.ts +127 -127
  79. package/src/metadata/MetadataProperty.ts +64 -64
  80. package/src/module.ts +2038 -2038
  81. package/src/programmers/ApplicationProgrammer.ts +48 -48
  82. package/src/programmers/AssertCloneProgrammer.ts +68 -68
  83. package/src/programmers/AssertParseProgrammer.ts +66 -66
  84. package/src/programmers/AssertProgrammer.ts +274 -274
  85. package/src/programmers/AssertPruneProgrammer.ts +73 -73
  86. package/src/programmers/AssertStringifyProgrammer.ts +66 -66
  87. package/src/programmers/CheckerProgrammer.ts +897 -897
  88. package/src/programmers/CloneProgrammer.ts +387 -387
  89. package/src/programmers/FeatureProgrammer.ts +510 -510
  90. package/src/programmers/IsCloneProgrammer.ts +79 -79
  91. package/src/programmers/IsParseProgrammer.ts +72 -72
  92. package/src/programmers/IsProgrammer.ts +223 -223
  93. package/src/programmers/IsPruneProgrammer.ts +83 -83
  94. package/src/programmers/IsStringifyProgrammer.ts +77 -77
  95. package/src/programmers/LiteralsProgrammer.ts +65 -65
  96. package/src/programmers/PruneProgrammer.ts +348 -348
  97. package/src/programmers/RandomProgrammer.ts +444 -444
  98. package/src/programmers/StringifyProgrammer.ts +758 -758
  99. package/src/programmers/TypiaProgrammer.ts +141 -141
  100. package/src/programmers/ValidateCloneProgrammer.ts +93 -93
  101. package/src/programmers/ValidateParseProgrammer.ts +78 -78
  102. package/src/programmers/ValidateProgrammer.ts +317 -317
  103. package/src/programmers/ValidatePruneProgrammer.ts +86 -86
  104. package/src/programmers/ValidateStringifyProgrammer.ts +93 -93
  105. package/src/programmers/helpers/AtomicPredicator.ts +31 -31
  106. package/src/programmers/helpers/CloneJoiner.ts +138 -138
  107. package/src/programmers/helpers/FunctionImporeter.ts +56 -56
  108. package/src/programmers/helpers/ICheckEntry.ts +12 -12
  109. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  110. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  111. package/src/programmers/helpers/PruneJoiner.ts +156 -156
  112. package/src/programmers/helpers/RandomJoiner.ts +165 -165
  113. package/src/programmers/helpers/RandomRanger.ts +218 -218
  114. package/src/programmers/helpers/StringifyJoinder.ts +118 -118
  115. package/src/programmers/helpers/StringifyPredicator.ts +12 -12
  116. package/src/programmers/helpers/UnionExplorer.ts +281 -281
  117. package/src/programmers/helpers/UnionPredicator.ts +81 -81
  118. package/src/programmers/helpers/disable_function_importer_declare.ts +21 -21
  119. package/src/programmers/internal/JSON_SCHEMA_PREFIX.ts +1 -1
  120. package/src/programmers/internal/application_array.ts +32 -32
  121. package/src/programmers/internal/application_boolean.ts +15 -15
  122. package/src/programmers/internal/application_constant.ts +26 -26
  123. package/src/programmers/internal/application_default.ts +17 -17
  124. package/src/programmers/internal/application_default_string.ts +33 -33
  125. package/src/programmers/internal/application_native.ts +36 -36
  126. package/src/programmers/internal/application_number.ts +71 -71
  127. package/src/programmers/internal/application_object.ts +162 -162
  128. package/src/programmers/internal/application_schema.ts +198 -198
  129. package/src/programmers/internal/application_string.ts +44 -44
  130. package/src/programmers/internal/application_templates.ts +25 -25
  131. package/src/programmers/internal/application_tuple.ts +27 -27
  132. package/src/programmers/internal/check_array.ts +31 -31
  133. package/src/programmers/internal/check_array_length.ts +35 -35
  134. package/src/programmers/internal/check_bigint.ts +95 -95
  135. package/src/programmers/internal/check_custom.ts +32 -32
  136. package/src/programmers/internal/check_dynamic_properties.ts +198 -198
  137. package/src/programmers/internal/check_everything.ts +28 -28
  138. package/src/programmers/internal/check_native.ts +22 -22
  139. package/src/programmers/internal/check_number.ts +177 -177
  140. package/src/programmers/internal/check_object.ts +65 -65
  141. package/src/programmers/internal/check_string.ts +27 -27
  142. package/src/programmers/internal/check_string_tags.ts +68 -68
  143. package/src/programmers/internal/check_template.ts +57 -57
  144. package/src/programmers/internal/check_union_array_like.ts +273 -273
  145. package/src/programmers/internal/check_union_tuple.ts +34 -34
  146. package/src/programmers/internal/decode_union_object.ts +75 -75
  147. package/src/programmers/internal/feature_object_entries.ts +64 -64
  148. package/src/programmers/internal/get_comment_tags.ts +23 -23
  149. package/src/programmers/internal/metadata_to_pattern.ts +34 -34
  150. package/src/programmers/internal/prune_object_properties.ts +63 -63
  151. package/src/programmers/internal/random_custom.ts +30 -30
  152. package/src/programmers/internal/stringify_dynamic_properties.ts +173 -173
  153. package/src/programmers/internal/stringify_native.ts +7 -7
  154. package/src/programmers/internal/stringify_regular_properties.ts +89 -89
  155. package/src/programmers/internal/template_to_pattern.ts +15 -15
  156. package/src/schemas/IJsonApplication.ts +13 -13
  157. package/src/schemas/IJsonComponents.ts +33 -33
  158. package/src/schemas/IJsonSchema.ts +134 -134
  159. package/src/transform.ts +39 -39
  160. package/src/transformers/CallExpressionTransformer.ts +183 -183
  161. package/src/transformers/FileTransformer.ts +50 -50
  162. package/src/transformers/IProject.ts +18 -18
  163. package/src/transformers/ITransformOptions.ts +62 -62
  164. package/src/transformers/ImportTransformer.ts +74 -74
  165. package/src/transformers/NodeTransformer.ts +13 -13
  166. package/src/transformers/features/miscellaneous/ApplicationTransformer.ts +107 -107
  167. package/src/transformers/features/miscellaneous/AssertCloneTransformer.ts +9 -9
  168. package/src/transformers/features/miscellaneous/AssertPruneTransformer.ts +9 -9
  169. package/src/transformers/features/miscellaneous/CloneTransformer.ts +9 -9
  170. package/src/transformers/features/miscellaneous/CreateAssertCloneTransformer.ts +9 -9
  171. package/src/transformers/features/miscellaneous/CreateAssertPruneTransformer.ts +9 -9
  172. package/src/transformers/features/miscellaneous/CreateCloneTransformer.ts +9 -9
  173. package/src/transformers/features/miscellaneous/CreateIsCloneTransformer.ts +9 -9
  174. package/src/transformers/features/miscellaneous/CreateIsPruneTransformer.ts +9 -9
  175. package/src/transformers/features/miscellaneous/CreatePruneTransformer.ts +9 -9
  176. package/src/transformers/features/miscellaneous/CreateRandomTransformer.ts +43 -43
  177. package/src/transformers/features/miscellaneous/CreateValidateCloneTransformer.ts +9 -9
  178. package/src/transformers/features/miscellaneous/CreateValidatePruneTransformer.ts +9 -9
  179. package/src/transformers/features/miscellaneous/IsCloneTransformer.ts +9 -9
  180. package/src/transformers/features/miscellaneous/IsPruneTransformer.ts +9 -9
  181. package/src/transformers/features/miscellaneous/LiteralsTransformer.ts +31 -31
  182. package/src/transformers/features/miscellaneous/MetadataTransformer.ts +56 -56
  183. package/src/transformers/features/miscellaneous/PruneTransformer.ts +9 -9
  184. package/src/transformers/features/miscellaneous/RandomTransformer.ts +46 -46
  185. package/src/transformers/features/miscellaneous/ValidateCloneTransformer.ts +9 -9
  186. package/src/transformers/features/miscellaneous/ValidatePruneTransformer.ts +9 -9
  187. package/src/transformers/features/parsers/AssertParseTransformer.ts +9 -9
  188. package/src/transformers/features/parsers/CreateAssertParseTransformer.ts +9 -9
  189. package/src/transformers/features/parsers/CreateIsParseTransformer.ts +9 -9
  190. package/src/transformers/features/parsers/CreateValidateParseTransformer.ts +9 -9
  191. package/src/transformers/features/parsers/IsParseTransformer.ts +9 -9
  192. package/src/transformers/features/parsers/ValidateParseTransformer.ts +9 -9
  193. package/src/transformers/features/stringifiers/AssertStringifyTransformer.ts +10 -10
  194. package/src/transformers/features/stringifiers/CreateAssertStringifyTransformer.ts +12 -12
  195. package/src/transformers/features/stringifiers/CreateIsStringifyTransformer.ts +9 -9
  196. package/src/transformers/features/stringifiers/CreateStringifyTransformer.ts +9 -9
  197. package/src/transformers/features/stringifiers/CreateValidateStringifyProgrammer.ts +12 -12
  198. package/src/transformers/features/stringifiers/IsStringifyTransformer.ts +9 -9
  199. package/src/transformers/features/stringifiers/StringifyTransformer.ts +9 -9
  200. package/src/transformers/features/stringifiers/ValidateStringifyTransformer.ts +10 -10
  201. package/src/transformers/features/validators/AssertTransformer.ts +11 -11
  202. package/src/transformers/features/validators/CreateAssertTransformer.ts +13 -13
  203. package/src/transformers/features/validators/CreateIsTransformer.ts +11 -11
  204. package/src/transformers/features/validators/CreateValidateTransformer.ts +13 -13
  205. package/src/transformers/features/validators/IsTransformer.ts +11 -11
  206. package/src/transformers/features/validators/ValidateTransformer.ts +11 -11
  207. package/src/transformers/internal/GenericTransformer.ts +101 -101
  208. package/src/typings/Atomic.ts +17 -17
  209. package/src/typings/ClassProperties.ts +5 -5
  210. package/src/typings/Customizable.ts +5 -5
  211. package/src/typings/OmitNever.ts +3 -3
  212. package/src/typings/SpecialFields.ts +3 -3
  213. package/src/typings/Writable.ts +11 -11
  214. package/src/utils/ArrayUtil.ts +44 -44
  215. package/src/utils/Escaper.ts +45 -45
  216. package/src/utils/MapUtil.ts +12 -12
  217. package/src/utils/PatternUtil.ts +30 -30
  218. package/src/utils/RandomGenerator.ts +81 -81
  219. package/src/utils/Singleton.ts +17 -17
  220. package/src/utils/TsNodeUtil.ts +17 -17
  221. package/src/utils/TsSymbolUtil.ts +153 -152
  222. package/src/utils/TsTypeUtil.ts +38 -38
package/lib/transform.js CHANGED
@@ -21,7 +21,7 @@ var regular = function (_a) {
21
21
  });
22
22
  };
23
23
  var patch = function (program, options) {
24
- var tsc = require("ts");
24
+ var tsc = require("typescript");
25
25
  return FileTransformer_1.FileTransformer.transform({
26
26
  tsc: tsc,
27
27
  program: program,
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":";AAEA,kEAAiE;AAGjE,IAAM,OAAO,GAAuC,UAAC,EAAc;QAAZ,UAAU,gBAAA;IAAO,OAAA,CAAC;QACrE,MAAM,EAAE,UAAC,IAAI,IAAK,OAAA,CAAC;YACf,MAAM,EAAE;gBACJ,UAAC,OAAO,IAAK,OAAA,UAAC,IAAI;;oBACd,OAAA,iCAAe,CAAC,SAAS,CAAC;wBACtB,GAAG,EAAE,UAAU;wBACf,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;wBAClD,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;wBACtC,OAAO,EAAE,UAAU,CAAC,aAAa,EAAE;wBACnC,OAAO,EAAE,MAAA,IAAI,CAAC,MAAM,mCAAI,EAAE;qBAC7B,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAA;iBAAA,EARR,CAQQ;aACxB;SACJ,CAAC,EAZgB,CAYhB;KACL,CAAC;AAdsE,CActE,CAAC;AAEH,IAAM,KAAK,GAAG,UACV,OAAmB,EACnB,OAA2B;IAE3B,IAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,iCAAe,CAAC,SAAS,CAAC;QAC7B,GAAG,KAAA;QACH,OAAO,SAAA;QACP,eAAe,EAAE,OAAO,CAAC,kBAAkB,EAAE;QAC7C,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE;QACjC,OAAO,EAAE,GAAG,CAAC,aAAa,EAAE;QAC5B,OAAO,EAAE,OAAO,IAAI,EAAE;KACzB,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,IAAM,SAAS,GAAG,UAAC,CAAM,EAAE,CAAO;IAC9B,OAAA,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAAvC,CAAuC,CAAC;AAC5C,iBAAS,SAA0C,CAAC"}
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":";AAEA,kEAAiE;AAGjE,IAAM,OAAO,GAAuC,UAAC,EAAc;QAAZ,UAAU,gBAAA;IAAO,OAAA,CAAC;QACrE,MAAM,EAAE,UAAC,IAAI,IAAK,OAAA,CAAC;YACf,MAAM,EAAE;gBACJ,UAAC,OAAO,IAAK,OAAA,UAAC,IAAI;;oBACd,OAAA,iCAAe,CAAC,SAAS,CAAC;wBACtB,GAAG,EAAE,UAAU;wBACf,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;wBAClD,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;wBACtC,OAAO,EAAE,UAAU,CAAC,aAAa,EAAE;wBACnC,OAAO,EAAE,MAAA,IAAI,CAAC,MAAM,mCAAI,EAAE;qBAC7B,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAA;iBAAA,EARR,CAQQ;aACxB;SACJ,CAAC,EAZgB,CAYhB;KACL,CAAC;AAdsE,CActE,CAAC;AAEH,IAAM,KAAK,GAAG,UACV,OAAmB,EACnB,OAA2B;IAE3B,IAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAClC,OAAO,iCAAe,CAAC,SAAS,CAAC;QAC7B,GAAG,KAAA;QACH,OAAO,SAAA;QACP,eAAe,EAAE,OAAO,CAAC,kBAAkB,EAAE;QAC7C,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE;QACjC,OAAO,EAAE,GAAG,CAAC,aAAa,EAAE;QAC5B,OAAO,EAAE,OAAO,IAAI,EAAE;KACzB,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,IAAM,SAAS,GAAG,UAAC,CAAM,EAAE,CAAO;IAC9B,OAAA,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAAvC,CAAuC,CAAC;AAC5C,iBAAS,SAA0C,CAAC"}
@@ -23,7 +23,8 @@ var TsSymbolUtil;
23
23
  return undefined;
24
24
  var range = tsc.getCommentRange(node);
25
25
  var text = TsNodeUtil_1.TsNodeUtil.getSourceFile(tsc)(node).text.substring(range.pos, range.end);
26
- return transform(text).join("\n");
26
+ var output = transform(text).join("\n");
27
+ return output.length ? output : undefined;
27
28
  };
28
29
  };
29
30
  TsSymbolUtil.getCommentTags = function (tsc) {
@@ -1 +1 @@
1
- {"version":3,"file":"TsSymbolUtil.js","sourceRoot":"","sources":["../../src/utils/TsSymbolUtil.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TsSymbolUtil.js","sourceRoot":"","sources":["../../src/utils/TsSymbolUtil.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "4.0.0-dev.20230519-3",
3
+ "version": "4.0.0-dev.20230527",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -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,33 +1,33 @@
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
-
11
- uuid(): string;
12
- email(): string;
13
- url(): string;
14
- ipv4(): string;
15
- ipv6(): string;
16
- pattern(regex: RegExp): string;
17
- date(minimum?: number, maximum?: number): string;
18
- datetime(minimum?: number, maximum?: number): string;
19
-
20
- customs?: IRandomGenerator.CustomMap;
21
- }
22
- export namespace IRandomGenerator {
23
- export type CustomMap = {
24
- [Type in keyof Customizable]?: (
25
- tags: ICommentTag[],
26
- ) => Customizable[Type] | undefined;
27
- };
28
-
29
- export interface ICommentTag {
30
- name: string;
31
- value?: string;
32
- }
33
- }
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
+
11
+ uuid(): string;
12
+ email(): string;
13
+ url(): string;
14
+ ipv4(): string;
15
+ ipv6(): string;
16
+ pattern(regex: RegExp): string;
17
+ date(minimum?: number, maximum?: number): string;
18
+ datetime(minimum?: number, maximum?: number): string;
19
+
20
+ customs?: IRandomGenerator.CustomMap;
21
+ }
22
+ export namespace IRandomGenerator {
23
+ export type CustomMap = {
24
+ [Type in keyof Customizable]?: (
25
+ tags: ICommentTag[],
26
+ ) => Customizable[Type] | undefined;
27
+ };
28
+
29
+ export interface ICommentTag {
30
+ name: string;
31
+ value?: string;
32
+ }
33
+ }
@@ -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
+ }