@duplojs/utils 1.0.7 → 1.1.7

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 (294) hide show
  1. package/dist/array/coalescing.cjs +9 -0
  2. package/dist/array/coalescing.d.ts +3 -0
  3. package/dist/array/coalescing.mjs +7 -0
  4. package/dist/array/index.cjs +2 -0
  5. package/dist/array/index.d.ts +1 -0
  6. package/dist/array/index.mjs +1 -0
  7. package/dist/array/map.cjs +1 -1
  8. package/dist/array/map.d.ts +2 -2
  9. package/dist/array/map.mjs +1 -1
  10. package/dist/array/reduce.cjs +1 -1
  11. package/dist/array/reduce.mjs +1 -1
  12. package/dist/array/types/ArrayCoalescing.d.ts +1 -0
  13. package/dist/array/types/index.d.ts +1 -0
  14. package/dist/common/escapeRegExp.cjs +2 -2
  15. package/dist/common/escapeRegExp.d.ts +1 -1
  16. package/dist/common/escapeRegExp.mjs +2 -2
  17. package/dist/common/index.d.ts +2 -0
  18. package/dist/common/instanceOf.cjs +20 -0
  19. package/dist/common/instanceOf.d.ts +3 -0
  20. package/dist/common/instanceOf.mjs +18 -0
  21. package/dist/common/kind.cjs +38 -1
  22. package/dist/common/kind.d.ts +21 -3
  23. package/dist/common/kind.mjs +38 -2
  24. package/dist/common/memo.cjs +16 -0
  25. package/dist/common/memo.d.ts +5 -0
  26. package/dist/common/memo.mjs +14 -0
  27. package/dist/common/simpleClone.cjs +2 -2
  28. package/dist/common/simpleClone.mjs +2 -2
  29. package/dist/common/types/anyConstructor.d.ts +1 -0
  30. package/dist/common/types/anyPredicate.d.ts +1 -0
  31. package/dist/common/types/index.d.ts +2 -0
  32. package/dist/common/types/objectEntry.d.ts +1 -1
  33. package/dist/common/types/predicate.d.ts +1 -0
  34. package/dist/common/types/unionContain.d.ts +1 -1
  35. package/dist/dataParser/base.cjs +116 -0
  36. package/dist/dataParser/base.d.ts +44 -0
  37. package/dist/dataParser/base.mjs +109 -0
  38. package/dist/dataParser/baseExtended.cjs +55 -0
  39. package/dist/dataParser/baseExtended.d.ts +45 -0
  40. package/dist/dataParser/baseExtended.mjs +52 -0
  41. package/dist/dataParser/error.cjs +54 -0
  42. package/dist/dataParser/error.d.ts +31 -0
  43. package/dist/dataParser/error.mjs +41 -0
  44. package/dist/dataParser/extended/array.cjs +20 -0
  45. package/dist/dataParser/extended/array.d.ts +21 -0
  46. package/dist/dataParser/extended/array.mjs +18 -0
  47. package/dist/dataParser/extended/bigint.cjs +20 -0
  48. package/dist/dataParser/extended/bigint.d.ts +19 -0
  49. package/dist/dataParser/extended/bigint.mjs +18 -0
  50. package/dist/dataParser/extended/boolean.cjs +11 -0
  51. package/dist/dataParser/extended/boolean.d.ts +9 -0
  52. package/dist/dataParser/extended/boolean.mjs +9 -0
  53. package/dist/dataParser/extended/coerce/bigint.cjs +13 -0
  54. package/dist/dataParser/extended/coerce/bigint.d.ts +7 -0
  55. package/dist/dataParser/extended/coerce/bigint.mjs +11 -0
  56. package/dist/dataParser/extended/coerce/boolean.cjs +13 -0
  57. package/dist/dataParser/extended/coerce/boolean.d.ts +7 -0
  58. package/dist/dataParser/extended/coerce/boolean.mjs +11 -0
  59. package/dist/dataParser/extended/coerce/empty.cjs +13 -0
  60. package/dist/dataParser/extended/coerce/empty.d.ts +7 -0
  61. package/dist/dataParser/extended/coerce/empty.mjs +11 -0
  62. package/dist/dataParser/extended/coerce/index.cjs +17 -0
  63. package/dist/dataParser/extended/coerce/index.d.ts +6 -0
  64. package/dist/dataParser/extended/coerce/index.mjs +6 -0
  65. package/dist/dataParser/extended/coerce/nil.cjs +13 -0
  66. package/dist/dataParser/extended/coerce/nil.d.ts +7 -0
  67. package/dist/dataParser/extended/coerce/nil.mjs +11 -0
  68. package/dist/dataParser/extended/coerce/number.cjs +13 -0
  69. package/dist/dataParser/extended/coerce/number.d.ts +7 -0
  70. package/dist/dataParser/extended/coerce/number.mjs +11 -0
  71. package/dist/dataParser/extended/coerce/string.cjs +13 -0
  72. package/dist/dataParser/extended/coerce/string.d.ts +7 -0
  73. package/dist/dataParser/extended/coerce/string.mjs +11 -0
  74. package/dist/dataParser/extended/empty.cjs +11 -0
  75. package/dist/dataParser/extended/empty.d.ts +9 -0
  76. package/dist/dataParser/extended/empty.mjs +9 -0
  77. package/dist/dataParser/extended/index.cjs +48 -0
  78. package/dist/dataParser/extended/index.d.ts +22 -0
  79. package/dist/dataParser/extended/index.mjs +21 -0
  80. package/dist/dataParser/extended/lazy.cjs +11 -0
  81. package/dist/dataParser/extended/lazy.d.ts +11 -0
  82. package/dist/dataParser/extended/lazy.mjs +9 -0
  83. package/dist/dataParser/extended/literal.cjs +11 -0
  84. package/dist/dataParser/extended/literal.d.ts +11 -0
  85. package/dist/dataParser/extended/literal.mjs +9 -0
  86. package/dist/dataParser/extended/nil.cjs +11 -0
  87. package/dist/dataParser/extended/nil.d.ts +9 -0
  88. package/dist/dataParser/extended/nil.mjs +9 -0
  89. package/dist/dataParser/extended/nullable.cjs +11 -0
  90. package/dist/dataParser/extended/nullable.d.ts +11 -0
  91. package/dist/dataParser/extended/nullable.mjs +9 -0
  92. package/dist/dataParser/extended/number.cjs +27 -0
  93. package/dist/dataParser/extended/number.d.ts +24 -0
  94. package/dist/dataParser/extended/number.mjs +24 -0
  95. package/dist/dataParser/extended/object.cjs +11 -0
  96. package/dist/dataParser/extended/object.d.ts +11 -0
  97. package/dist/dataParser/extended/object.mjs +9 -0
  98. package/dist/dataParser/extended/optional.cjs +11 -0
  99. package/dist/dataParser/extended/optional.d.ts +11 -0
  100. package/dist/dataParser/extended/optional.mjs +9 -0
  101. package/dist/dataParser/extended/pipe.cjs +11 -0
  102. package/dist/dataParser/extended/pipe.d.ts +12 -0
  103. package/dist/dataParser/extended/pipe.mjs +9 -0
  104. package/dist/dataParser/extended/record.cjs +11 -0
  105. package/dist/dataParser/extended/record.d.ts +12 -0
  106. package/dist/dataParser/extended/record.mjs +9 -0
  107. package/dist/dataParser/extended/string.cjs +38 -0
  108. package/dist/dataParser/extended/string.d.ts +32 -0
  109. package/dist/dataParser/extended/string.mjs +34 -0
  110. package/dist/dataParser/extended/templateLiteral.cjs +10 -0
  111. package/dist/dataParser/extended/templateLiteral.d.ts +11 -0
  112. package/dist/dataParser/extended/templateLiteral.mjs +8 -0
  113. package/dist/dataParser/extended/transform.cjs +11 -0
  114. package/dist/dataParser/extended/transform.d.ts +14 -0
  115. package/dist/dataParser/extended/transform.mjs +9 -0
  116. package/dist/dataParser/extended/tuple.cjs +11 -0
  117. package/dist/dataParser/extended/tuple.d.ts +11 -0
  118. package/dist/dataParser/extended/tuple.mjs +9 -0
  119. package/dist/dataParser/extended/union.cjs +11 -0
  120. package/dist/dataParser/extended/union.d.ts +11 -0
  121. package/dist/dataParser/extended/union.mjs +9 -0
  122. package/dist/dataParser/extended/unknown.cjs +11 -0
  123. package/dist/dataParser/extended/unknown.d.ts +9 -0
  124. package/dist/dataParser/extended/unknown.mjs +9 -0
  125. package/dist/dataParser/index.cjs +128 -0
  126. package/dist/dataParser/index.d.ts +6 -0
  127. package/dist/dataParser/index.mjs +38 -0
  128. package/dist/dataParser/parsers/array/checkers/index.d.ts +2 -0
  129. package/dist/dataParser/parsers/array/checkers/max.cjs +23 -0
  130. package/dist/dataParser/parsers/array/checkers/max.d.ts +11 -0
  131. package/dist/dataParser/parsers/array/checkers/max.mjs +20 -0
  132. package/dist/dataParser/parsers/array/checkers/min.cjs +23 -0
  133. package/dist/dataParser/parsers/array/checkers/min.d.ts +11 -0
  134. package/dist/dataParser/parsers/array/checkers/min.mjs +20 -0
  135. package/dist/dataParser/parsers/array/index.cjs +64 -0
  136. package/dist/dataParser/parsers/array/index.d.ts +20 -0
  137. package/dist/dataParser/parsers/array/index.mjs +61 -0
  138. package/dist/dataParser/parsers/bigint/checkers/index.d.ts +2 -0
  139. package/dist/dataParser/parsers/bigint/checkers/max.cjs +23 -0
  140. package/dist/dataParser/parsers/bigint/checkers/max.d.ts +11 -0
  141. package/dist/dataParser/parsers/bigint/checkers/max.mjs +20 -0
  142. package/dist/dataParser/parsers/bigint/checkers/min.cjs +23 -0
  143. package/dist/dataParser/parsers/bigint/checkers/min.d.ts +11 -0
  144. package/dist/dataParser/parsers/bigint/checkers/min.mjs +20 -0
  145. package/dist/dataParser/parsers/bigint/index.cjs +31 -0
  146. package/dist/dataParser/parsers/bigint/index.d.ts +18 -0
  147. package/dist/dataParser/parsers/bigint/index.mjs +28 -0
  148. package/dist/dataParser/parsers/boolean.cjs +40 -0
  149. package/dist/dataParser/parsers/boolean.d.ts +12 -0
  150. package/dist/dataParser/parsers/boolean.mjs +37 -0
  151. package/dist/dataParser/parsers/coerce/bigint.cjs +13 -0
  152. package/dist/dataParser/parsers/coerce/bigint.d.ts +6 -0
  153. package/dist/dataParser/parsers/coerce/bigint.mjs +11 -0
  154. package/dist/dataParser/parsers/coerce/boolean.cjs +13 -0
  155. package/dist/dataParser/parsers/coerce/boolean.d.ts +6 -0
  156. package/dist/dataParser/parsers/coerce/boolean.mjs +11 -0
  157. package/dist/dataParser/parsers/coerce/empty.cjs +13 -0
  158. package/dist/dataParser/parsers/coerce/empty.d.ts +6 -0
  159. package/dist/dataParser/parsers/coerce/empty.mjs +11 -0
  160. package/dist/dataParser/parsers/coerce/index.cjs +17 -0
  161. package/dist/dataParser/parsers/coerce/index.d.ts +6 -0
  162. package/dist/dataParser/parsers/coerce/index.mjs +6 -0
  163. package/dist/dataParser/parsers/coerce/nil.cjs +13 -0
  164. package/dist/dataParser/parsers/coerce/nil.d.ts +6 -0
  165. package/dist/dataParser/parsers/coerce/nil.mjs +11 -0
  166. package/dist/dataParser/parsers/coerce/number.cjs +13 -0
  167. package/dist/dataParser/parsers/coerce/number.d.ts +6 -0
  168. package/dist/dataParser/parsers/coerce/number.mjs +11 -0
  169. package/dist/dataParser/parsers/coerce/string.cjs +13 -0
  170. package/dist/dataParser/parsers/coerce/string.d.ts +6 -0
  171. package/dist/dataParser/parsers/coerce/string.mjs +11 -0
  172. package/dist/dataParser/parsers/empty.cjs +27 -0
  173. package/dist/dataParser/parsers/empty.d.ts +12 -0
  174. package/dist/dataParser/parsers/empty.mjs +24 -0
  175. package/dist/dataParser/parsers/index.d.ts +20 -0
  176. package/dist/dataParser/parsers/lazy.cjs +21 -0
  177. package/dist/dataParser/parsers/lazy.d.ts +14 -0
  178. package/dist/dataParser/parsers/lazy.mjs +18 -0
  179. package/dist/dataParser/parsers/literal.cjs +25 -0
  180. package/dist/dataParser/parsers/literal.d.ts +15 -0
  181. package/dist/dataParser/parsers/literal.mjs +22 -0
  182. package/dist/dataParser/parsers/nil.cjs +27 -0
  183. package/dist/dataParser/parsers/nil.d.ts +12 -0
  184. package/dist/dataParser/parsers/nil.mjs +24 -0
  185. package/dist/dataParser/parsers/nullable.cjs +31 -0
  186. package/dist/dataParser/parsers/nullable.d.ts +14 -0
  187. package/dist/dataParser/parsers/nullable.mjs +28 -0
  188. package/dist/dataParser/parsers/number/checkers/index.d.ts +3 -0
  189. package/dist/dataParser/parsers/number/checkers/int.cjs +27 -0
  190. package/dist/dataParser/parsers/number/checkers/int.d.ts +15 -0
  191. package/dist/dataParser/parsers/number/checkers/int.mjs +23 -0
  192. package/dist/dataParser/parsers/number/checkers/max.cjs +18 -0
  193. package/dist/dataParser/parsers/number/checkers/max.d.ts +11 -0
  194. package/dist/dataParser/parsers/number/checkers/max.mjs +15 -0
  195. package/dist/dataParser/parsers/number/checkers/min.cjs +18 -0
  196. package/dist/dataParser/parsers/number/checkers/min.d.ts +11 -0
  197. package/dist/dataParser/parsers/number/checkers/min.mjs +15 -0
  198. package/dist/dataParser/parsers/number/index.cjs +31 -0
  199. package/dist/dataParser/parsers/number/index.d.ts +18 -0
  200. package/dist/dataParser/parsers/number/index.mjs +28 -0
  201. package/dist/dataParser/parsers/object.cjs +74 -0
  202. package/dist/dataParser/parsers/object.d.ts +26 -0
  203. package/dist/dataParser/parsers/object.mjs +71 -0
  204. package/dist/dataParser/parsers/optional.cjs +31 -0
  205. package/dist/dataParser/parsers/optional.d.ts +14 -0
  206. package/dist/dataParser/parsers/optional.mjs +28 -0
  207. package/dist/dataParser/parsers/pipe.cjs +34 -0
  208. package/dist/dataParser/parsers/pipe.d.ts +16 -0
  209. package/dist/dataParser/parsers/pipe.mjs +31 -0
  210. package/dist/dataParser/parsers/record.cjs +83 -0
  211. package/dist/dataParser/parsers/record.d.ts +30 -0
  212. package/dist/dataParser/parsers/record.mjs +80 -0
  213. package/dist/dataParser/parsers/string/checkers/email.cjs +31 -0
  214. package/dist/dataParser/parsers/string/checkers/email.d.ts +17 -0
  215. package/dist/dataParser/parsers/string/checkers/email.mjs +27 -0
  216. package/dist/dataParser/parsers/string/checkers/index.d.ts +5 -0
  217. package/dist/dataParser/parsers/string/checkers/max.cjs +18 -0
  218. package/dist/dataParser/parsers/string/checkers/max.d.ts +11 -0
  219. package/dist/dataParser/parsers/string/checkers/max.mjs +15 -0
  220. package/dist/dataParser/parsers/string/checkers/min.cjs +18 -0
  221. package/dist/dataParser/parsers/string/checkers/min.d.ts +11 -0
  222. package/dist/dataParser/parsers/string/checkers/min.mjs +15 -0
  223. package/dist/dataParser/parsers/string/checkers/regex.cjs +20 -0
  224. package/dist/dataParser/parsers/string/checkers/regex.d.ts +11 -0
  225. package/dist/dataParser/parsers/string/checkers/regex.mjs +17 -0
  226. package/dist/dataParser/parsers/string/checkers/url.cjs +48 -0
  227. package/dist/dataParser/parsers/string/checkers/url.d.ts +18 -0
  228. package/dist/dataParser/parsers/string/checkers/url.mjs +44 -0
  229. package/dist/dataParser/parsers/string/index.cjs +31 -0
  230. package/dist/dataParser/parsers/string/index.d.ts +18 -0
  231. package/dist/dataParser/parsers/string/index.mjs +28 -0
  232. package/dist/dataParser/parsers/templateLiteral.cjs +45 -0
  233. package/dist/dataParser/parsers/templateLiteral.d.ts +49 -0
  234. package/dist/dataParser/parsers/templateLiteral.mjs +42 -0
  235. package/dist/dataParser/parsers/transform.cjs +43 -0
  236. package/dist/dataParser/parsers/transform.d.ts +17 -0
  237. package/dist/dataParser/parsers/transform.mjs +40 -0
  238. package/dist/dataParser/parsers/tuple.cjs +83 -0
  239. package/dist/dataParser/parsers/tuple.d.ts +33 -0
  240. package/dist/dataParser/parsers/tuple.mjs +80 -0
  241. package/dist/dataParser/parsers/union.cjs +38 -0
  242. package/dist/dataParser/parsers/union.d.ts +15 -0
  243. package/dist/dataParser/parsers/union.mjs +35 -0
  244. package/dist/dataParser/parsers/unknown.cjs +17 -0
  245. package/dist/dataParser/parsers/unknown.d.ts +11 -0
  246. package/dist/dataParser/parsers/unknown.mjs +14 -0
  247. package/dist/dataParser/types/addCheckersToDefinition.d.ts +5 -0
  248. package/dist/dataParser/types/checkers.d.ts +3 -0
  249. package/dist/dataParser/types/dataParsers.d.ts +5 -0
  250. package/dist/dataParser/types/index.d.ts +4 -0
  251. package/dist/dataParser/types/mergeDefinition.d.ts +5 -0
  252. package/dist/either/bool/falsy.cjs +1 -1
  253. package/dist/either/bool/falsy.mjs +1 -1
  254. package/dist/either/bool/truthy.cjs +1 -1
  255. package/dist/either/bool/truthy.mjs +1 -1
  256. package/dist/either/future/error.cjs +1 -1
  257. package/dist/either/future/error.mjs +1 -1
  258. package/dist/either/future/success.cjs +1 -1
  259. package/dist/either/future/success.mjs +1 -1
  260. package/dist/either/left/create.cjs +1 -1
  261. package/dist/either/left/create.mjs +1 -1
  262. package/dist/either/left/error.cjs +1 -1
  263. package/dist/either/left/error.mjs +1 -1
  264. package/dist/either/left/fail.cjs +1 -1
  265. package/dist/either/left/fail.mjs +1 -1
  266. package/dist/either/nullable/empty.cjs +1 -1
  267. package/dist/either/nullable/empty.mjs +1 -1
  268. package/dist/either/nullable/filled.cjs +1 -1
  269. package/dist/either/nullable/filled.mjs +1 -1
  270. package/dist/either/nullish/empty.cjs +1 -1
  271. package/dist/either/nullish/empty.mjs +1 -1
  272. package/dist/either/nullish/filled.cjs +1 -1
  273. package/dist/either/nullish/filled.mjs +1 -1
  274. package/dist/either/optional/empty.cjs +1 -1
  275. package/dist/either/optional/empty.mjs +1 -1
  276. package/dist/either/optional/filled.cjs +1 -1
  277. package/dist/either/optional/filled.mjs +1 -1
  278. package/dist/either/right/asyncPipe.d.ts +2 -2
  279. package/dist/either/right/create.cjs +1 -1
  280. package/dist/either/right/create.mjs +1 -1
  281. package/dist/either/right/ok.cjs +1 -1
  282. package/dist/either/right/ok.mjs +1 -1
  283. package/dist/either/right/success.cjs +1 -1
  284. package/dist/either/right/success.mjs +1 -1
  285. package/dist/generator/reduce.cjs +1 -1
  286. package/dist/generator/reduce.mjs +1 -1
  287. package/dist/index.cjs +14 -0
  288. package/dist/index.d.ts +6 -0
  289. package/dist/index.mjs +12 -1
  290. package/dist/object/fromEntries.d.ts +1 -1
  291. package/dist/object/types/getPropsWithValueExtends.d.ts +1 -1
  292. package/dist/pattern/result.cjs +1 -1
  293. package/dist/pattern/result.mjs +1 -1
  294. package/package.json +57 -1
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ var kind = require('../../../../common/kind.cjs');
4
+ var base = require('../../../base.cjs');
5
+ var error = require('../../../error.cjs');
6
+
7
+ const dataParserCheckerStringMaxKind = kind.createKind("data-parser-checker-string-max");
8
+ function checkerStringMax(max, definition = {}) {
9
+ return base.dataParserCheckerInit(dataParserCheckerStringMaxKind, {
10
+ definition: {
11
+ ...definition,
12
+ max,
13
+ },
14
+ }, (value, self) => value.length <= self.definition.max ? value : error.SymbolDataParserErrorIssue);
15
+ }
16
+
17
+ exports.checkerStringMax = checkerStringMax;
18
+ exports.dataParserCheckerStringMaxKind = dataParserCheckerStringMaxKind;
@@ -0,0 +1,11 @@
1
+ import { type Kind } from "../../../../common";
2
+ import { type DataParserCheckerDefinition, type DataParserChecker } from "../../../../dataParser/base";
3
+ export interface DataParserCheckerDefinitionStringMax extends DataParserCheckerDefinition {
4
+ max: number;
5
+ }
6
+ export declare const dataParserCheckerStringMaxKind: import("../../../../common").KindHandler<import("../../../../common").KindDefinition<"data-parser-checker-string-max", unknown>>;
7
+ type _DataParserCheckerStringMax = (Kind<typeof dataParserCheckerStringMaxKind.definition> & DataParserChecker<DataParserCheckerDefinitionStringMax, string>);
8
+ export interface DataParserCheckerStringMax extends _DataParserCheckerStringMax {
9
+ }
10
+ export declare function checkerStringMax(max: number, definition?: Partial<Omit<DataParserCheckerDefinitionStringMax, "max">>): DataParserCheckerStringMax;
11
+ export {};
@@ -0,0 +1,15 @@
1
+ import { createKind } from '../../../../common/kind.mjs';
2
+ import { dataParserCheckerInit } from '../../../base.mjs';
3
+ import { SymbolDataParserErrorIssue } from '../../../error.mjs';
4
+
5
+ const dataParserCheckerStringMaxKind = createKind("data-parser-checker-string-max");
6
+ function checkerStringMax(max, definition = {}) {
7
+ return dataParserCheckerInit(dataParserCheckerStringMaxKind, {
8
+ definition: {
9
+ ...definition,
10
+ max,
11
+ },
12
+ }, (value, self) => value.length <= self.definition.max ? value : SymbolDataParserErrorIssue);
13
+ }
14
+
15
+ export { checkerStringMax, dataParserCheckerStringMaxKind };
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ var kind = require('../../../../common/kind.cjs');
4
+ var base = require('../../../base.cjs');
5
+ var error = require('../../../error.cjs');
6
+
7
+ const dataParserCheckerStringMinKind = kind.createKind("data-parser-checker-string-min");
8
+ function checkerStringMin(min, definition = {}) {
9
+ return base.dataParserCheckerInit(dataParserCheckerStringMinKind, {
10
+ definition: {
11
+ ...definition,
12
+ min,
13
+ },
14
+ }, (value, self) => value.length >= self.definition.min ? value : error.SymbolDataParserErrorIssue);
15
+ }
16
+
17
+ exports.checkerStringMin = checkerStringMin;
18
+ exports.dataParserCheckerStringMinKind = dataParserCheckerStringMinKind;
@@ -0,0 +1,11 @@
1
+ import { type Kind } from "../../../../common";
2
+ import { type DataParserCheckerDefinition, type DataParserChecker } from "../../../../dataParser/base";
3
+ export interface DataParserCheckerDefinitionStringMin extends DataParserCheckerDefinition {
4
+ min: number;
5
+ }
6
+ export declare const dataParserCheckerStringMinKind: import("../../../../common").KindHandler<import("../../../../common").KindDefinition<"data-parser-checker-string-min", unknown>>;
7
+ type _DataParserCheckerStringMin = (Kind<typeof dataParserCheckerStringMinKind.definition> & DataParserChecker<DataParserCheckerDefinitionStringMin, string>);
8
+ export interface DataParserCheckerStringMin extends _DataParserCheckerStringMin {
9
+ }
10
+ export declare function checkerStringMin(min: number, definition?: Partial<Omit<DataParserCheckerDefinitionStringMin, "min">>): DataParserCheckerStringMin;
11
+ export {};
@@ -0,0 +1,15 @@
1
+ import { createKind } from '../../../../common/kind.mjs';
2
+ import { dataParserCheckerInit } from '../../../base.mjs';
3
+ import { SymbolDataParserErrorIssue } from '../../../error.mjs';
4
+
5
+ const dataParserCheckerStringMinKind = createKind("data-parser-checker-string-min");
6
+ function checkerStringMin(min, definition = {}) {
7
+ return dataParserCheckerInit(dataParserCheckerStringMinKind, {
8
+ definition: {
9
+ ...definition,
10
+ min,
11
+ },
12
+ }, (value, self) => value.length >= self.definition.min ? value : SymbolDataParserErrorIssue);
13
+ }
14
+
15
+ export { checkerStringMin, dataParserCheckerStringMinKind };
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ var kind = require('../../../../common/kind.cjs');
4
+ var base = require('../../../base.cjs');
5
+ var error = require('../../../error.cjs');
6
+
7
+ const dataParserCheckerStringRegexKind = kind.createKind("data-parser-checker-string-regex");
8
+ function checkerStringRegex(regex, definition = {}) {
9
+ return base.dataParserCheckerInit(dataParserCheckerStringRegexKind, {
10
+ definition: {
11
+ ...definition,
12
+ regex,
13
+ },
14
+ }, (value, self) => self.definition.regex.test(value)
15
+ ? value
16
+ : error.SymbolDataParserErrorIssue);
17
+ }
18
+
19
+ exports.checkerStringRegex = checkerStringRegex;
20
+ exports.dataParserCheckerStringRegexKind = dataParserCheckerStringRegexKind;
@@ -0,0 +1,11 @@
1
+ import { type Kind } from "../../../../common";
2
+ import { type DataParserCheckerDefinition, type DataParserChecker } from "../../../../dataParser/base";
3
+ export interface DataParserCheckerDefinitionStringRegex extends DataParserCheckerDefinition {
4
+ regex: RegExp;
5
+ }
6
+ export declare const dataParserCheckerStringRegexKind: import("../../../../common").KindHandler<import("../../../../common").KindDefinition<"data-parser-checker-string-regex", unknown>>;
7
+ type _DataParserCheckerStringRegex = (Kind<typeof dataParserCheckerStringRegexKind.definition> & DataParserChecker<DataParserCheckerDefinitionStringRegex, string>);
8
+ export interface DataParserCheckerStringRegex extends _DataParserCheckerStringRegex {
9
+ }
10
+ export declare function checkerStringRegex(regex: RegExp, definition?: Partial<Omit<DataParserCheckerDefinitionStringRegex, "regex">>): DataParserCheckerStringRegex;
11
+ export {};
@@ -0,0 +1,17 @@
1
+ import { createKind } from '../../../../common/kind.mjs';
2
+ import { dataParserCheckerInit } from '../../../base.mjs';
3
+ import { SymbolDataParserErrorIssue } from '../../../error.mjs';
4
+
5
+ const dataParserCheckerStringRegexKind = createKind("data-parser-checker-string-regex");
6
+ function checkerStringRegex(regex, definition = {}) {
7
+ return dataParserCheckerInit(dataParserCheckerStringRegexKind, {
8
+ definition: {
9
+ ...definition,
10
+ regex,
11
+ },
12
+ }, (value, self) => self.definition.regex.test(value)
13
+ ? value
14
+ : SymbolDataParserErrorIssue);
15
+ }
16
+
17
+ export { checkerStringRegex, dataParserCheckerStringRegexKind };
@@ -0,0 +1,48 @@
1
+ 'use strict';
2
+
3
+ var kind = require('../../../../common/kind.cjs');
4
+ var base = require('../../../base.cjs');
5
+ var error = require('../../../error.cjs');
6
+ var index = require('../index.cjs');
7
+
8
+ const dataParserCheckerUrlKind = kind.createKind("data-parser-checker-url");
9
+ const regexRemoveDote = /:$/;
10
+ function checkerUrl(definition = {}) {
11
+ return base.dataParserCheckerInit(dataParserCheckerUrlKind, {
12
+ definition: definition,
13
+ }, (input, self) => {
14
+ try {
15
+ const url = new URL(input);
16
+ if (self.definition.hostname) {
17
+ self.definition.hostname.lastIndex = 0;
18
+ if (!self.definition.hostname.test(url.hostname)) {
19
+ return error.SymbolDataParserErrorIssue;
20
+ }
21
+ }
22
+ if (self.definition.protocol) {
23
+ self.definition.protocol.lastIndex = 0;
24
+ if (!self.definition.protocol.test(url.protocol.replace(regexRemoveDote, ""))) {
25
+ return error.SymbolDataParserErrorIssue;
26
+ }
27
+ }
28
+ if (self.definition.normalize) {
29
+ return url.href;
30
+ }
31
+ else {
32
+ return input;
33
+ }
34
+ }
35
+ catch {
36
+ return error.SymbolDataParserErrorIssue;
37
+ }
38
+ });
39
+ }
40
+ function url(definition) {
41
+ return index.string({
42
+ checkers: [checkerUrl(definition)],
43
+ });
44
+ }
45
+
46
+ exports.checkerUrl = checkerUrl;
47
+ exports.dataParserCheckerUrlKind = dataParserCheckerUrlKind;
48
+ exports.url = url;
@@ -0,0 +1,18 @@
1
+ import { type Kind } from "../../../../common";
2
+ import { type DataParserCheckerDefinition, type DataParserChecker } from "../../../../dataParser/base";
3
+ export interface DataParserCheckerDefinitionUrl extends DataParserCheckerDefinition {
4
+ hostname?: RegExp;
5
+ protocol?: RegExp;
6
+ normalize?: boolean;
7
+ }
8
+ export declare const dataParserCheckerUrlKind: import("../../../../common").KindHandler<import("../../../../common").KindDefinition<"data-parser-checker-url", unknown>>;
9
+ type _DataParserCheckerUrl = (Kind<typeof dataParserCheckerUrlKind.definition> & DataParserChecker<DataParserCheckerDefinitionUrl, string>);
10
+ export interface DataParserCheckerUrl extends _DataParserCheckerUrl {
11
+ }
12
+ export declare function checkerUrl(definition?: Partial<DataParserCheckerDefinitionUrl>): DataParserCheckerUrl;
13
+ export declare function url(definition?: Partial<DataParserCheckerDefinitionUrl>): import("..").DataParserString<{
14
+ readonly checkers: readonly [DataParserCheckerUrl];
15
+ readonly errorMessage?: string | undefined;
16
+ readonly coerce: boolean;
17
+ }>;
18
+ export {};
@@ -0,0 +1,44 @@
1
+ import { createKind } from '../../../../common/kind.mjs';
2
+ import { dataParserCheckerInit } from '../../../base.mjs';
3
+ import { SymbolDataParserErrorIssue } from '../../../error.mjs';
4
+ import { string } from '../index.mjs';
5
+
6
+ const dataParserCheckerUrlKind = createKind("data-parser-checker-url");
7
+ const regexRemoveDote = /:$/;
8
+ function checkerUrl(definition = {}) {
9
+ return dataParserCheckerInit(dataParserCheckerUrlKind, {
10
+ definition: definition,
11
+ }, (input, self) => {
12
+ try {
13
+ const url = new URL(input);
14
+ if (self.definition.hostname) {
15
+ self.definition.hostname.lastIndex = 0;
16
+ if (!self.definition.hostname.test(url.hostname)) {
17
+ return SymbolDataParserErrorIssue;
18
+ }
19
+ }
20
+ if (self.definition.protocol) {
21
+ self.definition.protocol.lastIndex = 0;
22
+ if (!self.definition.protocol.test(url.protocol.replace(regexRemoveDote, ""))) {
23
+ return SymbolDataParserErrorIssue;
24
+ }
25
+ }
26
+ if (self.definition.normalize) {
27
+ return url.href;
28
+ }
29
+ else {
30
+ return input;
31
+ }
32
+ }
33
+ catch {
34
+ return SymbolDataParserErrorIssue;
35
+ }
36
+ });
37
+ }
38
+ function url(definition) {
39
+ return string({
40
+ checkers: [checkerUrl(definition)],
41
+ });
42
+ }
43
+
44
+ export { checkerUrl, dataParserCheckerUrlKind, url };
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ var kind = require('../../../common/kind.cjs');
4
+ var base = require('../../base.cjs');
5
+ var error = require('../../error.cjs');
6
+
7
+ const dataParserStringKind = kind.createKind("data-parser-string");
8
+ function string(definition) {
9
+ return base.dataParserInit(dataParserStringKind, {
10
+ definition: {
11
+ errorMessage: definition?.errorMessage,
12
+ checkers: definition?.checkers ?? [],
13
+ coerce: definition?.coerce ?? false,
14
+ },
15
+ }, (data, _error, self) => {
16
+ if (self.definition.coerce) {
17
+ try {
18
+ // eslint-disable-next-line no-param-reassign
19
+ data = String(data);
20
+ }
21
+ catch { }
22
+ }
23
+ if (typeof data === "string") {
24
+ return data;
25
+ }
26
+ return error.SymbolDataParserErrorIssue;
27
+ });
28
+ }
29
+
30
+ exports.dataParserStringKind = dataParserStringKind;
31
+ exports.string = string;
@@ -0,0 +1,18 @@
1
+ import { type NeverCoalescing, type Kind } from "../../../common";
2
+ import { type DataParserDefinition, type DataParser } from "../../base";
3
+ import { type AddCheckersToDefinition, type MergeDefinition } from "../../../dataParser/types";
4
+ import { type DataParserCheckerUrl, type DataParserCheckerEmail, type DataParserCheckerStringMin, type DataParserCheckerStringMax, type DataParserCheckerStringRegex } from "./checkers";
5
+ export * from "./checkers";
6
+ export type DataParserStringCheckers = (DataParserCheckerUrl | DataParserCheckerEmail | DataParserCheckerStringMin | DataParserCheckerStringMax | DataParserCheckerStringRegex);
7
+ export interface DataParserDefinitionString extends DataParserDefinition<DataParserStringCheckers> {
8
+ readonly coerce: boolean;
9
+ }
10
+ export declare const dataParserStringKind: import("../../../common").KindHandler<import("../../../common").KindDefinition<"data-parser-string", unknown>>;
11
+ type _DataParserString<GenericDefinition extends DataParserDefinitionString> = (DataParser<GenericDefinition, string, string> & Kind<typeof dataParserStringKind.definition>);
12
+ export interface DataParserString<GenericDefinition extends DataParserDefinitionString = DataParserDefinitionString> extends _DataParserString<GenericDefinition> {
13
+ addChecker<GenericChecker extends readonly [
14
+ DataParserStringCheckers,
15
+ ...DataParserStringCheckers[]
16
+ ]>(...args: GenericChecker): DataParserString<AddCheckersToDefinition<GenericDefinition, GenericChecker>>;
17
+ }
18
+ export declare function string<const GenericDefinition extends Partial<DataParserDefinitionString> = never>(definition?: GenericDefinition): DataParserString<MergeDefinition<DataParserDefinitionString, NeverCoalescing<GenericDefinition, {}>>>;
@@ -0,0 +1,28 @@
1
+ import { createKind } from '../../../common/kind.mjs';
2
+ import { dataParserInit } from '../../base.mjs';
3
+ import { SymbolDataParserErrorIssue } from '../../error.mjs';
4
+
5
+ const dataParserStringKind = createKind("data-parser-string");
6
+ function string(definition) {
7
+ return dataParserInit(dataParserStringKind, {
8
+ definition: {
9
+ errorMessage: definition?.errorMessage,
10
+ checkers: definition?.checkers ?? [],
11
+ coerce: definition?.coerce ?? false,
12
+ },
13
+ }, (data, _error, self) => {
14
+ if (self.definition.coerce) {
15
+ try {
16
+ // eslint-disable-next-line no-param-reassign
17
+ data = String(data);
18
+ }
19
+ catch { }
20
+ }
21
+ if (typeof data === "string") {
22
+ return data;
23
+ }
24
+ return SymbolDataParserErrorIssue;
25
+ });
26
+ }
27
+
28
+ export { dataParserStringKind, string };
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ var escapeRegExp = require('../../common/escapeRegExp.cjs');
4
+ var kind = require('../../common/kind.cjs');
5
+ var pipe = require('../../common/pipe.cjs');
6
+ var innerPipe = require('../../common/innerPipe.cjs');
7
+ var when$1 = require('../../common/when.cjs');
8
+ var isType = require('../../common/isType.cjs');
9
+ var whenElse = require('../../common/whenElse.cjs');
10
+ var map = require('../../array/map.cjs');
11
+ var join = require('../../array/join.cjs');
12
+ var base = require('../base.cjs');
13
+ var error = require('../error.cjs');
14
+ require('../../pattern/result.cjs');
15
+ var exhaustive = require('../../pattern/exhaustive.cjs');
16
+ var when = require('../../pattern/when.cjs');
17
+ var replace = require('../../string/replace.cjs');
18
+ var index = require('./string/index.cjs');
19
+ var index$2 = require('./number/index.cjs');
20
+ var index$1 = require('./bigint/index.cjs');
21
+ var literal = require('./literal.cjs');
22
+ var empty = require('./empty.cjs');
23
+ var nil = require('./nil.cjs');
24
+ var boolean = require('./boolean.cjs');
25
+
26
+ const dataParserTemplateLiteralKind = kind.createKind("data-parser-template-literal");
27
+ function templateLiteral(template, definition) {
28
+ const pattern = pipe.pipe(template, map.map(innerPipe.innerPipe(when.when(isType.isType("string"), (value) => `(?:${escapeRegExp.escapeRegExp(value)})`), when.when(index$2.dataParserNumberKind.has, () => "(:?[0-9]+)"), when.when(index$1.dataParserBigIntKind.has, () => "(?:[0-9]+n)"), when.when(boolean.dataParserBooleanKind.has, () => "(?:true|false)"), when.when(nil.dataParserNilKind.has, () => "(?:null)"), when.when(empty.dataParserEmptyKind.has, () => "(?:undefined)"), when.when(literal.dataParserLiteralKind.has, (dataParser) => pipe.pipe(dataParser.definition.value, map.map(innerPipe.innerPipe(when$1.when(isType.isType("bigint"), (value) => `${value}n`), String, escapeRegExp.escapeRegExp)), join.join("|"), (pattern) => `(?:${pattern})`)), when.when(index.dataParserStringKind.has, innerPipe.innerPipe(whenElse.whenElse((dataParser) => !!dataParser.definition.checkers.length, (dataParser) => pipe.pipe(dataParser.definition.checkers, map.map((element) => pipe.pipe(element.definition.pattern.source, replace.replace(/^\^/, ""), replace.replace(/\$$/, ""))), join.join("")), () => "(?:[^]*)"))), when.when(dataParserTemplateLiteralKind.has, (dataParser) => pipe.pipe(dataParser.definition.pattern.source, replace.replace(/^\^/, ""), replace.replace(/\$$/, ""), (pattern) => `(?:${pattern})`)), exhaustive.exhaustive)), join.join(""), (pattern) => new RegExp(`^${pattern}$`));
29
+ return base.dataParserInit(dataParserTemplateLiteralKind, {
30
+ definition: {
31
+ errorMessage: definition?.errorMessage,
32
+ checkers: definition?.checkers ?? [],
33
+ template,
34
+ pattern,
35
+ },
36
+ }, (data, _error, self) => {
37
+ if (typeof data === "string" && self.definition.pattern.test(data)) {
38
+ return data;
39
+ }
40
+ return error.SymbolDataParserErrorIssue;
41
+ });
42
+ }
43
+
44
+ exports.dataParserTemplateLiteralKind = dataParserTemplateLiteralKind;
45
+ exports.templateLiteral = templateLiteral;
@@ -0,0 +1,49 @@
1
+ import { type Adaptor, type Kind, type NeverCoalescing } from "../../common";
2
+ import { type DataParserDefinition, type DataParser, type Output, type Input } from "../base";
3
+ import { type MergeDefinition } from "../../dataParser/types";
4
+ import { type DataParserCheckerEmail, type DataParserDefinitionString, type DataParserString } from "./string";
5
+ import { type DataParserDefinitionNumber, type DataParserNumber } from "./number";
6
+ import { type DataParserDefinitionBigInt, type DataParserBigInt } from "./bigint";
7
+ import { type DataParserDefinitionLiteral, type DataParserLiteral } from "./literal";
8
+ import { type DataParserDefinitionEmpty, type DataParserEmpty } from "./empty";
9
+ import { type DataParserDefinitionNil, type DataParserNil } from "./nil";
10
+ import { type DataParserDefinitionBoolean, type DataParserBoolean } from "./boolean";
11
+ export type DataParsersTemplateLiteral = (string | DataParserString<DataParserDefinitionString & {
12
+ readonly checkers: readonly (DataParserCheckerEmail)[];
13
+ }> | DataParserNumber<DataParserDefinitionNumber & {
14
+ readonly checkers: readonly [];
15
+ }> | DataParserBigInt<DataParserDefinitionBigInt & {
16
+ readonly checkers: readonly [];
17
+ }> | DataParserBoolean<DataParserDefinitionBoolean & {
18
+ readonly checkers: readonly [];
19
+ }> | DataParserLiteral<DataParserDefinitionLiteral & {
20
+ readonly checkers: readonly [];
21
+ }> | DataParserEmpty<DataParserDefinitionEmpty & {
22
+ readonly checkers: readonly [];
23
+ }> | DataParserNil<DataParserDefinitionNil & {
24
+ readonly checkers: readonly [];
25
+ }> | DataParserTemplateLiteral<DataParserDefinitionTemplateLiteral & {
26
+ readonly checkers: readonly [];
27
+ }>);
28
+ export type TemplateLiteralShape = readonly [DataParsersTemplateLiteral, ...DataParsersTemplateLiteral[]];
29
+ type EligibleTemplateLiteral = string | number | bigint | boolean | null | undefined;
30
+ export type TemplateLiteralShapeOutput<GenericTemplate extends TemplateLiteralShape, GenericLastResult extends string = ""> = GenericTemplate extends readonly [
31
+ infer InferredFirst extends DataParsersTemplateLiteral,
32
+ ...infer InferredRest extends DataParsersTemplateLiteral[]
33
+ ] ? (`${GenericLastResult}${InferredFirst extends string ? InferredFirst : Adaptor<Output<Exclude<InferredFirst, string>>, EligibleTemplateLiteral>}`) extends infer InferredResult extends string ? InferredRest extends readonly [] ? InferredResult : InferredRest extends TemplateLiteralShape ? TemplateLiteralShapeOutput<InferredRest, InferredResult> : TemplateLiteralShapeOutput<[InferredRest[number]], InferredResult> : never : never;
34
+ export type TemplateLiteralShapeInput<GenericTemplate extends TemplateLiteralShape, GenericLastResult extends string = ""> = GenericTemplate extends readonly [
35
+ infer InferredFirst extends DataParsersTemplateLiteral,
36
+ ...infer InferredRest extends DataParsersTemplateLiteral[]
37
+ ] ? (`${GenericLastResult}${InferredFirst extends string ? InferredFirst : Adaptor<Input<Exclude<InferredFirst, string>>, EligibleTemplateLiteral>}`) extends infer InferredResult extends string ? InferredRest extends readonly [] ? InferredResult : InferredRest extends TemplateLiteralShape ? TemplateLiteralShapeInput<InferredRest, InferredResult> : TemplateLiteralShapeInput<[InferredRest[number]], InferredResult> : never : never;
38
+ export interface DataParserDefinitionTemplateLiteral extends DataParserDefinition<never> {
39
+ readonly template: TemplateLiteralShape;
40
+ readonly pattern: RegExp;
41
+ }
42
+ export declare const dataParserTemplateLiteralKind: import("../../common").KindHandler<import("../../common").KindDefinition<"data-parser-template-literal", unknown>>;
43
+ type _DataParserTemplateLiteral<GenericDefinition extends DataParserDefinitionTemplateLiteral> = (DataParser<GenericDefinition, TemplateLiteralShapeOutput<GenericDefinition["template"]>, TemplateLiteralShapeInput<GenericDefinition["template"]>> & Kind<typeof dataParserTemplateLiteralKind.definition>);
44
+ export interface DataParserTemplateLiteral<GenericDefinition extends DataParserDefinitionTemplateLiteral = DataParserDefinitionTemplateLiteral> extends _DataParserTemplateLiteral<GenericDefinition> {
45
+ }
46
+ export declare function templateLiteral<const GenericTemplate extends TemplateLiteralShape, const GenericDefinition extends Partial<Omit<DataParserDefinitionTemplateLiteral, "template" | "pattern">> = never>(template: GenericTemplate, definition?: GenericDefinition): DataParserTemplateLiteral<MergeDefinition<DataParserDefinitionTemplateLiteral, NeverCoalescing<GenericDefinition, {}> & {
47
+ template: GenericTemplate;
48
+ }>>;
49
+ export {};
@@ -0,0 +1,42 @@
1
+ import { escapeRegExp } from '../../common/escapeRegExp.mjs';
2
+ import { createKind } from '../../common/kind.mjs';
3
+ import { pipe } from '../../common/pipe.mjs';
4
+ import { innerPipe } from '../../common/innerPipe.mjs';
5
+ import { when as when$1 } from '../../common/when.mjs';
6
+ import { isType } from '../../common/isType.mjs';
7
+ import { whenElse } from '../../common/whenElse.mjs';
8
+ import { map } from '../../array/map.mjs';
9
+ import { join } from '../../array/join.mjs';
10
+ import { dataParserInit } from '../base.mjs';
11
+ import { SymbolDataParserErrorIssue } from '../error.mjs';
12
+ import '../../pattern/result.mjs';
13
+ import { exhaustive } from '../../pattern/exhaustive.mjs';
14
+ import { when } from '../../pattern/when.mjs';
15
+ import { replace } from '../../string/replace.mjs';
16
+ import { dataParserStringKind } from './string/index.mjs';
17
+ import { dataParserNumberKind } from './number/index.mjs';
18
+ import { dataParserBigIntKind } from './bigint/index.mjs';
19
+ import { dataParserLiteralKind } from './literal.mjs';
20
+ import { dataParserEmptyKind } from './empty.mjs';
21
+ import { dataParserNilKind } from './nil.mjs';
22
+ import { dataParserBooleanKind } from './boolean.mjs';
23
+
24
+ const dataParserTemplateLiteralKind = createKind("data-parser-template-literal");
25
+ function templateLiteral(template, definition) {
26
+ const pattern = pipe(template, map(innerPipe(when(isType("string"), (value) => `(?:${escapeRegExp(value)})`), when(dataParserNumberKind.has, () => "(:?[0-9]+)"), when(dataParserBigIntKind.has, () => "(?:[0-9]+n)"), when(dataParserBooleanKind.has, () => "(?:true|false)"), when(dataParserNilKind.has, () => "(?:null)"), when(dataParserEmptyKind.has, () => "(?:undefined)"), when(dataParserLiteralKind.has, (dataParser) => pipe(dataParser.definition.value, map(innerPipe(when$1(isType("bigint"), (value) => `${value}n`), String, escapeRegExp)), join("|"), (pattern) => `(?:${pattern})`)), when(dataParserStringKind.has, innerPipe(whenElse((dataParser) => !!dataParser.definition.checkers.length, (dataParser) => pipe(dataParser.definition.checkers, map((element) => pipe(element.definition.pattern.source, replace(/^\^/, ""), replace(/\$$/, ""))), join("")), () => "(?:[^]*)"))), when(dataParserTemplateLiteralKind.has, (dataParser) => pipe(dataParser.definition.pattern.source, replace(/^\^/, ""), replace(/\$$/, ""), (pattern) => `(?:${pattern})`)), exhaustive)), join(""), (pattern) => new RegExp(`^${pattern}$`));
27
+ return dataParserInit(dataParserTemplateLiteralKind, {
28
+ definition: {
29
+ errorMessage: definition?.errorMessage,
30
+ checkers: definition?.checkers ?? [],
31
+ template,
32
+ pattern,
33
+ },
34
+ }, (data, _error, self) => {
35
+ if (typeof data === "string" && self.definition.pattern.test(data)) {
36
+ return data;
37
+ }
38
+ return SymbolDataParserErrorIssue;
39
+ });
40
+ }
41
+
42
+ export { dataParserTemplateLiteralKind, templateLiteral };
@@ -0,0 +1,43 @@
1
+ 'use strict';
2
+
3
+ var kind = require('../../common/kind.cjs');
4
+ var base = require('../base.cjs');
5
+ var error = require('../error.cjs');
6
+
7
+ const dataParserTransformKind = kind.createKind("data-parser-transform");
8
+ function transform(inner, theFunction, definition) {
9
+ return base.dataParserInit(dataParserTransformKind, {
10
+ definition: {
11
+ errorMessage: definition?.errorMessage,
12
+ checkers: definition?.checkers ?? [],
13
+ inner,
14
+ theFunction,
15
+ },
16
+ }, {
17
+ sync: (data, error$1, self) => {
18
+ const innerResult = self.definition.inner.exec(data, error$1);
19
+ if (innerResult === base.SymbolDataParserError) {
20
+ return base.SymbolDataParserError;
21
+ }
22
+ const result = self.definition.theFunction(innerResult, error$1);
23
+ if (result instanceof Promise) {
24
+ return error.SymbolDataParserErrorPromiseIssue;
25
+ }
26
+ return result;
27
+ },
28
+ async: async (data, error$1, self) => {
29
+ const innerResult = await self.definition.inner.asyncExec(data, error$1);
30
+ if (innerResult === base.SymbolDataParserError) {
31
+ return base.SymbolDataParserError;
32
+ }
33
+ let result = self.definition.theFunction(innerResult, error$1);
34
+ if (result instanceof Promise) {
35
+ result = result.catch(() => error.SymbolDataParserErrorPromiseIssue);
36
+ }
37
+ return result;
38
+ },
39
+ });
40
+ }
41
+
42
+ exports.dataParserTransformKind = dataParserTransformKind;
43
+ exports.transform = transform;
@@ -0,0 +1,17 @@
1
+ import { type Kind, type NeverCoalescing } from "../../common";
2
+ import { type DataParserDefinition, type DataParser, type Input, type Output, SymbolDataParserError } from "../base";
3
+ import { type DataParsers, type MergeDefinition } from "../../dataParser/types";
4
+ import { type DataParserError, type SymbolDataParserErrorIssue, SymbolDataParserErrorPromiseIssue } from "../../dataParser/error";
5
+ export interface DataParserDefinitionTransform extends DataParserDefinition<never> {
6
+ readonly inner: DataParsers;
7
+ theFunction(input: any, error: DataParserError): unknown;
8
+ }
9
+ export declare const dataParserTransformKind: import("../../common").KindHandler<import("../../common").KindDefinition<"data-parser-transform", unknown>>;
10
+ type _DataParserTransform<GenericDefinition extends DataParserDefinitionTransform> = (DataParser<GenericDefinition, Exclude<Awaited<ReturnType<GenericDefinition["theFunction"]>>, SymbolDataParserError | SymbolDataParserErrorIssue | SymbolDataParserErrorPromiseIssue>, Input<GenericDefinition["inner"]>> & Kind<typeof dataParserTransformKind.definition>);
11
+ export interface DataParserTransform<GenericDefinition extends DataParserDefinitionTransform = DataParserDefinitionTransform> extends _DataParserTransform<GenericDefinition> {
12
+ }
13
+ export declare function transform<GenericDataParser extends DataParsers, GenericOutput extends unknown, const GenericDefinition extends Partial<Omit<DataParserDefinitionTransform, "inner" | "theFunction">> = never>(inner: GenericDataParser, theFunction: (input: Output<GenericDataParser>, error: DataParserError) => GenericOutput, definition?: GenericDefinition): DataParserTransform<MergeDefinition<DataParserDefinitionTransform, NeverCoalescing<GenericDefinition, {}> & {
14
+ inner: GenericDataParser;
15
+ theFunction(input: Output<GenericDataParser>): GenericOutput;
16
+ }>>;
17
+ export {};
@@ -0,0 +1,40 @@
1
+ import { createKind } from '../../common/kind.mjs';
2
+ import { dataParserInit, SymbolDataParserError } from '../base.mjs';
3
+ import { SymbolDataParserErrorPromiseIssue } from '../error.mjs';
4
+
5
+ const dataParserTransformKind = createKind("data-parser-transform");
6
+ function transform(inner, theFunction, definition) {
7
+ return dataParserInit(dataParserTransformKind, {
8
+ definition: {
9
+ errorMessage: definition?.errorMessage,
10
+ checkers: definition?.checkers ?? [],
11
+ inner,
12
+ theFunction,
13
+ },
14
+ }, {
15
+ sync: (data, error, self) => {
16
+ const innerResult = self.definition.inner.exec(data, error);
17
+ if (innerResult === SymbolDataParserError) {
18
+ return SymbolDataParserError;
19
+ }
20
+ const result = self.definition.theFunction(innerResult, error);
21
+ if (result instanceof Promise) {
22
+ return SymbolDataParserErrorPromiseIssue;
23
+ }
24
+ return result;
25
+ },
26
+ async: async (data, error, self) => {
27
+ const innerResult = await self.definition.inner.asyncExec(data, error);
28
+ if (innerResult === SymbolDataParserError) {
29
+ return SymbolDataParserError;
30
+ }
31
+ let result = self.definition.theFunction(innerResult, error);
32
+ if (result instanceof Promise) {
33
+ result = result.catch(() => SymbolDataParserErrorPromiseIssue);
34
+ }
35
+ return result;
36
+ },
37
+ });
38
+ }
39
+
40
+ export { dataParserTransformKind, transform };