@duplojs/utils 1.0.7 → 1.1.8
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 +2 -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/kind.cjs +45 -1
- package/dist/common/kind.d.ts +24 -4
- package/dist/common/kind.mjs +44 -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/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/kind.cjs +7 -0
- package/dist/dataParser/kind.d.ts +1 -0
- package/dist/dataParser/kind.mjs +5 -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/base.cjs +2 -2
- package/dist/either/bool/base.d.ts +1 -1
- package/dist/either/bool/base.mjs +2 -2
- package/dist/either/bool/falsy.cjs +5 -5
- package/dist/either/bool/falsy.d.ts +4 -4
- package/dist/either/bool/falsy.mjs +5 -5
- package/dist/either/bool/truthy.cjs +4 -4
- package/dist/either/bool/truthy.d.ts +5 -5
- package/dist/either/bool/truthy.mjs +4 -4
- package/dist/either/future/base.cjs +2 -2
- package/dist/either/future/base.d.ts +1 -1
- package/dist/either/future/base.mjs +2 -2
- package/dist/either/future/error.cjs +3 -3
- package/dist/either/future/error.d.ts +1 -1
- package/dist/either/future/error.mjs +3 -3
- package/dist/either/future/success.cjs +3 -3
- package/dist/either/future/success.d.ts +2 -2
- package/dist/either/future/success.mjs +3 -3
- package/dist/either/hasInformation.cjs +3 -3
- package/dist/either/hasInformation.d.ts +1 -1
- package/dist/either/hasInformation.mjs +1 -1
- package/dist/either/index.cjs +3 -2
- package/dist/either/index.d.ts +1 -1
- package/dist/either/index.mjs +1 -1
- package/dist/either/kind.cjs +9 -0
- package/dist/either/kind.d.ts +2 -0
- package/dist/either/kind.mjs +6 -0
- package/dist/either/left/create.cjs +3 -4
- package/dist/either/left/create.d.ts +2 -2
- package/dist/either/left/create.mjs +3 -4
- package/dist/either/left/error.cjs +3 -3
- package/dist/either/left/error.d.ts +1 -1
- package/dist/either/left/error.mjs +3 -3
- package/dist/either/left/fail.cjs +3 -3
- package/dist/either/left/fail.d.ts +1 -1
- package/dist/either/left/fail.mjs +3 -3
- package/dist/either/left/is.cjs +2 -2
- package/dist/either/left/is.mjs +1 -1
- package/dist/either/nullable/base.cjs +2 -2
- package/dist/either/nullable/base.d.ts +1 -1
- package/dist/either/nullable/base.mjs +2 -2
- package/dist/either/nullable/empty.cjs +3 -3
- package/dist/either/nullable/empty.d.ts +1 -1
- package/dist/either/nullable/empty.mjs +3 -3
- package/dist/either/nullable/filled.cjs +3 -3
- package/dist/either/nullable/filled.d.ts +1 -1
- package/dist/either/nullable/filled.mjs +3 -3
- package/dist/either/nullish/base.cjs +2 -2
- package/dist/either/nullish/base.d.ts +1 -1
- package/dist/either/nullish/base.mjs +2 -2
- package/dist/either/nullish/empty.cjs +3 -3
- package/dist/either/nullish/empty.d.ts +2 -2
- package/dist/either/nullish/empty.mjs +3 -3
- package/dist/either/nullish/filled.cjs +4 -4
- package/dist/either/nullish/filled.d.ts +1 -1
- package/dist/either/nullish/filled.mjs +4 -4
- package/dist/either/optional/base.cjs +2 -2
- package/dist/either/optional/base.d.ts +1 -1
- package/dist/either/optional/base.mjs +2 -2
- package/dist/either/optional/empty.cjs +5 -5
- package/dist/either/optional/empty.d.ts +3 -3
- package/dist/either/optional/empty.mjs +5 -5
- package/dist/either/optional/filled.cjs +5 -5
- package/dist/either/optional/filled.d.ts +3 -3
- package/dist/either/optional/filled.mjs +5 -5
- package/dist/either/right/asyncPipe.d.ts +2 -2
- package/dist/either/right/create.cjs +3 -4
- package/dist/either/right/create.d.ts +2 -2
- package/dist/either/right/create.mjs +3 -4
- package/dist/either/right/is.cjs +2 -2
- package/dist/either/right/is.mjs +1 -1
- package/dist/either/right/ok.cjs +3 -3
- package/dist/either/right/ok.d.ts +1 -1
- package/dist/either/right/ok.mjs +3 -3
- package/dist/either/right/success.cjs +3 -3
- package/dist/either/right/success.d.ts +2 -2
- package/dist/either/right/success.mjs +3 -3
- package/dist/either/whenHasInformation.cjs +2 -2
- package/dist/either/whenHasInformation.d.ts +1 -1
- package/dist/either/whenHasInformation.mjs +1 -1
- package/dist/generator/reduce.cjs +1 -1
- package/dist/generator/reduce.mjs +1 -1
- package/dist/index.cjs +15 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.mjs +12 -1
- package/dist/number/greater.cjs +12 -0
- package/dist/number/greater.d.ts +2 -0
- package/dist/number/greater.mjs +10 -0
- package/dist/number/greaterThan.cjs +12 -0
- package/dist/number/greaterThan.d.ts +2 -0
- package/dist/number/greaterThan.mjs +10 -0
- package/dist/number/index.cjs +8 -0
- package/dist/number/index.d.ts +4 -0
- package/dist/number/index.mjs +4 -0
- package/dist/number/less.cjs +12 -0
- package/dist/number/less.d.ts +2 -0
- package/dist/number/less.mjs +10 -0
- package/dist/number/lessThan.cjs +12 -0
- package/dist/number/lessThan.d.ts +2 -0
- package/dist/number/lessThan.mjs +10 -0
- package/dist/object/fromEntries.d.ts +1 -1
- package/dist/object/types/getPropsWithValueExtends.d.ts +1 -1
- package/dist/pattern/result.cjs +1 -1
- package/dist/pattern/result.mjs +1 -1
- package/dist/string/types/forbiddenCharacters.d.ts +5 -0
- package/dist/string/types/index.d.ts +1 -0
- package/package.json +57 -1
- package/dist/either/base.cjs +0 -7
- package/dist/either/base.d.ts +0 -1
- package/dist/either/base.mjs +0 -5
package/dist/array/index.cjs
CHANGED
|
@@ -49,6 +49,7 @@ var insert$1 = require('./findAndSplice/insert.cjs');
|
|
|
49
49
|
var replace$1 = require('./findAndSplice/replace.cjs');
|
|
50
50
|
var sum = require('./sum.cjs');
|
|
51
51
|
var length = require('./length.cjs');
|
|
52
|
+
var coalescing = require('./coalescing.cjs');
|
|
52
53
|
|
|
53
54
|
|
|
54
55
|
|
|
@@ -103,3 +104,4 @@ exports.findAndSpliceInsert = insert$1.findAndSpliceInsert;
|
|
|
103
104
|
exports.findAndSpliceReplace = replace$1.findAndSpliceReplace;
|
|
104
105
|
exports.sum = sum.sum;
|
|
105
106
|
exports.length = length.length;
|
|
107
|
+
exports.coalescing = coalescing.coalescing;
|
package/dist/array/index.d.ts
CHANGED
package/dist/array/index.mjs
CHANGED
package/dist/array/map.cjs
CHANGED
|
@@ -6,7 +6,7 @@ function map(...args) {
|
|
|
6
6
|
return (array) => map(array, theFunction);
|
|
7
7
|
}
|
|
8
8
|
const [array, theFunction] = args;
|
|
9
|
-
return array.map((
|
|
9
|
+
return array.map((element, index) => theFunction(element, { index }));
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
exports.map = map;
|
package/dist/array/map.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
interface ArrayMapParams {
|
|
2
2
|
index: number;
|
|
3
3
|
}
|
|
4
|
-
export declare function map<GenericArray extends readonly unknown[], GenericOutput extends unknown>(theFunction: (
|
|
5
|
-
export declare function map<GenericElement extends unknown, GenericOutput extends unknown>(array: readonly GenericElement[], theFunction: (
|
|
4
|
+
export declare function map<GenericArray extends readonly unknown[], GenericOutput extends unknown>(theFunction: (element: GenericArray[number], params: ArrayMapParams) => GenericOutput): (array: GenericArray) => GenericOutput[];
|
|
5
|
+
export declare function map<GenericElement extends unknown, GenericOutput extends unknown>(array: readonly GenericElement[], theFunction: (element: GenericElement, params: ArrayMapParams) => GenericOutput): GenericOutput[];
|
|
6
6
|
export {};
|
package/dist/array/map.mjs
CHANGED
|
@@ -4,7 +4,7 @@ function map(...args) {
|
|
|
4
4
|
return (array) => map(array, theFunction);
|
|
5
5
|
}
|
|
6
6
|
const [array, theFunction] = args;
|
|
7
|
-
return array.map((
|
|
7
|
+
return array.map((element, index) => theFunction(element, { index }));
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
export { map };
|
package/dist/array/reduce.cjs
CHANGED
|
@@ -7,7 +7,7 @@ var override = require('../object/override.cjs');
|
|
|
7
7
|
|
|
8
8
|
const arrayReduceFromKind = kind.createKind("array-reduce-from");
|
|
9
9
|
function reduceFrom(value) {
|
|
10
|
-
return arrayReduceFromKind.
|
|
10
|
+
return arrayReduceFromKind.setTo(wrapValue.wrapValue(value));
|
|
11
11
|
}
|
|
12
12
|
function reduce(...args) {
|
|
13
13
|
if (args.length === 2) {
|
package/dist/array/reduce.mjs
CHANGED
|
@@ -5,7 +5,7 @@ import { override } from '../object/override.mjs';
|
|
|
5
5
|
|
|
6
6
|
const arrayReduceFromKind = createKind("array-reduce-from");
|
|
7
7
|
function reduceFrom(value) {
|
|
8
|
-
return arrayReduceFromKind.
|
|
8
|
+
return arrayReduceFromKind.setTo(wrapValue(value));
|
|
9
9
|
}
|
|
10
10
|
function reduce(...args) {
|
|
11
11
|
if (args.length === 2) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type ArrayCoalescing<GenericValue extends unknown> = GenericValue extends readonly any[] ? GenericValue : [GenericValue];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function escapeRegExp(
|
|
1
|
+
export declare function escapeRegExp<GenericInput extends string>(input: GenericInput): string;
|
package/dist/common/index.d.ts
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var coalescing = require('../array/coalescing.cjs');
|
|
4
|
+
|
|
5
|
+
function instanceOf(...args) {
|
|
6
|
+
if (args.length === 1) {
|
|
7
|
+
const [constructor] = args;
|
|
8
|
+
return (input) => instanceOf(input, constructor);
|
|
9
|
+
}
|
|
10
|
+
const [input, constructor] = args;
|
|
11
|
+
const formattedConstructor = coalescing.coalescing(constructor);
|
|
12
|
+
for (const constructor of formattedConstructor) {
|
|
13
|
+
if (input instanceof constructor) {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
exports.instanceOf = instanceOf;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { type AnyConstructor } from "./types";
|
|
2
|
+
export declare function instanceOf<GenericInput extends unknown, GenericConstructor extends AnyConstructor>(constructor: GenericConstructor | GenericConstructor[]): (input: GenericInput) => input is Extract<GenericInput, InstanceType<GenericConstructor>>;
|
|
3
|
+
export declare function instanceOf<GenericInput extends unknown, GenericConstructor extends AnyConstructor>(input: GenericInput, constructor: GenericConstructor | GenericConstructor[]): input is Extract<GenericInput, InstanceType<GenericConstructor>>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { coalescing } from '../array/coalescing.mjs';
|
|
2
|
+
|
|
3
|
+
function instanceOf(...args) {
|
|
4
|
+
if (args.length === 1) {
|
|
5
|
+
const [constructor] = args;
|
|
6
|
+
return (input) => instanceOf(input, constructor);
|
|
7
|
+
}
|
|
8
|
+
const [input, constructor] = args;
|
|
9
|
+
const formattedConstructor = coalescing(constructor);
|
|
10
|
+
for (const constructor of formattedConstructor) {
|
|
11
|
+
if (input instanceof constructor) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { instanceOf };
|
package/dist/common/kind.cjs
CHANGED
|
@@ -6,7 +6,10 @@ const keyKindPrefix = `${wrapValue.keyWrappedValue}/kind/`;
|
|
|
6
6
|
function createKind(name) {
|
|
7
7
|
const runTimeKey = `${keyKindPrefix}${name}`;
|
|
8
8
|
return {
|
|
9
|
-
definition:
|
|
9
|
+
definition: {
|
|
10
|
+
name,
|
|
11
|
+
value: null,
|
|
12
|
+
},
|
|
10
13
|
runTimeKey,
|
|
11
14
|
addTo(input, value = null) {
|
|
12
15
|
return {
|
|
@@ -14,6 +17,10 @@ function createKind(name) {
|
|
|
14
17
|
[runTimeKey]: value,
|
|
15
18
|
};
|
|
16
19
|
},
|
|
20
|
+
setTo(input, value = null) {
|
|
21
|
+
input[runTimeKey] = value;
|
|
22
|
+
return input;
|
|
23
|
+
},
|
|
17
24
|
has(input) {
|
|
18
25
|
return input
|
|
19
26
|
&& typeof input === "object"
|
|
@@ -24,6 +31,43 @@ function createKind(name) {
|
|
|
24
31
|
},
|
|
25
32
|
};
|
|
26
33
|
}
|
|
34
|
+
function createKindNamespace(namespace) {
|
|
35
|
+
return (name) => {
|
|
36
|
+
const kindHandler = createKind(`@${namespace}/${name}`);
|
|
37
|
+
return kindHandler;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function kindHeritage(uniqueName, kind) {
|
|
41
|
+
const uniqueKind = createKind(uniqueName);
|
|
42
|
+
const kinds = kind instanceof Array
|
|
43
|
+
? kind
|
|
44
|
+
: [kind];
|
|
45
|
+
const ParentKindClass = (function ParentKindClass(params = {}) {
|
|
46
|
+
for (const kind of kinds) {
|
|
47
|
+
this[kind.runTimeKey] = params[kind.definition.name] ?? null;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
kinds.forEach((value) => {
|
|
51
|
+
ParentKindClass.prototype[value.runTimeKey] = null;
|
|
52
|
+
});
|
|
53
|
+
ParentKindClass.prototype[uniqueKind.runTimeKey] = null;
|
|
54
|
+
Object.defineProperty(ParentKindClass, Symbol.hasInstance, {
|
|
55
|
+
value: (value) => {
|
|
56
|
+
if (!uniqueKind.has(value)) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
for (const kind of kinds) {
|
|
60
|
+
if (!kind.has(value)) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return true;
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
return ParentKindClass;
|
|
68
|
+
}
|
|
27
69
|
|
|
28
70
|
exports.createKind = createKind;
|
|
71
|
+
exports.createKindNamespace = createKindNamespace;
|
|
29
72
|
exports.keyKindPrefix = keyKindPrefix;
|
|
73
|
+
exports.kindHeritage = kindHeritage;
|
package/dist/common/kind.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
|
|
1
|
+
import { type ForbiddenCharacters } from "../string";
|
|
2
|
+
import { type Or, type IsEqual, type BreakGenericLink, type Adaptor, type UnionToIntersection } from "./types";
|
|
3
|
+
import { type GetPropsWithValue, type PartialKeys } from "../object";
|
|
4
|
+
export interface KindHandler<GenericKindDefinition extends KindDefinition = KindDefinition> {
|
|
3
5
|
definition: GenericKindDefinition;
|
|
4
6
|
runTimeKey: string;
|
|
5
7
|
has<GenericInput extends unknown>(input: GenericInput): input is Extract<GenericInput, Kind<GenericKindDefinition, GenericKindDefinition["value"]>>;
|
|
@@ -8,6 +10,14 @@ export interface KindHandler<GenericKindDefinition extends KindDefinition> {
|
|
|
8
10
|
IsEqual<GenericValue, unknown>,
|
|
9
11
|
IsEqual<GenericValue, any>
|
|
10
12
|
]> extends true ? [input: GenericInput, value?: GenericValue] : [input: GenericInput, value: GenericValue]): Kind<GenericKindDefinition, GenericValue> & BreakGenericLink<GenericInput>;
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated This method make mutation.
|
|
15
|
+
*/
|
|
16
|
+
setTo<GenericInput extends {}, GenericValue extends GenericKindDefinition["value"] = GenericKindDefinition["value"]>(...args: Or<[
|
|
17
|
+
IsEqual<GenericValue, never>,
|
|
18
|
+
IsEqual<GenericValue, unknown>,
|
|
19
|
+
IsEqual<GenericValue, any>
|
|
20
|
+
]> extends true ? [input: GenericInput, value?: GenericValue] : [input: GenericInput, value: GenericValue]): Kind<GenericKindDefinition, GenericValue> & BreakGenericLink<GenericInput>;
|
|
11
21
|
getValue<GenericKind extends Kind<GenericKindDefinition, GenericKindDefinition["value"]>>(input: GenericKind): GenericKind[SymbolKind][GenericKindDefinition["name"]];
|
|
12
22
|
}
|
|
13
23
|
export interface KindDefinition<GenericName extends string = string, GenericValue extends unknown = unknown> {
|
|
@@ -16,11 +26,21 @@ export interface KindDefinition<GenericName extends string = string, GenericValu
|
|
|
16
26
|
}
|
|
17
27
|
declare const SymbolKind: unique symbol;
|
|
18
28
|
type SymbolKind = typeof SymbolKind;
|
|
19
|
-
export interface Kind<GenericKindDefinition extends KindDefinition, GenericValue extends
|
|
29
|
+
export interface Kind<GenericKindDefinition extends KindDefinition, GenericValue extends GenericKindDefinition["value"] = GenericKindDefinition["value"]> {
|
|
20
30
|
[SymbolKind]: {
|
|
21
31
|
[Prop in GenericKindDefinition["name"]]: GenericValue;
|
|
22
32
|
};
|
|
23
33
|
}
|
|
34
|
+
export type RemoveKind<GenericObject extends Kind<any>> = Omit<GenericObject, SymbolKind>;
|
|
35
|
+
export type GetKindValue<GenericKindHandler extends KindHandler, GenericObject extends Kind<any>> = GenericObject[SymbolKind][GenericKindHandler["definition"]["name"]];
|
|
36
|
+
export type GetKindHandler<GenericObject extends Kind<any>> = {
|
|
37
|
+
[Prop in keyof GenericObject[SymbolKind]]: KindHandler<KindDefinition<Adaptor<Prop, string>, GenericObject[SymbolKind][Prop]>>;
|
|
38
|
+
}[keyof GenericObject[SymbolKind]];
|
|
24
39
|
export declare const keyKindPrefix = "@duplojs/utils/value/kind/";
|
|
25
|
-
export declare function createKind<GenericName extends string, GenericKindValue extends unknown = unknown>(name: GenericName): KindHandler<KindDefinition<GenericName, GenericKindValue>>;
|
|
40
|
+
export declare function createKind<GenericName extends string, GenericKindValue extends unknown = unknown>(name: GenericName & ForbiddenCharacters<GenericName, "@" | "/">): KindHandler<KindDefinition<GenericName, GenericKindValue>>;
|
|
41
|
+
export declare function createKindNamespace<GenericNamespace extends string>(namespace: GenericNamespace & ForbiddenCharacters<GenericNamespace, "@" | "/">): <GenericName extends string, GenericKindValue extends unknown = unknown>(name: GenericName & ForbiddenCharacters<GenericName, "@" | "/">) => KindHandler<KindDefinition<`@${GenericNamespace}/${GenericName}`, GenericKindValue>>;
|
|
42
|
+
export type KindHeritageConstructorParams<GenericKindHandler extends KindHandler> = {
|
|
43
|
+
[KindHandler in GenericKindHandler as KindHandler["definition"]["name"]]: KindHandler["definition"]["value"];
|
|
44
|
+
} extends infer InferredResult extends object ? PartialKeys<InferredResult, GetPropsWithValue<InferredResult, unknown>> : never;
|
|
45
|
+
export declare function kindHeritage<GenericUniqueName extends string, GenericKindHandler extends KindHandler>(uniqueName: GenericUniqueName & ForbiddenCharacters<GenericUniqueName, "@" | "/">, kind: GenericKindHandler | GenericKindHandler[]): new (...args: IsEqual<GenericKindHandler extends KindHandler ? IsEqual<GenericKindHandler["definition"]["value"], unknown> : never, true> extends true ? [params?: KindHeritageConstructorParams<GenericKindHandler>] : [params: KindHeritageConstructorParams<GenericKindHandler>]) => UnionToIntersection<(GenericKindHandler extends KindHandler ? Kind<GenericKindHandler["definition"]> : never) | Kind<KindDefinition<GenericUniqueName, unknown>>>;
|
|
26
46
|
export {};
|
package/dist/common/kind.mjs
CHANGED
|
@@ -4,7 +4,10 @@ const keyKindPrefix = `${keyWrappedValue}/kind/`;
|
|
|
4
4
|
function createKind(name) {
|
|
5
5
|
const runTimeKey = `${keyKindPrefix}${name}`;
|
|
6
6
|
return {
|
|
7
|
-
definition:
|
|
7
|
+
definition: {
|
|
8
|
+
name,
|
|
9
|
+
value: null,
|
|
10
|
+
},
|
|
8
11
|
runTimeKey,
|
|
9
12
|
addTo(input, value = null) {
|
|
10
13
|
return {
|
|
@@ -12,6 +15,10 @@ function createKind(name) {
|
|
|
12
15
|
[runTimeKey]: value,
|
|
13
16
|
};
|
|
14
17
|
},
|
|
18
|
+
setTo(input, value = null) {
|
|
19
|
+
input[runTimeKey] = value;
|
|
20
|
+
return input;
|
|
21
|
+
},
|
|
15
22
|
has(input) {
|
|
16
23
|
return input
|
|
17
24
|
&& typeof input === "object"
|
|
@@ -22,5 +29,40 @@ function createKind(name) {
|
|
|
22
29
|
},
|
|
23
30
|
};
|
|
24
31
|
}
|
|
32
|
+
function createKindNamespace(namespace) {
|
|
33
|
+
return (name) => {
|
|
34
|
+
const kindHandler = createKind(`@${namespace}/${name}`);
|
|
35
|
+
return kindHandler;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function kindHeritage(uniqueName, kind) {
|
|
39
|
+
const uniqueKind = createKind(uniqueName);
|
|
40
|
+
const kinds = kind instanceof Array
|
|
41
|
+
? kind
|
|
42
|
+
: [kind];
|
|
43
|
+
const ParentKindClass = (function ParentKindClass(params = {}) {
|
|
44
|
+
for (const kind of kinds) {
|
|
45
|
+
this[kind.runTimeKey] = params[kind.definition.name] ?? null;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
kinds.forEach((value) => {
|
|
49
|
+
ParentKindClass.prototype[value.runTimeKey] = null;
|
|
50
|
+
});
|
|
51
|
+
ParentKindClass.prototype[uniqueKind.runTimeKey] = null;
|
|
52
|
+
Object.defineProperty(ParentKindClass, Symbol.hasInstance, {
|
|
53
|
+
value: (value) => {
|
|
54
|
+
if (!uniqueKind.has(value)) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
for (const kind of kinds) {
|
|
58
|
+
if (!kind.has(value)) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return true;
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
return ParentKindClass;
|
|
66
|
+
}
|
|
25
67
|
|
|
26
|
-
export { createKind, keyKindPrefix };
|
|
68
|
+
export { createKind, createKindNamespace, keyKindPrefix, kindHeritage };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function memo(theFunction) {
|
|
4
|
+
const payload = {
|
|
5
|
+
get value() {
|
|
6
|
+
const value = theFunction();
|
|
7
|
+
Object.defineProperty(payload, "value", {
|
|
8
|
+
value,
|
|
9
|
+
});
|
|
10
|
+
return value;
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
return payload;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
exports.memo = memo;
|
|
@@ -7,8 +7,8 @@ function simpleClone(unknownValue) {
|
|
|
7
7
|
else if (typeof unknownValue !== "object") {
|
|
8
8
|
return unknownValue;
|
|
9
9
|
}
|
|
10
|
-
else if (unknownValue.constructor
|
|
11
|
-
|| unknownValue.constructor ===
|
|
10
|
+
else if (unknownValue.constructor === undefined
|
|
11
|
+
|| unknownValue.constructor.name === "Object") {
|
|
12
12
|
return Object.entries(unknownValue).reduce((pv, [key, value]) => {
|
|
13
13
|
pv[key] = simpleClone(value);
|
|
14
14
|
return pv;
|
|
@@ -5,8 +5,8 @@ function simpleClone(unknownValue) {
|
|
|
5
5
|
else if (typeof unknownValue !== "object") {
|
|
6
6
|
return unknownValue;
|
|
7
7
|
}
|
|
8
|
-
else if (unknownValue.constructor
|
|
9
|
-
|| unknownValue.constructor ===
|
|
8
|
+
else if (unknownValue.constructor === undefined
|
|
9
|
+
|| unknownValue.constructor.name === "Object") {
|
|
10
10
|
return Object.entries(unknownValue).reduce((pv, [key, value]) => {
|
|
11
11
|
pv[key] = simpleClone(value);
|
|
12
12
|
return pv;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type AnyConstructor<GenericArgs extends any[] = any[], GenericInstance extends any = any> = new (...args: GenericArgs) => GenericInstance;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type AnyPredicate<GenericInput extends any = any, GenericArgs extends any[] = any[], GenericPredicate extends GenericInput = any> = (input: GenericInput, ...args: GenericArgs) => input is GenericPredicate;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { type ObjectKey } from "./objectKey";
|
|
2
|
-
export type ObjectEntry = [ObjectKey, any];
|
|
2
|
+
export type ObjectEntry = readonly [ObjectKey, any];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type Predicate<GenericFunction extends (input: any, ...args: any[]) => input is any> = GenericFunction extends (input: any, ...args: any[]) => input is infer InferredPredicate ? InferredPredicate : never;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { type IsEqual } from "./isEqual";
|
|
2
|
-
export type UnionContain<GenericUnion extends unknown, GenericValue extends unknown> = IsEqual<GenericUnion extends any ? IsEqual<GenericUnion, GenericValue> : never, boolean>;
|
|
2
|
+
export type UnionContain<GenericUnion extends unknown, GenericValue extends unknown> = IsEqual<(GenericUnion extends any ? IsEqual<GenericUnion, GenericValue> : never) | false, boolean>;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var simpleClone = require('../common/simpleClone.cjs');
|
|
4
|
+
var error = require('./error.cjs');
|
|
5
|
+
var error$1 = require('../either/left/error.cjs');
|
|
6
|
+
var success = require('../either/right/success.cjs');
|
|
7
|
+
var kind = require('./kind.cjs');
|
|
8
|
+
|
|
9
|
+
const SymbolDataParserErrorLabel = "SymbolDataParserError";
|
|
10
|
+
const SymbolDataParserError = Symbol.for(SymbolDataParserErrorLabel);
|
|
11
|
+
const dataParserCheckerKind = kind.createDataParserKind("checker");
|
|
12
|
+
function dataParserCheckerInit(kind, params, exec) {
|
|
13
|
+
return kind.setTo(dataParserCheckerKind.setTo({
|
|
14
|
+
...params,
|
|
15
|
+
exec,
|
|
16
|
+
}));
|
|
17
|
+
}
|
|
18
|
+
const dataParserKind = kind.createDataParserKind("base");
|
|
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<"@DataParser/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<"@DataParser/base", {
|
|
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 {};
|