@duplojs/utils 1.0.6 → 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.
- package/dist/array/coalescing.cjs +9 -0
- package/dist/array/coalescing.d.ts +3 -0
- package/dist/array/coalescing.mjs +7 -0
- package/dist/array/index.cjs +2 -0
- package/dist/array/index.d.ts +1 -0
- package/dist/array/index.mjs +1 -0
- package/dist/array/map.cjs +1 -1
- package/dist/array/map.d.ts +2 -2
- package/dist/array/map.mjs +1 -1
- package/dist/array/reduce.cjs +1 -1
- package/dist/array/reduce.mjs +1 -1
- package/dist/array/types/ArrayCoalescing.d.ts +1 -0
- package/dist/array/types/index.d.ts +1 -0
- package/dist/common/escapeRegExp.cjs +2 -2
- package/dist/common/escapeRegExp.d.ts +1 -1
- package/dist/common/escapeRegExp.mjs +2 -2
- package/dist/common/index.d.ts +4 -0
- package/dist/common/instanceOf.cjs +20 -0
- package/dist/common/instanceOf.d.ts +3 -0
- package/dist/common/instanceOf.mjs +18 -0
- package/dist/common/justReturn.cjs +12 -0
- package/dist/common/justReturn.d.ts +3 -0
- package/dist/common/justReturn.mjs +10 -0
- package/dist/common/kind.cjs +38 -1
- package/dist/common/kind.d.ts +22 -4
- package/dist/common/kind.mjs +38 -2
- package/dist/common/memo.cjs +16 -0
- package/dist/common/memo.d.ts +5 -0
- package/dist/common/memo.mjs +14 -0
- package/dist/common/simpleClone.cjs +2 -2
- package/dist/common/simpleClone.mjs +2 -2
- package/dist/common/types/anyConstructor.d.ts +1 -0
- package/dist/common/types/anyPredicate.d.ts +1 -0
- package/dist/common/types/index.d.ts +2 -0
- package/dist/common/types/objectEntry.d.ts +1 -1
- package/dist/common/types/predicate.d.ts +1 -0
- package/dist/common/types/unionContain.d.ts +1 -1
- package/dist/common/when.d.ts +2 -2
- package/dist/common/whenElse.cjs +17 -0
- package/dist/common/whenElse.d.ts +5 -0
- package/dist/common/whenElse.mjs +15 -0
- package/dist/common/whenNot.d.ts +2 -2
- package/dist/dataParser/base.cjs +116 -0
- package/dist/dataParser/base.d.ts +44 -0
- package/dist/dataParser/base.mjs +109 -0
- package/dist/dataParser/baseExtended.cjs +55 -0
- package/dist/dataParser/baseExtended.d.ts +45 -0
- package/dist/dataParser/baseExtended.mjs +52 -0
- package/dist/dataParser/error.cjs +54 -0
- package/dist/dataParser/error.d.ts +31 -0
- package/dist/dataParser/error.mjs +41 -0
- package/dist/dataParser/extended/array.cjs +20 -0
- package/dist/dataParser/extended/array.d.ts +21 -0
- package/dist/dataParser/extended/array.mjs +18 -0
- package/dist/dataParser/extended/bigint.cjs +20 -0
- package/dist/dataParser/extended/bigint.d.ts +19 -0
- package/dist/dataParser/extended/bigint.mjs +18 -0
- package/dist/dataParser/extended/boolean.cjs +11 -0
- package/dist/dataParser/extended/boolean.d.ts +9 -0
- package/dist/dataParser/extended/boolean.mjs +9 -0
- package/dist/dataParser/extended/coerce/bigint.cjs +13 -0
- package/dist/dataParser/extended/coerce/bigint.d.ts +7 -0
- package/dist/dataParser/extended/coerce/bigint.mjs +11 -0
- package/dist/dataParser/extended/coerce/boolean.cjs +13 -0
- package/dist/dataParser/extended/coerce/boolean.d.ts +7 -0
- package/dist/dataParser/extended/coerce/boolean.mjs +11 -0
- package/dist/dataParser/extended/coerce/empty.cjs +13 -0
- package/dist/dataParser/extended/coerce/empty.d.ts +7 -0
- package/dist/dataParser/extended/coerce/empty.mjs +11 -0
- package/dist/dataParser/extended/coerce/index.cjs +17 -0
- package/dist/dataParser/extended/coerce/index.d.ts +6 -0
- package/dist/dataParser/extended/coerce/index.mjs +6 -0
- package/dist/dataParser/extended/coerce/nil.cjs +13 -0
- package/dist/dataParser/extended/coerce/nil.d.ts +7 -0
- package/dist/dataParser/extended/coerce/nil.mjs +11 -0
- package/dist/dataParser/extended/coerce/number.cjs +13 -0
- package/dist/dataParser/extended/coerce/number.d.ts +7 -0
- package/dist/dataParser/extended/coerce/number.mjs +11 -0
- package/dist/dataParser/extended/coerce/string.cjs +13 -0
- package/dist/dataParser/extended/coerce/string.d.ts +7 -0
- package/dist/dataParser/extended/coerce/string.mjs +11 -0
- package/dist/dataParser/extended/empty.cjs +11 -0
- package/dist/dataParser/extended/empty.d.ts +9 -0
- package/dist/dataParser/extended/empty.mjs +9 -0
- package/dist/dataParser/extended/index.cjs +48 -0
- package/dist/dataParser/extended/index.d.ts +22 -0
- package/dist/dataParser/extended/index.mjs +21 -0
- package/dist/dataParser/extended/lazy.cjs +11 -0
- package/dist/dataParser/extended/lazy.d.ts +11 -0
- package/dist/dataParser/extended/lazy.mjs +9 -0
- package/dist/dataParser/extended/literal.cjs +11 -0
- package/dist/dataParser/extended/literal.d.ts +11 -0
- package/dist/dataParser/extended/literal.mjs +9 -0
- package/dist/dataParser/extended/nil.cjs +11 -0
- package/dist/dataParser/extended/nil.d.ts +9 -0
- package/dist/dataParser/extended/nil.mjs +9 -0
- package/dist/dataParser/extended/nullable.cjs +11 -0
- package/dist/dataParser/extended/nullable.d.ts +11 -0
- package/dist/dataParser/extended/nullable.mjs +9 -0
- package/dist/dataParser/extended/number.cjs +27 -0
- package/dist/dataParser/extended/number.d.ts +24 -0
- package/dist/dataParser/extended/number.mjs +24 -0
- package/dist/dataParser/extended/object.cjs +11 -0
- package/dist/dataParser/extended/object.d.ts +11 -0
- package/dist/dataParser/extended/object.mjs +9 -0
- package/dist/dataParser/extended/optional.cjs +11 -0
- package/dist/dataParser/extended/optional.d.ts +11 -0
- package/dist/dataParser/extended/optional.mjs +9 -0
- package/dist/dataParser/extended/pipe.cjs +11 -0
- package/dist/dataParser/extended/pipe.d.ts +12 -0
- package/dist/dataParser/extended/pipe.mjs +9 -0
- package/dist/dataParser/extended/record.cjs +11 -0
- package/dist/dataParser/extended/record.d.ts +12 -0
- package/dist/dataParser/extended/record.mjs +9 -0
- package/dist/dataParser/extended/string.cjs +38 -0
- package/dist/dataParser/extended/string.d.ts +32 -0
- package/dist/dataParser/extended/string.mjs +34 -0
- package/dist/dataParser/extended/templateLiteral.cjs +10 -0
- package/dist/dataParser/extended/templateLiteral.d.ts +11 -0
- package/dist/dataParser/extended/templateLiteral.mjs +8 -0
- package/dist/dataParser/extended/transform.cjs +11 -0
- package/dist/dataParser/extended/transform.d.ts +14 -0
- package/dist/dataParser/extended/transform.mjs +9 -0
- package/dist/dataParser/extended/tuple.cjs +11 -0
- package/dist/dataParser/extended/tuple.d.ts +11 -0
- package/dist/dataParser/extended/tuple.mjs +9 -0
- package/dist/dataParser/extended/union.cjs +11 -0
- package/dist/dataParser/extended/union.d.ts +11 -0
- package/dist/dataParser/extended/union.mjs +9 -0
- package/dist/dataParser/extended/unknown.cjs +11 -0
- package/dist/dataParser/extended/unknown.d.ts +9 -0
- package/dist/dataParser/extended/unknown.mjs +9 -0
- package/dist/dataParser/index.cjs +128 -0
- package/dist/dataParser/index.d.ts +6 -0
- package/dist/dataParser/index.mjs +38 -0
- package/dist/dataParser/parsers/array/checkers/index.d.ts +2 -0
- package/dist/dataParser/parsers/array/checkers/max.cjs +23 -0
- package/dist/dataParser/parsers/array/checkers/max.d.ts +11 -0
- package/dist/dataParser/parsers/array/checkers/max.mjs +20 -0
- package/dist/dataParser/parsers/array/checkers/min.cjs +23 -0
- package/dist/dataParser/parsers/array/checkers/min.d.ts +11 -0
- package/dist/dataParser/parsers/array/checkers/min.mjs +20 -0
- package/dist/dataParser/parsers/array/index.cjs +64 -0
- package/dist/dataParser/parsers/array/index.d.ts +20 -0
- package/dist/dataParser/parsers/array/index.mjs +61 -0
- package/dist/dataParser/parsers/bigint/checkers/index.d.ts +2 -0
- package/dist/dataParser/parsers/bigint/checkers/max.cjs +23 -0
- package/dist/dataParser/parsers/bigint/checkers/max.d.ts +11 -0
- package/dist/dataParser/parsers/bigint/checkers/max.mjs +20 -0
- package/dist/dataParser/parsers/bigint/checkers/min.cjs +23 -0
- package/dist/dataParser/parsers/bigint/checkers/min.d.ts +11 -0
- package/dist/dataParser/parsers/bigint/checkers/min.mjs +20 -0
- package/dist/dataParser/parsers/bigint/index.cjs +31 -0
- package/dist/dataParser/parsers/bigint/index.d.ts +18 -0
- package/dist/dataParser/parsers/bigint/index.mjs +28 -0
- package/dist/dataParser/parsers/boolean.cjs +40 -0
- package/dist/dataParser/parsers/boolean.d.ts +12 -0
- package/dist/dataParser/parsers/boolean.mjs +37 -0
- package/dist/dataParser/parsers/coerce/bigint.cjs +13 -0
- package/dist/dataParser/parsers/coerce/bigint.d.ts +6 -0
- package/dist/dataParser/parsers/coerce/bigint.mjs +11 -0
- package/dist/dataParser/parsers/coerce/boolean.cjs +13 -0
- package/dist/dataParser/parsers/coerce/boolean.d.ts +6 -0
- package/dist/dataParser/parsers/coerce/boolean.mjs +11 -0
- package/dist/dataParser/parsers/coerce/empty.cjs +13 -0
- package/dist/dataParser/parsers/coerce/empty.d.ts +6 -0
- package/dist/dataParser/parsers/coerce/empty.mjs +11 -0
- package/dist/dataParser/parsers/coerce/index.cjs +17 -0
- package/dist/dataParser/parsers/coerce/index.d.ts +6 -0
- package/dist/dataParser/parsers/coerce/index.mjs +6 -0
- package/dist/dataParser/parsers/coerce/nil.cjs +13 -0
- package/dist/dataParser/parsers/coerce/nil.d.ts +6 -0
- package/dist/dataParser/parsers/coerce/nil.mjs +11 -0
- package/dist/dataParser/parsers/coerce/number.cjs +13 -0
- package/dist/dataParser/parsers/coerce/number.d.ts +6 -0
- package/dist/dataParser/parsers/coerce/number.mjs +11 -0
- package/dist/dataParser/parsers/coerce/string.cjs +13 -0
- package/dist/dataParser/parsers/coerce/string.d.ts +6 -0
- package/dist/dataParser/parsers/coerce/string.mjs +11 -0
- package/dist/dataParser/parsers/empty.cjs +27 -0
- package/dist/dataParser/parsers/empty.d.ts +12 -0
- package/dist/dataParser/parsers/empty.mjs +24 -0
- package/dist/dataParser/parsers/index.d.ts +20 -0
- package/dist/dataParser/parsers/lazy.cjs +21 -0
- package/dist/dataParser/parsers/lazy.d.ts +14 -0
- package/dist/dataParser/parsers/lazy.mjs +18 -0
- package/dist/dataParser/parsers/literal.cjs +25 -0
- package/dist/dataParser/parsers/literal.d.ts +15 -0
- package/dist/dataParser/parsers/literal.mjs +22 -0
- package/dist/dataParser/parsers/nil.cjs +27 -0
- package/dist/dataParser/parsers/nil.d.ts +12 -0
- package/dist/dataParser/parsers/nil.mjs +24 -0
- package/dist/dataParser/parsers/nullable.cjs +31 -0
- package/dist/dataParser/parsers/nullable.d.ts +14 -0
- package/dist/dataParser/parsers/nullable.mjs +28 -0
- package/dist/dataParser/parsers/number/checkers/index.d.ts +3 -0
- package/dist/dataParser/parsers/number/checkers/int.cjs +27 -0
- package/dist/dataParser/parsers/number/checkers/int.d.ts +15 -0
- package/dist/dataParser/parsers/number/checkers/int.mjs +23 -0
- package/dist/dataParser/parsers/number/checkers/max.cjs +18 -0
- package/dist/dataParser/parsers/number/checkers/max.d.ts +11 -0
- package/dist/dataParser/parsers/number/checkers/max.mjs +15 -0
- package/dist/dataParser/parsers/number/checkers/min.cjs +18 -0
- package/dist/dataParser/parsers/number/checkers/min.d.ts +11 -0
- package/dist/dataParser/parsers/number/checkers/min.mjs +15 -0
- package/dist/dataParser/parsers/number/index.cjs +31 -0
- package/dist/dataParser/parsers/number/index.d.ts +18 -0
- package/dist/dataParser/parsers/number/index.mjs +28 -0
- package/dist/dataParser/parsers/object.cjs +74 -0
- package/dist/dataParser/parsers/object.d.ts +26 -0
- package/dist/dataParser/parsers/object.mjs +71 -0
- package/dist/dataParser/parsers/optional.cjs +31 -0
- package/dist/dataParser/parsers/optional.d.ts +14 -0
- package/dist/dataParser/parsers/optional.mjs +28 -0
- package/dist/dataParser/parsers/pipe.cjs +34 -0
- package/dist/dataParser/parsers/pipe.d.ts +16 -0
- package/dist/dataParser/parsers/pipe.mjs +31 -0
- package/dist/dataParser/parsers/record.cjs +83 -0
- package/dist/dataParser/parsers/record.d.ts +30 -0
- package/dist/dataParser/parsers/record.mjs +80 -0
- package/dist/dataParser/parsers/string/checkers/email.cjs +31 -0
- package/dist/dataParser/parsers/string/checkers/email.d.ts +17 -0
- package/dist/dataParser/parsers/string/checkers/email.mjs +27 -0
- package/dist/dataParser/parsers/string/checkers/index.d.ts +5 -0
- package/dist/dataParser/parsers/string/checkers/max.cjs +18 -0
- package/dist/dataParser/parsers/string/checkers/max.d.ts +11 -0
- package/dist/dataParser/parsers/string/checkers/max.mjs +15 -0
- package/dist/dataParser/parsers/string/checkers/min.cjs +18 -0
- package/dist/dataParser/parsers/string/checkers/min.d.ts +11 -0
- package/dist/dataParser/parsers/string/checkers/min.mjs +15 -0
- package/dist/dataParser/parsers/string/checkers/regex.cjs +20 -0
- package/dist/dataParser/parsers/string/checkers/regex.d.ts +11 -0
- package/dist/dataParser/parsers/string/checkers/regex.mjs +17 -0
- package/dist/dataParser/parsers/string/checkers/url.cjs +48 -0
- package/dist/dataParser/parsers/string/checkers/url.d.ts +18 -0
- package/dist/dataParser/parsers/string/checkers/url.mjs +44 -0
- package/dist/dataParser/parsers/string/index.cjs +31 -0
- package/dist/dataParser/parsers/string/index.d.ts +18 -0
- package/dist/dataParser/parsers/string/index.mjs +28 -0
- package/dist/dataParser/parsers/templateLiteral.cjs +45 -0
- package/dist/dataParser/parsers/templateLiteral.d.ts +49 -0
- package/dist/dataParser/parsers/templateLiteral.mjs +42 -0
- package/dist/dataParser/parsers/transform.cjs +43 -0
- package/dist/dataParser/parsers/transform.d.ts +17 -0
- package/dist/dataParser/parsers/transform.mjs +40 -0
- package/dist/dataParser/parsers/tuple.cjs +83 -0
- package/dist/dataParser/parsers/tuple.d.ts +33 -0
- package/dist/dataParser/parsers/tuple.mjs +80 -0
- package/dist/dataParser/parsers/union.cjs +38 -0
- package/dist/dataParser/parsers/union.d.ts +15 -0
- package/dist/dataParser/parsers/union.mjs +35 -0
- package/dist/dataParser/parsers/unknown.cjs +17 -0
- package/dist/dataParser/parsers/unknown.d.ts +11 -0
- package/dist/dataParser/parsers/unknown.mjs +14 -0
- package/dist/dataParser/types/addCheckersToDefinition.d.ts +5 -0
- package/dist/dataParser/types/checkers.d.ts +3 -0
- package/dist/dataParser/types/dataParsers.d.ts +5 -0
- package/dist/dataParser/types/index.d.ts +4 -0
- package/dist/dataParser/types/mergeDefinition.d.ts +5 -0
- package/dist/either/bool/falsy.cjs +1 -1
- package/dist/either/bool/falsy.d.ts +2 -2
- package/dist/either/bool/falsy.mjs +1 -1
- package/dist/either/bool/truthy.cjs +1 -1
- package/dist/either/bool/truthy.d.ts +2 -2
- package/dist/either/bool/truthy.mjs +1 -1
- package/dist/either/future/error.cjs +1 -1
- package/dist/either/future/error.mjs +1 -1
- package/dist/either/future/success.cjs +1 -1
- package/dist/either/future/success.mjs +1 -1
- package/dist/either/left/create.cjs +1 -1
- package/dist/either/left/create.mjs +1 -1
- package/dist/either/left/error.cjs +1 -1
- package/dist/either/left/error.mjs +1 -1
- package/dist/either/left/fail.cjs +1 -1
- package/dist/either/left/fail.mjs +1 -1
- package/dist/either/left/when.d.ts +2 -2
- package/dist/either/nullable/empty.cjs +1 -1
- package/dist/either/nullable/empty.d.ts +2 -2
- package/dist/either/nullable/empty.mjs +1 -1
- package/dist/either/nullable/filled.cjs +1 -1
- package/dist/either/nullable/filled.d.ts +2 -2
- package/dist/either/nullable/filled.mjs +1 -1
- package/dist/either/nullish/empty.cjs +1 -1
- package/dist/either/nullish/empty.d.ts +2 -2
- package/dist/either/nullish/empty.mjs +1 -1
- package/dist/either/nullish/filled.cjs +1 -1
- package/dist/either/nullish/filled.d.ts +2 -2
- package/dist/either/nullish/filled.mjs +1 -1
- package/dist/either/optional/empty.cjs +1 -1
- package/dist/either/optional/empty.d.ts +2 -2
- package/dist/either/optional/empty.mjs +1 -1
- package/dist/either/optional/filled.cjs +1 -1
- package/dist/either/optional/filled.d.ts +2 -2
- package/dist/either/optional/filled.mjs +1 -1
- package/dist/either/right/asyncPipe.d.ts +2 -2
- package/dist/either/right/create.cjs +1 -1
- package/dist/either/right/create.mjs +1 -1
- package/dist/either/right/ok.cjs +1 -1
- package/dist/either/right/ok.mjs +1 -1
- package/dist/either/right/success.cjs +1 -1
- package/dist/either/right/success.mjs +1 -1
- package/dist/either/right/when.d.ts +2 -2
- package/dist/either/whenHasInformation.d.ts +2 -2
- package/dist/generator/reduce.cjs +1 -1
- package/dist/generator/reduce.mjs +1 -1
- package/dist/index.cjs +18 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.mjs +14 -1
- package/dist/object/entry.cjs +7 -0
- package/dist/object/entry.d.ts +2 -0
- package/dist/object/entry.mjs +5 -0
- package/dist/object/fromEntries.d.ts +1 -1
- package/dist/object/index.cjs +2 -0
- package/dist/object/index.d.ts +1 -0
- package/dist/object/index.mjs +1 -0
- package/dist/object/keys.cjs +4 -1
- package/dist/object/keys.d.ts +1 -1
- package/dist/object/keys.mjs +4 -1
- package/dist/object/types/getPropsWithValueExtends.d.ts +1 -1
- package/dist/pattern/result.cjs +1 -1
- package/dist/pattern/result.d.ts +1 -1
- package/dist/pattern/result.mjs +1 -1
- package/dist/pattern/when.d.ts +2 -2
- package/package.json +64 -3
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var kind = require('../common/kind.cjs');
|
|
4
|
+
var simpleClone = require('../common/simpleClone.cjs');
|
|
5
|
+
var error = require('./error.cjs');
|
|
6
|
+
var error$1 = require('../either/left/error.cjs');
|
|
7
|
+
var success = require('../either/right/success.cjs');
|
|
8
|
+
|
|
9
|
+
const SymbolDataParserErrorLabel = "SymbolDataParserError";
|
|
10
|
+
const SymbolDataParserError = Symbol.for(SymbolDataParserErrorLabel);
|
|
11
|
+
const dataParserCheckerKind = kind.createKind("data-parser-checker");
|
|
12
|
+
function dataParserCheckerInit(kind, params, exec) {
|
|
13
|
+
return kind.setTo(dataParserCheckerKind.setTo({
|
|
14
|
+
...params,
|
|
15
|
+
exec,
|
|
16
|
+
}));
|
|
17
|
+
}
|
|
18
|
+
const dataParserKind = kind.createKind("data-parser");
|
|
19
|
+
function dataParserInit(kind, params, exec) {
|
|
20
|
+
const formattedExec = typeof exec === "object"
|
|
21
|
+
? exec
|
|
22
|
+
: {
|
|
23
|
+
sync: exec,
|
|
24
|
+
async: exec,
|
|
25
|
+
};
|
|
26
|
+
function middleExec(data, error$1) {
|
|
27
|
+
let result = formattedExec.sync(data, error$1, dataParser);
|
|
28
|
+
if (result === error.SymbolDataParserErrorIssue) {
|
|
29
|
+
error.addIssue(error$1, dataParser, data);
|
|
30
|
+
return SymbolDataParserError;
|
|
31
|
+
}
|
|
32
|
+
else if (result === error.SymbolDataParserErrorPromiseIssue) {
|
|
33
|
+
error.addPromiseIssue(error$1, dataParser, data);
|
|
34
|
+
return SymbolDataParserError;
|
|
35
|
+
}
|
|
36
|
+
else if (result !== SymbolDataParserError
|
|
37
|
+
&& dataParser.definition.checkers.length) {
|
|
38
|
+
for (const checker of dataParser.definition.checkers) {
|
|
39
|
+
const checkerResult = checker.exec(result, checker);
|
|
40
|
+
if (checkerResult === error.SymbolDataParserErrorIssue) {
|
|
41
|
+
error.addIssue(error$1, checker, result);
|
|
42
|
+
return SymbolDataParserError;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
result = checkerResult;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
async function middleAsyncExec(data, error$1) {
|
|
52
|
+
let result = await formattedExec.async(data, error$1, dataParser);
|
|
53
|
+
if (result === error.SymbolDataParserErrorIssue) {
|
|
54
|
+
error.addIssue(error$1, dataParser, data);
|
|
55
|
+
return SymbolDataParserError;
|
|
56
|
+
}
|
|
57
|
+
else if (result === error.SymbolDataParserErrorPromiseIssue) {
|
|
58
|
+
error.addPromiseIssue(error$1, dataParser, data);
|
|
59
|
+
return SymbolDataParserError;
|
|
60
|
+
}
|
|
61
|
+
else if (result !== SymbolDataParserError
|
|
62
|
+
&& dataParser.definition.checkers.length) {
|
|
63
|
+
for (const checker of dataParser.definition.checkers) {
|
|
64
|
+
const checkerResult = checker.exec(result, checker);
|
|
65
|
+
if (checkerResult === error.SymbolDataParserErrorIssue) {
|
|
66
|
+
error.addIssue(error$1, checker, result);
|
|
67
|
+
return SymbolDataParserError;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
result = checkerResult;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
76
|
+
const dataParser = kind.setTo(dataParserKind.setTo({
|
|
77
|
+
...params,
|
|
78
|
+
exec: middleExec,
|
|
79
|
+
asyncExec: middleAsyncExec,
|
|
80
|
+
parse(data) {
|
|
81
|
+
const error$2 = error.createError();
|
|
82
|
+
const result = middleExec(data, error$2);
|
|
83
|
+
if (result === SymbolDataParserError) {
|
|
84
|
+
return error$1.error(error$2);
|
|
85
|
+
}
|
|
86
|
+
return success.success(result);
|
|
87
|
+
},
|
|
88
|
+
async asyncParse(data) {
|
|
89
|
+
const error$2 = error.createError();
|
|
90
|
+
const result = await middleAsyncExec(data, error$2);
|
|
91
|
+
if (result === SymbolDataParserError) {
|
|
92
|
+
return error$1.error(error$2);
|
|
93
|
+
}
|
|
94
|
+
return success.success(result);
|
|
95
|
+
},
|
|
96
|
+
addChecker: (...checkers) => dataParserInit(kind, simpleClone.simpleClone({
|
|
97
|
+
...params,
|
|
98
|
+
definition: {
|
|
99
|
+
...params.definition,
|
|
100
|
+
checkers: [...params.definition.checkers, ...checkers],
|
|
101
|
+
},
|
|
102
|
+
}), exec),
|
|
103
|
+
clone: () => dataParserInit(kind, simpleClone.simpleClone(params), exec),
|
|
104
|
+
}, {
|
|
105
|
+
output: undefined,
|
|
106
|
+
input: undefined,
|
|
107
|
+
}));
|
|
108
|
+
return dataParser;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
exports.SymbolDataParserError = SymbolDataParserError;
|
|
112
|
+
exports.SymbolDataParserErrorLabel = SymbolDataParserErrorLabel;
|
|
113
|
+
exports.dataParserCheckerInit = dataParserCheckerInit;
|
|
114
|
+
exports.dataParserCheckerKind = dataParserCheckerKind;
|
|
115
|
+
exports.dataParserInit = dataParserInit;
|
|
116
|
+
exports.dataParserKind = dataParserKind;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type AnyValue, type GetKindHandler, type GetKindValue, type Kind, type KindHandler, type RemoveKind } from "../common";
|
|
2
|
+
import { SymbolDataParserErrorIssue, SymbolDataParserErrorPromiseIssue, type DataParserError } from "./error";
|
|
3
|
+
import * as DEither from "../either";
|
|
4
|
+
export declare const SymbolDataParserErrorLabel = "SymbolDataParserError";
|
|
5
|
+
export declare const SymbolDataParserError: unique symbol;
|
|
6
|
+
export type SymbolDataParserError = typeof SymbolDataParserError;
|
|
7
|
+
export declare const dataParserCheckerKind: KindHandler<import("../common").KindDefinition<"data-parser-checker", unknown>>;
|
|
8
|
+
export interface DataParserCheckerDefinition {
|
|
9
|
+
readonly errorMessage?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface DataParserChecker<GenericDefinition extends DataParserCheckerDefinition = DataParserCheckerDefinition, GenericInput extends AnyValue = AnyValue> extends Kind<typeof dataParserCheckerKind.definition, GenericInput> {
|
|
12
|
+
readonly definition: GenericDefinition;
|
|
13
|
+
exec(data: GenericInput, self: this): GenericInput | SymbolDataParserErrorIssue;
|
|
14
|
+
}
|
|
15
|
+
export declare function dataParserCheckerInit<GenericDataParserChecker extends DataParserChecker>(kind: Exclude<GetKindHandler<GenericDataParserChecker>, typeof dataParserCheckerKind>, params: NoInfer<Omit<RemoveKind<GenericDataParserChecker>, "exec">>, exec: (...args: Parameters<GenericDataParserChecker["exec"]>) => GetKindValue<typeof dataParserCheckerKind, GenericDataParserChecker> | SymbolDataParserErrorIssue): GenericDataParserChecker;
|
|
16
|
+
export declare const dataParserKind: KindHandler<import("../common").KindDefinition<"data-parser", {
|
|
17
|
+
input: unknown;
|
|
18
|
+
output: unknown;
|
|
19
|
+
}>>;
|
|
20
|
+
export interface DataParserDefinition<GenericChecker extends DataParserChecker = DataParserChecker> {
|
|
21
|
+
readonly errorMessage?: string;
|
|
22
|
+
readonly checkers: readonly GenericChecker[];
|
|
23
|
+
}
|
|
24
|
+
export interface DataParser<GenericDefinition extends DataParserDefinition = DataParserDefinition, GenericOutput extends unknown = unknown, GenericInput extends unknown = GenericOutput> extends Kind<typeof dataParserKind.definition, {
|
|
25
|
+
input: GenericInput;
|
|
26
|
+
output: GenericOutput;
|
|
27
|
+
}> {
|
|
28
|
+
readonly definition: GenericDefinition;
|
|
29
|
+
exec(data: unknown, error: DataParserError): GenericOutput | SymbolDataParserError;
|
|
30
|
+
asyncExec(data: unknown, error: DataParserError): Promise<GenericOutput | SymbolDataParserError>;
|
|
31
|
+
parse(data: unknown): DEither.EitherSuccess<GenericOutput> | DEither.EitherError<DataParserError>;
|
|
32
|
+
asyncParse(data: unknown): Promise<DEither.EitherSuccess<GenericOutput> | DEither.EitherError<DataParserError>>;
|
|
33
|
+
addChecker(...args: never): DataParser;
|
|
34
|
+
clone(): this;
|
|
35
|
+
}
|
|
36
|
+
interface DataParserInitExecParams<GenericDataParser extends DataParser> {
|
|
37
|
+
sync(...args: [...Parameters<GenericDataParser["exec"]>, self: GenericDataParser]): (GetKindValue<typeof dataParserKind, GenericDataParser>["output"] | SymbolDataParserErrorIssue | SymbolDataParserErrorPromiseIssue);
|
|
38
|
+
async(...args: [...Parameters<GenericDataParser["exec"]>, self: GenericDataParser]): Promise<GetKindValue<typeof dataParserKind, GenericDataParser>["output"] | SymbolDataParserErrorIssue | SymbolDataParserErrorPromiseIssue>;
|
|
39
|
+
}
|
|
40
|
+
export declare function dataParserInit<GenericDataParser extends DataParser>(kind: Exclude<GetKindHandler<GenericDataParser>, typeof dataParserKind>, params: NoInfer<Omit<RemoveKind<GenericDataParser>, "parse" | "exec" | "asyncParse" | "asyncExec" | "addChecker" | "clone">>, exec: (DataParserInitExecParams<GenericDataParser> | DataParserInitExecParams<GenericDataParser>["sync"])): GenericDataParser;
|
|
41
|
+
export type Output<GenericDataParser extends DataParser> = GetKindValue<typeof dataParserKind, GenericDataParser>["output"];
|
|
42
|
+
export type Input<GenericDataParser extends DataParser> = GetKindValue<typeof dataParserKind, GenericDataParser>["input"];
|
|
43
|
+
export type Contract<GenericOutput extends unknown, GenericInput extends unknown = GenericOutput> = DataParser<DataParserDefinition<never>, GenericOutput, GenericInput>;
|
|
44
|
+
export {};
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { createKind } from '../common/kind.mjs';
|
|
2
|
+
import { simpleClone } from '../common/simpleClone.mjs';
|
|
3
|
+
import { createError, SymbolDataParserErrorIssue, addIssue, SymbolDataParserErrorPromiseIssue, addPromiseIssue } from './error.mjs';
|
|
4
|
+
import { error } from '../either/left/error.mjs';
|
|
5
|
+
import { success } from '../either/right/success.mjs';
|
|
6
|
+
|
|
7
|
+
const SymbolDataParserErrorLabel = "SymbolDataParserError";
|
|
8
|
+
const SymbolDataParserError = Symbol.for(SymbolDataParserErrorLabel);
|
|
9
|
+
const dataParserCheckerKind = createKind("data-parser-checker");
|
|
10
|
+
function dataParserCheckerInit(kind, params, exec) {
|
|
11
|
+
return kind.setTo(dataParserCheckerKind.setTo({
|
|
12
|
+
...params,
|
|
13
|
+
exec,
|
|
14
|
+
}));
|
|
15
|
+
}
|
|
16
|
+
const dataParserKind = createKind("data-parser");
|
|
17
|
+
function dataParserInit(kind, params, exec) {
|
|
18
|
+
const formattedExec = typeof exec === "object"
|
|
19
|
+
? exec
|
|
20
|
+
: {
|
|
21
|
+
sync: exec,
|
|
22
|
+
async: exec,
|
|
23
|
+
};
|
|
24
|
+
function middleExec(data, error) {
|
|
25
|
+
let result = formattedExec.sync(data, error, dataParser);
|
|
26
|
+
if (result === SymbolDataParserErrorIssue) {
|
|
27
|
+
addIssue(error, dataParser, data);
|
|
28
|
+
return SymbolDataParserError;
|
|
29
|
+
}
|
|
30
|
+
else if (result === SymbolDataParserErrorPromiseIssue) {
|
|
31
|
+
addPromiseIssue(error, dataParser, data);
|
|
32
|
+
return SymbolDataParserError;
|
|
33
|
+
}
|
|
34
|
+
else if (result !== SymbolDataParserError
|
|
35
|
+
&& dataParser.definition.checkers.length) {
|
|
36
|
+
for (const checker of dataParser.definition.checkers) {
|
|
37
|
+
const checkerResult = checker.exec(result, checker);
|
|
38
|
+
if (checkerResult === SymbolDataParserErrorIssue) {
|
|
39
|
+
addIssue(error, checker, result);
|
|
40
|
+
return SymbolDataParserError;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
result = checkerResult;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
async function middleAsyncExec(data, error) {
|
|
50
|
+
let result = await formattedExec.async(data, error, dataParser);
|
|
51
|
+
if (result === SymbolDataParserErrorIssue) {
|
|
52
|
+
addIssue(error, dataParser, data);
|
|
53
|
+
return SymbolDataParserError;
|
|
54
|
+
}
|
|
55
|
+
else if (result === SymbolDataParserErrorPromiseIssue) {
|
|
56
|
+
addPromiseIssue(error, dataParser, data);
|
|
57
|
+
return SymbolDataParserError;
|
|
58
|
+
}
|
|
59
|
+
else if (result !== SymbolDataParserError
|
|
60
|
+
&& dataParser.definition.checkers.length) {
|
|
61
|
+
for (const checker of dataParser.definition.checkers) {
|
|
62
|
+
const checkerResult = checker.exec(result, checker);
|
|
63
|
+
if (checkerResult === SymbolDataParserErrorIssue) {
|
|
64
|
+
addIssue(error, checker, result);
|
|
65
|
+
return SymbolDataParserError;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
result = checkerResult;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return result;
|
|
73
|
+
}
|
|
74
|
+
const dataParser = kind.setTo(dataParserKind.setTo({
|
|
75
|
+
...params,
|
|
76
|
+
exec: middleExec,
|
|
77
|
+
asyncExec: middleAsyncExec,
|
|
78
|
+
parse(data) {
|
|
79
|
+
const error$1 = createError();
|
|
80
|
+
const result = middleExec(data, error$1);
|
|
81
|
+
if (result === SymbolDataParserError) {
|
|
82
|
+
return error(error$1);
|
|
83
|
+
}
|
|
84
|
+
return success(result);
|
|
85
|
+
},
|
|
86
|
+
async asyncParse(data) {
|
|
87
|
+
const error$1 = createError();
|
|
88
|
+
const result = await middleAsyncExec(data, error$1);
|
|
89
|
+
if (result === SymbolDataParserError) {
|
|
90
|
+
return error(error$1);
|
|
91
|
+
}
|
|
92
|
+
return success(result);
|
|
93
|
+
},
|
|
94
|
+
addChecker: (...checkers) => dataParserInit(kind, simpleClone({
|
|
95
|
+
...params,
|
|
96
|
+
definition: {
|
|
97
|
+
...params.definition,
|
|
98
|
+
checkers: [...params.definition.checkers, ...checkers],
|
|
99
|
+
},
|
|
100
|
+
}), exec),
|
|
101
|
+
clone: () => dataParserInit(kind, simpleClone(params), exec),
|
|
102
|
+
}, {
|
|
103
|
+
output: undefined,
|
|
104
|
+
input: undefined,
|
|
105
|
+
}));
|
|
106
|
+
return dataParser;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export { SymbolDataParserError, SymbolDataParserErrorLabel, dataParserCheckerInit, dataParserCheckerKind, dataParserInit, dataParserKind };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var entries = require('../object/entries.cjs');
|
|
4
|
+
var kind = require('../common/kind.cjs');
|
|
5
|
+
var pipe = require('../common/pipe.cjs');
|
|
6
|
+
var fromEntries = require('../object/fromEntries.cjs');
|
|
7
|
+
var entry = require('../object/entry.cjs');
|
|
8
|
+
var map = require('../array/map.cjs');
|
|
9
|
+
require('../pattern/result.cjs');
|
|
10
|
+
var array = require('./extended/array.cjs');
|
|
11
|
+
var transform = require('./extended/transform.cjs');
|
|
12
|
+
var union = require('./extended/union.cjs');
|
|
13
|
+
var nullable = require('./extended/nullable.cjs');
|
|
14
|
+
var optional = require('./extended/optional.cjs');
|
|
15
|
+
var pipe$1 = require('./extended/pipe.cjs');
|
|
16
|
+
|
|
17
|
+
const dataParserExtendedKind = kind.createKind("data-parser-extended");
|
|
18
|
+
function dataParserExtendedInit(dataParser, rest) {
|
|
19
|
+
const self = dataParserExtendedKind.setTo({
|
|
20
|
+
...dataParser,
|
|
21
|
+
...pipe.pipe(rest, entries.entries, map.map(([key, value]) => entry.entry(key, typeof value === "function"
|
|
22
|
+
? (...args) => value(self, ...args)
|
|
23
|
+
: value)), fromEntries.fromEntries),
|
|
24
|
+
array(definition) {
|
|
25
|
+
return array.array(self, definition);
|
|
26
|
+
},
|
|
27
|
+
transform(theFunction, definition) {
|
|
28
|
+
return transform.transform(self, theFunction, definition);
|
|
29
|
+
},
|
|
30
|
+
arrayCoalescing() {
|
|
31
|
+
return union.union([
|
|
32
|
+
self.array(),
|
|
33
|
+
self.transform((data) => [data]),
|
|
34
|
+
]);
|
|
35
|
+
},
|
|
36
|
+
pipe(output, definition) {
|
|
37
|
+
return pipe$1.pipe(self, output, definition);
|
|
38
|
+
},
|
|
39
|
+
nullable(definition) {
|
|
40
|
+
return nullable.nullable(self, definition);
|
|
41
|
+
},
|
|
42
|
+
optional(definition) {
|
|
43
|
+
return optional.optional(self, definition);
|
|
44
|
+
},
|
|
45
|
+
or(option, definition) {
|
|
46
|
+
return union.union([self, option], definition);
|
|
47
|
+
},
|
|
48
|
+
addChecker: (...checkers) => dataParserExtendedInit(dataParser.addChecker(...checkers), rest),
|
|
49
|
+
clone: () => dataParserExtendedInit(dataParser.clone(), rest),
|
|
50
|
+
});
|
|
51
|
+
return self;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
exports.dataParserExtendedInit = dataParserExtendedInit;
|
|
55
|
+
exports.dataParserExtendedKind = dataParserExtendedKind;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type Kind, type NeverCoalescing, type AnyFunction, type SimplifyTopLevel, type AnyValue } from "../common";
|
|
2
|
+
import { type DataParsers, type MergeDefinition } from "./types";
|
|
3
|
+
import { type Output, type DataParser } from "./base";
|
|
4
|
+
import type * as dataParsers from "./parsers";
|
|
5
|
+
import * as dataParsersExtended from "./extended";
|
|
6
|
+
import { type DataParserError } from "./error";
|
|
7
|
+
export declare const dataParserExtendedKind: import("../common").KindHandler<import("../common").KindDefinition<"data-parser-extended", unknown>>;
|
|
8
|
+
type _DataParserExtended = (DataParser & Kind<typeof dataParserExtendedKind.definition>);
|
|
9
|
+
export interface DataParserExtended extends _DataParserExtended {
|
|
10
|
+
array<GenericThis extends this = this, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionArray, "element">> = never>(definition?: GenericDefinition): dataParsersExtended.DataParserArrayExtended<MergeDefinition<dataParsers.DataParserDefinitionArray, NeverCoalescing<GenericDefinition, {}> & {
|
|
11
|
+
element: GenericThis;
|
|
12
|
+
}>>;
|
|
13
|
+
transform<GenericThis extends this = this, GenericOutput extends AnyValue = AnyValue, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionTransform, "inner" | "theFunction">> = never>(theFunction: (input: Output<GenericThis>, error: DataParserError) => GenericOutput, definition?: GenericDefinition): dataParsersExtended.DataParserTransformExtended<MergeDefinition<dataParsers.DataParserDefinitionTransform, NeverCoalescing<GenericDefinition, {}> & {
|
|
14
|
+
inner: GenericThis;
|
|
15
|
+
theFunction(input: Output<GenericThis>): GenericOutput;
|
|
16
|
+
}>>;
|
|
17
|
+
arrayCoalescing<GenericThis extends this = this>(): dataParsersExtended.DataParserUnionExtended<SimplifyTopLevel<Omit<dataParsers.DataParserDefinitionUnion, "options"> & {
|
|
18
|
+
readonly options: [
|
|
19
|
+
dataParsersExtended.DataParserArrayExtended<SimplifyTopLevel<Omit<dataParsers.DataParserDefinitionArray, "element"> & {
|
|
20
|
+
readonly element: GenericThis;
|
|
21
|
+
}>>,
|
|
22
|
+
dataParsersExtended.DataParserTransformExtended<SimplifyTopLevel<Omit<dataParsers.DataParserDefinitionTransform, "inner" | "theFunction"> & {
|
|
23
|
+
readonly inner: GenericThis;
|
|
24
|
+
theFunction(input: Output<GenericThis>, error: DataParserError): Output<GenericThis>[];
|
|
25
|
+
}>>
|
|
26
|
+
];
|
|
27
|
+
}>>;
|
|
28
|
+
pipe<GenericThis extends this = this, GenericOutput extends DataParsers = DataParsers, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionPipe, "input" | "output">> = never>(output: GenericOutput, definition?: GenericDefinition): dataParsersExtended.DataParserPipeExtended<MergeDefinition<dataParsers.DataParserDefinitionPipe, NeverCoalescing<GenericDefinition, {}> & {
|
|
29
|
+
input: GenericThis;
|
|
30
|
+
output: GenericOutput;
|
|
31
|
+
}>>;
|
|
32
|
+
nullable<GenericThis extends this = this, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionNullable, "inner">> = never>(definition?: GenericDefinition): dataParsersExtended.DataParserNullableExtended<MergeDefinition<dataParsers.DataParserDefinitionNullable, NeverCoalescing<GenericDefinition, {}> & {
|
|
33
|
+
inner: GenericThis;
|
|
34
|
+
}>>;
|
|
35
|
+
optional<GenericThis extends this = this, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionOptional, "inner">> = never>(definition?: GenericDefinition): dataParsersExtended.DataParserOptionalExtended<MergeDefinition<dataParsers.DataParserDefinitionOptional, NeverCoalescing<GenericDefinition, {}> & {
|
|
36
|
+
inner: GenericThis;
|
|
37
|
+
}>>;
|
|
38
|
+
or<GenericThis extends this = this, GenericDataParser extends DataParsers = DataParsers, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionUnion, "options">> = never>(option: GenericDataParser, definition?: GenericDefinition): dataParsersExtended.DataParserUnionExtended<MergeDefinition<dataParsers.DataParserDefinitionUnion, NeverCoalescing<GenericDefinition, {}> & {
|
|
39
|
+
options: [GenericThis, GenericDataParser];
|
|
40
|
+
}>>;
|
|
41
|
+
}
|
|
42
|
+
export declare function dataParserExtendedInit<GenericDataParser extends DataParser, GenericDataParserExtended extends GenericDataParser & DataParserExtended>(dataParser: NoInfer<GenericDataParser>, rest: NoInfer<{
|
|
43
|
+
[Prop in Exclude<keyof GenericDataParserExtended, keyof (GenericDataParser & DataParserExtended)>]: GenericDataParserExtended[Prop] extends AnyFunction ? (self: GenericDataParserExtended, ...args: Parameters<GenericDataParserExtended[Prop]>) => ReturnType<GenericDataParserExtended[Prop]> : GenericDataParserExtended[Prop];
|
|
44
|
+
}>): GenericDataParserExtended;
|
|
45
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { entries } from '../object/entries.mjs';
|
|
2
|
+
import { createKind } from '../common/kind.mjs';
|
|
3
|
+
import { pipe } from '../common/pipe.mjs';
|
|
4
|
+
import { fromEntries } from '../object/fromEntries.mjs';
|
|
5
|
+
import { entry } from '../object/entry.mjs';
|
|
6
|
+
import { map } from '../array/map.mjs';
|
|
7
|
+
import '../pattern/result.mjs';
|
|
8
|
+
import { array } from './extended/array.mjs';
|
|
9
|
+
import { transform } from './extended/transform.mjs';
|
|
10
|
+
import { union } from './extended/union.mjs';
|
|
11
|
+
import { nullable } from './extended/nullable.mjs';
|
|
12
|
+
import { optional } from './extended/optional.mjs';
|
|
13
|
+
import { pipe as pipe$1 } from './extended/pipe.mjs';
|
|
14
|
+
|
|
15
|
+
const dataParserExtendedKind = createKind("data-parser-extended");
|
|
16
|
+
function dataParserExtendedInit(dataParser, rest) {
|
|
17
|
+
const self = dataParserExtendedKind.setTo({
|
|
18
|
+
...dataParser,
|
|
19
|
+
...pipe(rest, entries, map(([key, value]) => entry(key, typeof value === "function"
|
|
20
|
+
? (...args) => value(self, ...args)
|
|
21
|
+
: value)), fromEntries),
|
|
22
|
+
array(definition) {
|
|
23
|
+
return array(self, definition);
|
|
24
|
+
},
|
|
25
|
+
transform(theFunction, definition) {
|
|
26
|
+
return transform(self, theFunction, definition);
|
|
27
|
+
},
|
|
28
|
+
arrayCoalescing() {
|
|
29
|
+
return union([
|
|
30
|
+
self.array(),
|
|
31
|
+
self.transform((data) => [data]),
|
|
32
|
+
]);
|
|
33
|
+
},
|
|
34
|
+
pipe(output, definition) {
|
|
35
|
+
return pipe$1(self, output, definition);
|
|
36
|
+
},
|
|
37
|
+
nullable(definition) {
|
|
38
|
+
return nullable(self, definition);
|
|
39
|
+
},
|
|
40
|
+
optional(definition) {
|
|
41
|
+
return optional(self, definition);
|
|
42
|
+
},
|
|
43
|
+
or(option, definition) {
|
|
44
|
+
return union([self, option], definition);
|
|
45
|
+
},
|
|
46
|
+
addChecker: (...checkers) => dataParserExtendedInit(dataParser.addChecker(...checkers), rest),
|
|
47
|
+
clone: () => dataParserExtendedInit(dataParser.clone(), rest),
|
|
48
|
+
});
|
|
49
|
+
return self;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export { dataParserExtendedInit, dataParserExtendedKind };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var kind = require('../common/kind.cjs');
|
|
4
|
+
|
|
5
|
+
const SymbolDataParserErrorIssueLabel = "SymbolDataParserErrorIssue";
|
|
6
|
+
const SymbolDataParserErrorIssue = Symbol.for(SymbolDataParserErrorIssueLabel);
|
|
7
|
+
const dataParserErrorIssueKind = kind.createKind("data-parser-error-issue");
|
|
8
|
+
const SymbolDataParserErrorPromiseIssueLabel = "SymbolDataParserErrorPromiseIssue";
|
|
9
|
+
const SymbolDataParserErrorPromiseIssue = Symbol.for(SymbolDataParserErrorPromiseIssueLabel);
|
|
10
|
+
const dataParserErrorPromiseIssueKind = kind.createKind("data-parser-error-issue-promise");
|
|
11
|
+
const dataParserErrorKind = kind.createKind("data-parser-error");
|
|
12
|
+
function createError() {
|
|
13
|
+
return dataParserErrorKind.setTo({
|
|
14
|
+
issues: [],
|
|
15
|
+
currentPath: [],
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function addIssue(error, source, data) {
|
|
19
|
+
error.issues.push(dataParserErrorIssueKind.setTo({
|
|
20
|
+
source,
|
|
21
|
+
path: error.currentPath.join("."),
|
|
22
|
+
data,
|
|
23
|
+
}));
|
|
24
|
+
return error;
|
|
25
|
+
}
|
|
26
|
+
function addPromiseIssue(error, source, data) {
|
|
27
|
+
error.issues.push(dataParserErrorPromiseIssueKind.setTo({
|
|
28
|
+
source,
|
|
29
|
+
path: error.currentPath.join("."),
|
|
30
|
+
data,
|
|
31
|
+
}));
|
|
32
|
+
return error;
|
|
33
|
+
}
|
|
34
|
+
function setErrorPath(error, value, index) {
|
|
35
|
+
error.currentPath[index] = value;
|
|
36
|
+
return error;
|
|
37
|
+
}
|
|
38
|
+
function popErrorPath(error) {
|
|
39
|
+
error.currentPath.pop();
|
|
40
|
+
return error;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
exports.SymbolDataParserErrorIssue = SymbolDataParserErrorIssue;
|
|
44
|
+
exports.SymbolDataParserErrorIssueLabel = SymbolDataParserErrorIssueLabel;
|
|
45
|
+
exports.SymbolDataParserErrorPromiseIssue = SymbolDataParserErrorPromiseIssue;
|
|
46
|
+
exports.SymbolDataParserErrorPromiseIssueLabel = SymbolDataParserErrorPromiseIssueLabel;
|
|
47
|
+
exports.addIssue = addIssue;
|
|
48
|
+
exports.addPromiseIssue = addPromiseIssue;
|
|
49
|
+
exports.createError = createError;
|
|
50
|
+
exports.dataParserErrorIssueKind = dataParserErrorIssueKind;
|
|
51
|
+
exports.dataParserErrorKind = dataParserErrorKind;
|
|
52
|
+
exports.dataParserErrorPromiseIssueKind = dataParserErrorPromiseIssueKind;
|
|
53
|
+
exports.popErrorPath = popErrorPath;
|
|
54
|
+
exports.setErrorPath = setErrorPath;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type Kind } from "../common";
|
|
2
|
+
import { type DataParsers, type Checkers } from "./types";
|
|
3
|
+
import { type DataParserTransform } from "./parsers";
|
|
4
|
+
export declare const SymbolDataParserErrorIssueLabel = "SymbolDataParserErrorIssue";
|
|
5
|
+
export declare const SymbolDataParserErrorIssue: unique symbol;
|
|
6
|
+
export type SymbolDataParserErrorIssue = typeof SymbolDataParserErrorIssue;
|
|
7
|
+
export declare const dataParserErrorIssueKind: import("../common").KindHandler<import("../common").KindDefinition<"data-parser-error-issue", unknown>>;
|
|
8
|
+
export interface DataParserErrorIssue extends Kind<typeof dataParserErrorIssueKind.definition> {
|
|
9
|
+
readonly source: DataParsers | Checkers;
|
|
10
|
+
readonly path: string;
|
|
11
|
+
readonly data: unknown;
|
|
12
|
+
}
|
|
13
|
+
export declare const SymbolDataParserErrorPromiseIssueLabel = "SymbolDataParserErrorPromiseIssue";
|
|
14
|
+
export declare const SymbolDataParserErrorPromiseIssue: unique symbol;
|
|
15
|
+
export type SymbolDataParserErrorPromiseIssue = typeof SymbolDataParserErrorPromiseIssue;
|
|
16
|
+
export declare const dataParserErrorPromiseIssueKind: import("../common").KindHandler<import("../common").KindDefinition<"data-parser-error-issue-promise", unknown>>;
|
|
17
|
+
export interface DataParserErrorPromiseIssue extends Kind<typeof dataParserErrorPromiseIssueKind.definition> {
|
|
18
|
+
readonly source: DataParserTransform;
|
|
19
|
+
readonly path: string;
|
|
20
|
+
readonly data: unknown;
|
|
21
|
+
}
|
|
22
|
+
export declare const dataParserErrorKind: import("../common").KindHandler<import("../common").KindDefinition<"data-parser-error", unknown>>;
|
|
23
|
+
export interface DataParserError extends Kind<typeof dataParserErrorKind.definition> {
|
|
24
|
+
readonly issues: (DataParserErrorIssue | DataParserErrorPromiseIssue)[];
|
|
25
|
+
readonly currentPath: string[];
|
|
26
|
+
}
|
|
27
|
+
export declare function createError(): DataParserError;
|
|
28
|
+
export declare function addIssue(error: DataParserError, source: DataParsers | Checkers, data: unknown): DataParserError;
|
|
29
|
+
export declare function addPromiseIssue(error: DataParserError, source: DataParserTransform, data: unknown): DataParserError;
|
|
30
|
+
export declare function setErrorPath(error: DataParserError, value: string, index: number): DataParserError;
|
|
31
|
+
export declare function popErrorPath(error: DataParserError): DataParserError;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { createKind } from '../common/kind.mjs';
|
|
2
|
+
|
|
3
|
+
const SymbolDataParserErrorIssueLabel = "SymbolDataParserErrorIssue";
|
|
4
|
+
const SymbolDataParserErrorIssue = Symbol.for(SymbolDataParserErrorIssueLabel);
|
|
5
|
+
const dataParserErrorIssueKind = createKind("data-parser-error-issue");
|
|
6
|
+
const SymbolDataParserErrorPromiseIssueLabel = "SymbolDataParserErrorPromiseIssue";
|
|
7
|
+
const SymbolDataParserErrorPromiseIssue = Symbol.for(SymbolDataParserErrorPromiseIssueLabel);
|
|
8
|
+
const dataParserErrorPromiseIssueKind = createKind("data-parser-error-issue-promise");
|
|
9
|
+
const dataParserErrorKind = createKind("data-parser-error");
|
|
10
|
+
function createError() {
|
|
11
|
+
return dataParserErrorKind.setTo({
|
|
12
|
+
issues: [],
|
|
13
|
+
currentPath: [],
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
function addIssue(error, source, data) {
|
|
17
|
+
error.issues.push(dataParserErrorIssueKind.setTo({
|
|
18
|
+
source,
|
|
19
|
+
path: error.currentPath.join("."),
|
|
20
|
+
data,
|
|
21
|
+
}));
|
|
22
|
+
return error;
|
|
23
|
+
}
|
|
24
|
+
function addPromiseIssue(error, source, data) {
|
|
25
|
+
error.issues.push(dataParserErrorPromiseIssueKind.setTo({
|
|
26
|
+
source,
|
|
27
|
+
path: error.currentPath.join("."),
|
|
28
|
+
data,
|
|
29
|
+
}));
|
|
30
|
+
return error;
|
|
31
|
+
}
|
|
32
|
+
function setErrorPath(error, value, index) {
|
|
33
|
+
error.currentPath[index] = value;
|
|
34
|
+
return error;
|
|
35
|
+
}
|
|
36
|
+
function popErrorPath(error) {
|
|
37
|
+
error.currentPath.pop();
|
|
38
|
+
return error;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export { SymbolDataParserErrorIssue, SymbolDataParserErrorIssueLabel, SymbolDataParserErrorPromiseIssue, SymbolDataParserErrorPromiseIssueLabel, addIssue, addPromiseIssue, createError, dataParserErrorIssueKind, dataParserErrorKind, dataParserErrorPromiseIssueKind, popErrorPath, setErrorPath };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var baseExtended = require('../baseExtended.cjs');
|
|
4
|
+
var index = require('../parsers/array/index.cjs');
|
|
5
|
+
require('../../pattern/result.cjs');
|
|
6
|
+
var max = require('../parsers/array/checkers/max.cjs');
|
|
7
|
+
var min = require('../parsers/array/checkers/min.cjs');
|
|
8
|
+
|
|
9
|
+
function array(element, definition) {
|
|
10
|
+
return baseExtended.dataParserExtendedInit(index.array(element, definition), {
|
|
11
|
+
min(self, min$1, definition) {
|
|
12
|
+
return self.addChecker(min.checkerArrayMin(min$1, definition));
|
|
13
|
+
},
|
|
14
|
+
max(self, max$1, definition) {
|
|
15
|
+
return self.addChecker(max.checkerArrayMax(max$1, definition));
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
exports.array = array;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type NeverCoalescing } from "../../common";
|
|
2
|
+
import { type DataParserExtended } from "../baseExtended";
|
|
3
|
+
import { type AddCheckersToDefinition, type DataParsers, type MergeDefinition } from "../types";
|
|
4
|
+
import * as dataParsers from "../parsers";
|
|
5
|
+
type _DataParserArrayExtended<GenericDefinition extends dataParsers.DataParserDefinitionArray> = (dataParsers.DataParserArray<GenericDefinition> & DataParserExtended);
|
|
6
|
+
export interface DataParserArrayExtended<GenericDefinition extends dataParsers.DataParserDefinitionArray = dataParsers.DataParserDefinitionArray> extends _DataParserArrayExtended<GenericDefinition> {
|
|
7
|
+
addChecker<GenericChecker extends readonly [
|
|
8
|
+
dataParsers.DataParserArrayCheckers,
|
|
9
|
+
...dataParsers.DataParserArrayCheckers[]
|
|
10
|
+
]>(...args: GenericChecker): DataParserArrayExtended<AddCheckersToDefinition<GenericDefinition, GenericChecker>>;
|
|
11
|
+
min(min: number, definition?: Partial<Omit<dataParsers.DataParserCheckerDefinitionArrayMin, "min">>): DataParserArrayExtended<AddCheckersToDefinition<GenericDefinition, [
|
|
12
|
+
dataParsers.DataParserCheckerArrayMin
|
|
13
|
+
]>>;
|
|
14
|
+
max(max: number, definition?: Partial<Omit<dataParsers.DataParserCheckerDefinitionArrayMax, "max">>): DataParserArrayExtended<AddCheckersToDefinition<GenericDefinition, [
|
|
15
|
+
dataParsers.DataParserCheckerArrayMax
|
|
16
|
+
]>>;
|
|
17
|
+
}
|
|
18
|
+
export declare function array<GenericElement extends DataParsers, const GenericDefinition extends Partial<Omit<dataParsers.DataParserDefinitionArray, "element">> = never>(element: GenericElement, definition?: GenericDefinition): DataParserArrayExtended<MergeDefinition<dataParsers.DataParserDefinitionArray, NeverCoalescing<GenericDefinition, {}> & {
|
|
19
|
+
element: GenericElement;
|
|
20
|
+
}>>;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { dataParserExtendedInit } from '../baseExtended.mjs';
|
|
2
|
+
import { array as array$1 } from '../parsers/array/index.mjs';
|
|
3
|
+
import '../../pattern/result.mjs';
|
|
4
|
+
import { checkerArrayMax } from '../parsers/array/checkers/max.mjs';
|
|
5
|
+
import { checkerArrayMin } from '../parsers/array/checkers/min.mjs';
|
|
6
|
+
|
|
7
|
+
function array(element, definition) {
|
|
8
|
+
return dataParserExtendedInit(array$1(element, definition), {
|
|
9
|
+
min(self, min, definition) {
|
|
10
|
+
return self.addChecker(checkerArrayMin(min, definition));
|
|
11
|
+
},
|
|
12
|
+
max(self, max, definition) {
|
|
13
|
+
return self.addChecker(checkerArrayMax(max, definition));
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { array };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var baseExtended = require('../baseExtended.cjs');
|
|
4
|
+
var index = require('../parsers/bigint/index.cjs');
|
|
5
|
+
require('../../pattern/result.cjs');
|
|
6
|
+
var max = require('../parsers/bigint/checkers/max.cjs');
|
|
7
|
+
var min = require('../parsers/bigint/checkers/min.cjs');
|
|
8
|
+
|
|
9
|
+
function bigint(definition) {
|
|
10
|
+
return baseExtended.dataParserExtendedInit(index.bigint(definition), {
|
|
11
|
+
min(self, min$1, definition) {
|
|
12
|
+
return self.addChecker(min.checkerBigIntMin(min$1, definition));
|
|
13
|
+
},
|
|
14
|
+
max(self, max$1, definition) {
|
|
15
|
+
return self.addChecker(max.checkerBigIntMax(max$1, definition));
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
exports.bigint = bigint;
|