@duplojs/lang 0.0.0 → 0.0.1-beta.10
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/at/default.d.ts +1 -1
- package/dist/array/chunk.d.ts +3 -2
- package/dist/array/concat.d.ts +1 -1
- package/dist/array/copyWithin.d.ts +1 -1
- package/dist/array/fill/all.d.ts +1 -1
- package/dist/array/fill/default.d.ts +3 -3
- package/dist/array/filter.d.ts +1 -1
- package/dist/array/findAndReplace.d.ts +1 -1
- package/dist/array/findAndSplice/delete.d.ts +1 -1
- package/dist/array/findAndSplice/insert.d.ts +1 -1
- package/dist/array/index.cjs +0 -3
- package/dist/array/index.d.ts +0 -1
- package/dist/array/index.mjs +1 -3
- package/dist/array/insert.d.ts +3 -3
- package/dist/array/length.d.ts +1 -1
- package/dist/array/lengthEqual.d.ts +1 -1
- package/dist/array/map.d.ts +1 -1
- package/dist/array/maxElements.d.ts +1 -1
- package/dist/array/minElements.d.ts +1 -1
- package/dist/array/pop.d.ts +1 -1
- package/dist/array/prepend.d.ts +1 -1
- package/dist/array/push.d.ts +3 -3
- package/dist/array/reverse.d.ts +1 -1
- package/dist/array/shift.d.ts +1 -1
- package/dist/array/sort.d.ts +1 -1
- package/dist/array/splice/delete.d.ts +1 -1
- package/dist/array/splice/insert.d.ts +1 -1
- package/dist/array/unshift.d.ts +3 -3
- package/dist/chrono/createDate.cjs +9 -9
- package/dist/chrono/createDate.d.ts +3 -3
- package/dist/chrono/createDate.mjs +9 -9
- package/dist/chrono/createTime.cjs +24 -13
- package/dist/chrono/createTime.mjs +24 -13
- package/dist/chrono/theDate.cjs +15 -16
- package/dist/chrono/theDate.d.ts +15 -15
- package/dist/chrono/theDate.mjs +15 -16
- package/dist/chrono/theTime.cjs +0 -1
- package/dist/chrono/theTime.mjs +0 -1
- package/dist/chrono/types/spoolingTime.d.ts +2 -1
- package/dist/common/constraint/cast/index.d.ts +3 -3
- package/dist/common/constraint/cast/number.d.ts +15 -0
- package/dist/common/constraint/cast/string.d.ts +21 -0
- package/dist/common/constraint/index.d.ts +2 -0
- package/dist/common/constraint/infer/array.d.ts +7 -0
- package/dist/{array/infer.cjs → common/constraint/infer/index.cjs} +1 -1
- package/dist/common/constraint/infer/index.d.ts +26 -0
- package/dist/{string/infer.mjs → common/constraint/infer/index.mjs} +1 -1
- package/dist/common/constraint/infer/number.d.ts +11 -0
- package/dist/common/constraint/infer/string.d.ts +13 -0
- package/dist/common/constraint/remove.cjs +6 -0
- package/dist/common/constraint/remove.d.ts +2 -0
- package/dist/common/constraint/remove.mjs +6 -0
- package/dist/common/formData.cjs +4 -2
- package/dist/common/formData.mjs +4 -2
- package/dist/common/index.cjs +6 -0
- package/dist/common/index.mjs +5 -1
- package/dist/common/isType.d.ts +3 -2
- package/dist/common/queue.cjs +9 -7
- package/dist/common/queue.mjs +9 -7
- package/dist/common/types/forward.d.ts +1 -0
- package/dist/common/types/index.d.ts +3 -0
- package/dist/common/types/isObject.d.ts +8 -0
- package/dist/common/types/json.d.ts +1 -1
- package/dist/common/types/splitPromise.d.ts +1 -0
- package/dist/dataStructure/common/codec/base.cjs +29 -0
- package/dist/dataStructure/common/{codec.d.ts → codec/base.d.ts} +8 -8
- package/dist/dataStructure/common/codec/base.mjs +26 -0
- package/dist/dataStructure/common/codec/defaults/index.d.ts +2 -0
- package/dist/dataStructure/common/codec/defaults/json.cjs +26 -0
- package/dist/dataStructure/common/codec/defaults/json.d.ts +6 -0
- package/dist/dataStructure/common/codec/defaults/json.mjs +26 -0
- package/dist/dataStructure/common/codec/defaults/string.cjs +44 -0
- package/dist/dataStructure/common/codec/defaults/string.d.ts +11 -0
- package/dist/dataStructure/common/codec/defaults/string.mjs +44 -0
- package/dist/dataStructure/common/codec/index.d.ts +2 -0
- package/dist/dataStructure/common/error/base.cjs +73 -0
- package/dist/dataStructure/common/error/base.d.ts +50 -0
- package/dist/dataStructure/common/error/base.mjs +69 -0
- package/dist/dataStructure/common/error/defaultInterpreter.cjs +84 -0
- package/dist/dataStructure/common/error/defaultInterpreter.d.ts +57 -0
- package/dist/dataStructure/common/error/defaultInterpreter.mjs +83 -0
- package/dist/dataStructure/common/error/index.d.ts +3 -0
- package/dist/dataStructure/common/error/interpreter.cjs +45 -0
- package/dist/dataStructure/common/error/interpreter.d.ts +36 -0
- package/dist/dataStructure/common/error/interpreter.mjs +45 -0
- package/dist/dataStructure/constraint/base.cjs +34 -5
- package/dist/dataStructure/constraint/base.d.ts +13 -4
- package/dist/dataStructure/constraint/base.mjs +34 -6
- package/dist/dataStructure/constraint/defaults/absolutePath.cjs +13 -0
- package/dist/dataStructure/constraint/defaults/absolutePath.d.ts +10 -0
- package/dist/dataStructure/constraint/defaults/absolutePath.mjs +12 -0
- package/dist/dataStructure/constraint/defaults/allowedCharacters.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/allowedCharacters.d.ts +1 -3
- package/dist/dataStructure/constraint/defaults/allowedCharacters.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/arrayLengthEqual.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/arrayLengthEqual.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/arrayLengthEqual.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/betweenThan.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/betweenThan.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/betweenThan.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/email.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/email.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/email.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/even.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/even.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/even.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/greaterThan.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/greaterThan.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/greaterThan.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/index.d.ts +6 -0
- package/dist/dataStructure/constraint/defaults/integer.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/integer.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/integer.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/lessThan.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/lessThan.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/lessThan.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/lessThanOrEqual.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/lessThanOrEqual.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/lessThanOrEqual.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/maxCharacters.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/maxCharacters.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/maxCharacters.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/maxElements.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/maxElements.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/maxElements.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/minCharacters.cjs +4 -4
- package/dist/dataStructure/constraint/defaults/minCharacters.d.ts +2 -2
- package/dist/dataStructure/constraint/defaults/minCharacters.mjs +4 -4
- package/dist/dataStructure/constraint/defaults/minElements.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/minElements.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/minElements.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/multipleOf.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/multipleOf.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/multipleOf.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/negative.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/negative.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/negative.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/notEmpty.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/notEmpty.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/notEmpty.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/notZero.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/notZero.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/notZero.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/numberInString.cjs +13 -0
- package/dist/dataStructure/constraint/defaults/numberInString.d.ts +10 -0
- package/dist/dataStructure/constraint/defaults/numberInString.mjs +12 -0
- package/dist/dataStructure/constraint/defaults/odd.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/odd.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/odd.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/path.cjs +13 -0
- package/dist/dataStructure/constraint/defaults/path.d.ts +10 -0
- package/dist/dataStructure/constraint/defaults/path.mjs +12 -0
- package/dist/dataStructure/constraint/defaults/positive.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/positive.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/positive.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/refine.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/refine.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/refine.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/regex.cjs +13 -0
- package/dist/dataStructure/constraint/defaults/regex.d.ts +10 -0
- package/dist/dataStructure/constraint/defaults/regex.mjs +12 -0
- package/dist/dataStructure/constraint/defaults/safe.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/safe.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/safe.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/segmentPath.cjs +13 -0
- package/dist/dataStructure/constraint/defaults/segmentPath.d.ts +10 -0
- package/dist/dataStructure/constraint/defaults/segmentPath.mjs +12 -0
- package/dist/dataStructure/constraint/defaults/strictNegative.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/strictNegative.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/strictNegative.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/strictPositive.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/strictPositive.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/strictPositive.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/stringLengthEqual.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/stringLengthEqual.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/stringLengthEqual.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/trimmed.cjs +13 -0
- package/dist/dataStructure/constraint/defaults/trimmed.d.ts +10 -0
- package/dist/dataStructure/constraint/defaults/trimmed.mjs +12 -0
- package/dist/dataStructure/constraint/defaults/url.cjs +2 -2
- package/dist/dataStructure/constraint/defaults/url.d.ts +2 -3
- package/dist/dataStructure/constraint/defaults/url.mjs +2 -2
- package/dist/dataStructure/constraint/defaults/uuid.cjs +2 -4
- package/dist/dataStructure/constraint/defaults/uuid.d.ts +1 -3
- package/dist/dataStructure/constraint/defaults/uuid.mjs +4 -5
- package/dist/dataStructure/constraint/identifier.d.ts +3 -4
- package/dist/dataStructure/constraint/types/constraints.d.ts +22 -15
- package/dist/dataStructure/fundamentalType/base.cjs +3 -3
- package/dist/dataStructure/fundamentalType/base.d.ts +4 -5
- package/dist/dataStructure/fundamentalType/base.mjs +3 -3
- package/dist/dataStructure/fundamentalType/defaults/bigint.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/bigint.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/bigint.mjs +5 -2
- package/dist/dataStructure/fundamentalType/defaults/boolean.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/boolean.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/boolean.mjs +5 -2
- package/dist/dataStructure/fundamentalType/defaults/date.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/date.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/date.mjs +5 -2
- package/dist/dataStructure/fundamentalType/defaults/null.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/null.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/null.mjs +5 -2
- package/dist/dataStructure/fundamentalType/defaults/number.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/number.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/number.mjs +5 -2
- package/dist/dataStructure/fundamentalType/defaults/string.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/string.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/string.mjs +5 -2
- package/dist/dataStructure/fundamentalType/defaults/time.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/time.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/time.mjs +5 -2
- package/dist/dataStructure/fundamentalType/defaults/undefined.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/undefined.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/undefined.mjs +5 -2
- package/dist/dataStructure/fundamentalType/identifier.d.ts +3 -4
- package/dist/dataStructure/helpers/absolutePath.cjs +7 -0
- package/dist/dataStructure/helpers/absolutePath.d.ts +2 -0
- package/dist/dataStructure/helpers/absolutePath.mjs +7 -0
- package/dist/dataStructure/helpers/array.d.ts +1 -1
- package/dist/dataStructure/helpers/bigint.d.ts +1 -1
- package/dist/dataStructure/helpers/boolean.d.ts +1 -1
- package/dist/dataStructure/helpers/date.d.ts +1 -1
- package/dist/dataStructure/helpers/extend.d.ts +1 -1
- package/dist/dataStructure/helpers/index.d.ts +10 -1
- package/dist/dataStructure/helpers/isNullable.cjs +12 -0
- package/dist/dataStructure/helpers/isNullable.d.ts +2 -0
- package/dist/dataStructure/helpers/isNullable.mjs +12 -0
- package/dist/dataStructure/helpers/isOptional.cjs +12 -0
- package/dist/dataStructure/helpers/isOptional.d.ts +2 -0
- package/dist/dataStructure/helpers/isOptional.mjs +12 -0
- package/dist/dataStructure/helpers/lazy.d.ts +1 -1
- package/dist/dataStructure/helpers/null.d.ts +1 -1
- package/dist/dataStructure/helpers/nullable.cjs +5 -2
- package/dist/dataStructure/helpers/nullable.mjs +5 -2
- package/dist/dataStructure/helpers/number.d.ts +1 -1
- package/dist/dataStructure/helpers/numberInString.cjs +7 -0
- package/dist/dataStructure/helpers/numberInString.d.ts +2 -0
- package/dist/dataStructure/helpers/numberInString.mjs +7 -0
- package/dist/dataStructure/helpers/object.d.ts +1 -1
- package/dist/dataStructure/helpers/optional.cjs +5 -2
- package/dist/dataStructure/helpers/optional.mjs +5 -2
- package/dist/dataStructure/helpers/partial.cjs +5 -2
- package/dist/dataStructure/helpers/partial.mjs +5 -2
- package/dist/dataStructure/helpers/path.cjs +7 -0
- package/dist/dataStructure/helpers/path.d.ts +2 -0
- package/dist/dataStructure/helpers/path.mjs +7 -0
- package/dist/dataStructure/helpers/record.d.ts +1 -1
- package/dist/dataStructure/helpers/regex.cjs +7 -0
- package/dist/dataStructure/helpers/regex.d.ts +2 -0
- package/dist/dataStructure/helpers/regex.mjs +7 -0
- package/dist/dataStructure/helpers/required.cjs +6 -3
- package/dist/dataStructure/helpers/required.d.ts +2 -1
- package/dist/dataStructure/helpers/required.mjs +6 -3
- package/dist/dataStructure/helpers/segmentPath.cjs +7 -0
- package/dist/dataStructure/helpers/segmentPath.d.ts +2 -0
- package/dist/dataStructure/helpers/segmentPath.mjs +7 -0
- package/dist/dataStructure/helpers/string.d.ts +1 -1
- package/dist/dataStructure/helpers/time.d.ts +1 -1
- package/dist/dataStructure/helpers/trimmed.cjs +7 -0
- package/dist/dataStructure/helpers/trimmed.d.ts +2 -0
- package/dist/dataStructure/helpers/trimmed.mjs +7 -0
- package/dist/dataStructure/helpers/undefined.d.ts +1 -1
- package/dist/dataStructure/helpers/union.d.ts +1 -1
- package/dist/dataStructure/helpers/unwrapLazy.cjs +9 -0
- package/dist/dataStructure/helpers/unwrapLazy.d.ts +2 -0
- package/dist/dataStructure/helpers/unwrapLazy.mjs +9 -0
- package/dist/dataStructure/helpers/url.cjs +2 -2
- package/dist/dataStructure/helpers/url.d.ts +1 -2
- package/dist/dataStructure/helpers/url.mjs +2 -2
- package/dist/dataStructure/index.cjs +158 -60
- package/dist/dataStructure/index.mjs +80 -21
- package/dist/dataStructure/structure/base.cjs +22 -12
- package/dist/dataStructure/structure/base.d.ts +8 -5
- package/dist/dataStructure/structure/base.mjs +16 -6
- package/dist/dataStructure/structure/defaults/array.d.ts +2 -2
- package/dist/dataStructure/structure/defaults/array.mjs +8 -5
- package/dist/dataStructure/structure/defaults/index.d.ts +1 -0
- package/dist/dataStructure/structure/defaults/lazy.cjs +10 -3
- package/dist/dataStructure/structure/defaults/lazy.d.ts +2 -2
- package/dist/dataStructure/structure/defaults/lazy.mjs +10 -3
- package/dist/dataStructure/structure/defaults/nonEncodableString.cjs +17 -0
- package/dist/dataStructure/structure/defaults/nonEncodableString.d.ts +10 -0
- package/dist/dataStructure/structure/defaults/nonEncodableString.mjs +16 -0
- package/dist/dataStructure/structure/defaults/object.d.ts +2 -2
- package/dist/dataStructure/structure/defaults/object.mjs +8 -5
- package/dist/dataStructure/structure/defaults/record.cjs +7 -7
- package/dist/dataStructure/structure/defaults/record.d.ts +3 -3
- package/dist/dataStructure/structure/defaults/record.mjs +15 -12
- package/dist/dataStructure/structure/defaults/type.cjs +1 -1
- package/dist/dataStructure/structure/defaults/type.d.ts +2 -2
- package/dist/dataStructure/structure/defaults/type.mjs +2 -2
- package/dist/dataStructure/structure/defaults/union.cjs +23 -17
- package/dist/dataStructure/structure/defaults/union.d.ts +3 -3
- package/dist/dataStructure/structure/defaults/union.mjs +27 -18
- package/dist/dataStructure/structure/identifier.d.ts +3 -4
- package/dist/dataStructure/structure/types/constraintsValue.d.ts +1 -1
- package/dist/dataStructure/structure/types/structures.d.ts +2 -1
- package/dist/dataStructure/structure/types/value.d.ts +1 -1
- package/dist/dataStructure/type/base.cjs +17 -4
- package/dist/dataStructure/type/base.d.ts +7 -3
- package/dist/dataStructure/type/base.mjs +17 -4
- package/dist/dataStructure/type/defaults/bigint.d.ts +1 -1
- package/dist/dataStructure/type/defaults/bigintLiteral.cjs +1 -1
- package/dist/dataStructure/type/defaults/bigintLiteral.d.ts +1 -1
- package/dist/dataStructure/type/defaults/bigintLiteral.mjs +1 -1
- package/dist/dataStructure/type/defaults/boolean.d.ts +1 -1
- package/dist/dataStructure/type/defaults/booleanLiteral.cjs +1 -1
- package/dist/dataStructure/type/defaults/booleanLiteral.d.ts +1 -1
- package/dist/dataStructure/type/defaults/booleanLiteral.mjs +1 -1
- package/dist/dataStructure/type/defaults/date.d.ts +1 -1
- package/dist/dataStructure/type/defaults/null.d.ts +1 -1
- package/dist/dataStructure/type/defaults/number.d.ts +1 -1
- package/dist/dataStructure/type/defaults/numberLiteral.cjs +1 -1
- package/dist/dataStructure/type/defaults/numberLiteral.d.ts +1 -1
- package/dist/dataStructure/type/defaults/numberLiteral.mjs +1 -1
- package/dist/dataStructure/type/defaults/string.d.ts +1 -1
- package/dist/dataStructure/type/defaults/stringLiteral.cjs +1 -1
- package/dist/dataStructure/type/defaults/stringLiteral.d.ts +1 -1
- package/dist/dataStructure/type/defaults/stringLiteral.mjs +1 -1
- package/dist/dataStructure/type/defaults/time.d.ts +1 -1
- package/dist/dataStructure/type/defaults/undefined.d.ts +1 -1
- package/dist/dataStructure/type/identifier.d.ts +3 -4
- package/dist/either/index.cjs +30 -8
- package/dist/either/index.d.ts +4 -0
- package/dist/either/index.mjs +23 -9
- package/dist/either/left/index.d.ts +3 -2
- package/dist/either/left/none.cjs +15 -0
- package/dist/either/left/none.d.ts +7 -0
- package/dist/either/left/none.mjs +14 -0
- package/dist/either/matchInformationOtherwise.d.ts +1 -1
- package/dist/either/rewriteInformation.cjs +22 -0
- package/dist/either/rewriteInformation.d.ts +14 -0
- package/dist/either/rewriteInformation.mjs +22 -0
- package/dist/either/right/asyncGroup.cjs +2 -2
- package/dist/either/right/asyncGroup.mjs +2 -2
- package/dist/either/right/group.cjs +1 -1
- package/dist/either/right/group.mjs +1 -1
- package/dist/either/right/index.d.ts +6 -5
- package/dist/either/right/some.cjs +15 -0
- package/dist/either/right/some.d.ts +7 -0
- package/dist/either/right/some.mjs +14 -0
- package/dist/either/toMaybe.cjs +12 -0
- package/dist/either/toMaybe.d.ts +5 -0
- package/dist/either/toMaybe.mjs +12 -0
- package/dist/either/types/mayBe.d.ts +3 -0
- package/dist/either/unwrapOr.cjs +14 -0
- package/dist/either/unwrapOr.d.ts +8 -0
- package/dist/either/unwrapOr.mjs +14 -0
- package/dist/either/unwrapOtherwise.cjs +14 -0
- package/dist/either/unwrapOtherwise.d.ts +8 -0
- package/dist/either/unwrapOtherwise.mjs +14 -0
- package/dist/generator/asyncChunk.d.ts +3 -2
- package/dist/generator/chunk.d.ts +3 -2
- package/dist/generator/reduce.cjs +2 -1
- package/dist/generator/reduce.mjs +1 -1
- package/dist/generator/types/flat.d.ts +2 -2
- package/dist/index.cjs +43 -39
- package/dist/index.mjs +4 -2
- package/dist/invocation/flow/base.d.ts +8 -3
- package/dist/invocation/flow/controller/base.d.ts +1 -0
- package/dist/invocation/flow/controller/defaults/aborter.cjs +38 -0
- package/dist/invocation/flow/controller/defaults/aborter.d.ts +17 -0
- package/dist/invocation/flow/controller/defaults/aborter.mjs +36 -0
- package/dist/invocation/flow/controller/defaults/debounce.d.ts +1 -1
- package/dist/invocation/flow/controller/defaults/filter.cjs +5 -3
- package/dist/invocation/flow/controller/defaults/filter.d.ts +1 -1
- package/dist/invocation/flow/controller/defaults/filter.mjs +5 -3
- package/dist/invocation/flow/controller/defaults/index.d.ts +1 -0
- package/dist/invocation/flow/controller/defaults/retry.d.ts +1 -1
- package/dist/invocation/flow/controller/defaults/throttling.d.ts +1 -1
- package/dist/invocation/flow/controller/defaults/timeout.d.ts +1 -1
- package/dist/invocation/index.cjs +15 -8
- package/dist/invocation/index.d.ts +1 -1
- package/dist/invocation/index.mjs +10 -6
- package/dist/invocation/reader.cjs +26 -0
- package/dist/invocation/reader.d.ts +28 -0
- package/dist/invocation/reader.mjs +25 -0
- package/dist/kind/createIdentifier.d.ts +8 -4
- package/dist/kind/types/getName.d.ts +2 -0
- package/dist/kind/types/getNamespaceName.d.ts +3 -0
- package/dist/kind/types/index.d.ts +2 -0
- package/dist/kind/types/remove.d.ts +2 -2
- package/dist/modeling/entity/base.cjs +38 -11
- package/dist/modeling/entity/base.d.ts +25 -10
- package/dist/modeling/entity/base.mjs +32 -6
- package/dist/modeling/entity/helper.d.ts +1 -1
- package/dist/modeling/entity/index.d.ts +0 -1
- package/dist/modeling/entity/namespace.cjs +2 -2
- package/dist/modeling/entity/namespace.d.ts +1 -1
- package/dist/modeling/entity/namespace.mjs +3 -3
- package/dist/modeling/flag/base.cjs +1 -5
- package/dist/modeling/flag/base.d.ts +6 -7
- package/dist/modeling/flag/base.mjs +1 -5
- package/dist/modeling/index.cjs +45 -28
- package/dist/modeling/index.d.ts +1 -0
- package/dist/modeling/index.mjs +18 -9
- package/dist/modeling/newType/base.cjs +34 -13
- package/dist/modeling/newType/base.d.ts +9 -2
- package/dist/modeling/newType/base.mjs +26 -7
- package/dist/modeling/newType/helper.cjs +2 -2
- package/dist/modeling/newType/helper.d.ts +1 -1
- package/dist/modeling/newType/helper.mjs +2 -2
- package/dist/modeling/taggedObject/base.cjs +113 -0
- package/dist/modeling/taggedObject/base.d.ts +61 -0
- package/dist/modeling/taggedObject/base.mjs +110 -0
- package/dist/modeling/taggedObject/helper.cjs +34 -0
- package/dist/modeling/taggedObject/helper.d.ts +15 -0
- package/dist/modeling/taggedObject/helper.mjs +31 -0
- package/dist/modeling/taggedObject/index.d.ts +2 -0
- package/dist/number/betweenThan.d.ts +2 -2
- package/dist/number/betweenThanOrEqual.d.ts +2 -2
- package/dist/number/greaterThan.d.ts +1 -1
- package/dist/number/greaterThanOrEqual.d.ts +1 -1
- package/dist/number/index.cjs +0 -3
- package/dist/number/index.d.ts +0 -1
- package/dist/number/index.mjs +1 -3
- package/dist/number/lessThan.d.ts +1 -1
- package/dist/number/lessThanOrEqual.d.ts +1 -1
- package/dist/number/sort.d.ts +1 -1
- package/dist/number/types/isGreater.d.ts +5 -5
- package/dist/object/assign.d.ts +3 -3
- package/dist/object/types/assign.d.ts +2 -0
- package/dist/object/types/forbiddenUndefinedProps.d.ts +3 -0
- package/dist/object/types/index.d.ts +4 -2
- package/dist/object/types/override.d.ts +4 -0
- package/dist/object/types/split.d.ts +2 -2
- package/dist/path/computeRelative.cjs +5 -6
- package/dist/path/computeRelative.d.ts +1 -1
- package/dist/path/computeRelative.mjs +5 -6
- package/dist/path/constraints/absolute.d.ts +1 -1
- package/dist/path/constraints/index.d.ts +2 -1
- package/dist/path/constraints/segment.d.ts +3 -0
- package/dist/path/getBaseName.cjs +7 -7
- package/dist/path/getBaseName.d.ts +2 -2
- package/dist/path/getBaseName.mjs +7 -7
- package/dist/path/getExtensionName.cjs +9 -4
- package/dist/path/getExtensionName.d.ts +2 -2
- package/dist/path/getExtensionName.mjs +9 -4
- package/dist/path/getParentFolderPath.cjs +9 -4
- package/dist/path/getParentFolderPath.d.ts +1 -2
- package/dist/path/getParentFolderPath.mjs +9 -4
- package/dist/path/index.cjs +6 -3
- package/dist/path/index.d.ts +3 -2
- package/dist/path/index.mjs +5 -3
- package/dist/path/is.cjs +9 -4
- package/dist/path/is.d.ts +4 -2
- package/dist/path/is.mjs +9 -4
- package/dist/path/isAbsolute.cjs +3 -5
- package/dist/path/isAbsolute.d.ts +4 -2
- package/dist/path/isAbsolute.mjs +3 -5
- package/dist/path/isSegment.cjs +6 -0
- package/dist/path/isSegment.d.ts +4 -0
- package/dist/path/isSegment.mjs +6 -0
- package/dist/path/normalize.cjs +18 -0
- package/dist/path/normalize.d.ts +2 -0
- package/dist/path/normalize.mjs +18 -0
- package/dist/path/resolveFrom.cjs +4 -5
- package/dist/path/resolveFrom.d.ts +10 -2
- package/dist/path/resolveFrom.mjs +4 -5
- package/dist/path/resolveRelative.cjs +17 -20
- package/dist/path/resolveRelative.d.ts +9 -2
- package/dist/path/resolveRelative.mjs +17 -20
- package/dist/path/types/index.d.ts +6 -0
- package/dist/path/types/isLiteralAbsolutePath.d.ts +2 -0
- package/dist/path/types/isLiteralPath.d.ts +20 -0
- package/dist/path/types/isLiteralSegmentPath.d.ts +9 -0
- package/dist/path/types/requireLiteralAbsolutePath.d.ts +3 -0
- package/dist/path/types/requireLiteralPath.d.ts +3 -0
- package/dist/path/types/requireLiteralSegmentPath.d.ts +3 -0
- package/dist/pattern/index.cjs +12 -0
- package/dist/pattern/index.d.ts +4 -0
- package/dist/pattern/index.mjs +9 -1
- package/dist/pattern/matchWithEntity.cjs +12 -0
- package/dist/pattern/matchWithEntity.d.ts +12 -0
- package/dist/pattern/matchWithEntity.mjs +12 -0
- package/dist/pattern/matchWithEntityOtherwise.cjs +13 -0
- package/dist/pattern/matchWithEntityOtherwise.d.ts +14 -0
- package/dist/pattern/matchWithEntityOtherwise.mjs +13 -0
- package/dist/pattern/matchWithNumber.d.ts +4 -4
- package/dist/pattern/matchWithNumberOtherwise.cjs +2 -6
- package/dist/pattern/matchWithNumberOtherwise.d.ts +4 -4
- package/dist/pattern/matchWithNumberOtherwise.mjs +2 -6
- package/dist/pattern/matchWithString.d.ts +4 -4
- package/dist/pattern/matchWithStringOtherwise.cjs +2 -6
- package/dist/pattern/matchWithStringOtherwise.d.ts +5 -5
- package/dist/pattern/matchWithStringOtherwise.mjs +2 -6
- package/dist/pattern/matchWithTaggedObject.cjs +12 -0
- package/dist/pattern/matchWithTaggedObject.d.ts +12 -0
- package/dist/pattern/matchWithTaggedObject.mjs +12 -0
- package/dist/pattern/matchWithTaggedObjectOtherwise.cjs +13 -0
- package/dist/pattern/matchWithTaggedObjectOtherwise.d.ts +14 -0
- package/dist/pattern/matchWithTaggedObjectOtherwise.mjs +13 -0
- package/dist/string/at.d.ts +2 -2
- package/dist/string/constraints/allowedCharacters.d.ts +3 -3
- package/dist/string/constraints/index.d.ts +2 -1
- package/dist/string/constraints/number.d.ts +4 -0
- package/dist/string/first.d.ts +1 -1
- package/dist/string/index.cjs +6 -3
- package/dist/string/index.d.ts +1 -1
- package/dist/string/index.mjs +5 -3
- package/dist/string/isComposedOf.cjs +0 -1
- package/dist/string/isComposedOf.d.ts +5 -8
- package/dist/string/isComposedOf.mjs +0 -1
- package/dist/string/isNumber.cjs +7 -0
- package/dist/string/isNumber.d.ts +5 -0
- package/dist/string/isNumber.mjs +7 -0
- package/dist/string/isUrl.cjs +2 -11
- package/dist/string/isUrl.d.ts +1 -5
- package/dist/string/isUrl.mjs +2 -11
- package/dist/string/last.d.ts +1 -1
- package/dist/string/lengthEqual.d.ts +1 -1
- package/dist/string/maxCharacters.d.ts +1 -1
- package/dist/string/minCharacters.d.ts +1 -1
- package/dist/string/padEnd.d.ts +1 -1
- package/dist/string/padStart.d.ts +1 -1
- package/dist/string/pop.d.ts +1 -1
- package/dist/string/shift.d.ts +1 -1
- package/dist/string/slice.d.ts +1 -1
- package/dist/string/substring.d.ts +1 -1
- package/dist/string/to.d.ts +9 -2
- package/dist/string/trim/default.d.ts +1 -1
- package/dist/string/trim/end.d.ts +1 -1
- package/dist/string/trim/index.d.ts +1 -0
- package/dist/string/trim/is.cjs +6 -0
- package/dist/string/trim/is.d.ts +2 -0
- package/dist/string/trim/is.mjs +6 -0
- package/dist/string/trim/start.d.ts +1 -1
- package/dist/string/types/IsAllowedString.d.ts +5 -0
- package/dist/string/types/index.d.ts +5 -5
- package/dist/string/types/numberInString.d.ts +1 -0
- package/dist/string/types/split.d.ts +1 -1
- package/dist/tuple/from.cjs +6 -0
- package/dist/tuple/from.d.ts +8 -0
- package/dist/tuple/from.mjs +6 -0
- package/dist/tuple/index.cjs +6 -1
- package/dist/tuple/index.d.ts +1 -0
- package/dist/tuple/index.mjs +6 -2
- package/package.json +2 -2
- package/dist/array/infer.d.ts +0 -14
- package/dist/array/infer.mjs +0 -6
- package/dist/dataStructure/common/codec.cjs +0 -28
- package/dist/dataStructure/common/codec.mjs +0 -25
- package/dist/dataStructure/common/error.cjs +0 -53
- package/dist/dataStructure/common/error.d.ts +0 -30
- package/dist/dataStructure/common/error.mjs +0 -52
- package/dist/invocation/useCase.cjs +0 -26
- package/dist/invocation/useCase.d.ts +0 -28
- package/dist/invocation/useCase.mjs +0 -25
- package/dist/modeling/entity/entityName.cjs +0 -13
- package/dist/modeling/entity/entityName.d.ts +0 -13
- package/dist/modeling/entity/entityName.mjs +0 -13
- package/dist/number/infer.cjs +0 -6
- package/dist/number/infer.d.ts +0 -12
- package/dist/number/infer.mjs +0 -6
- package/dist/object/types/assignObjects.d.ts +0 -2
- package/dist/path/fix.cjs +0 -8
- package/dist/path/fix.d.ts +0 -1
- package/dist/path/fix.mjs +0 -8
- package/dist/string/infer.cjs +0 -6
- package/dist/string/infer.d.ts +0 -12
- package/dist/string/types/number.d.ts +0 -1
package/dist/common/isType.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { RemoveConstraint } from './constraint';
|
|
1
2
|
import { IsEqual, AnyFunction, AnyValue, BreakGenericLink } from './types';
|
|
2
3
|
interface Type {
|
|
3
4
|
string: [string, never];
|
|
@@ -17,6 +18,6 @@ type ComputeResult<GenericInput extends unknown, GenericTypeEntry extends Type[k
|
|
|
17
18
|
type EligibleType<GenericInput extends unknown> = {
|
|
18
19
|
[Prop in keyof Type]: IsEqual<ComputeResult<GenericInput, Type[Prop]>, never> extends true ? never : Prop;
|
|
19
20
|
}[keyof Type];
|
|
20
|
-
export declare function isType<GenericInput extends AnyValue, GenericType extends EligibleType<GenericInput
|
|
21
|
-
export declare function isType<GenericInput extends AnyValue, GenericType extends EligibleType<GenericInput
|
|
21
|
+
export declare function isType<GenericInput extends AnyValue, GenericType extends EligibleType<RemoveConstraint<GenericInput>>>(type: GenericType): (input: GenericInput) => input is ComputeResult<BreakGenericLink<GenericInput>, Type[GenericType]>;
|
|
22
|
+
export declare function isType<GenericInput extends AnyValue, GenericType extends EligibleType<RemoveConstraint<GenericInput>>>(input: GenericInput, type: GenericType): input is ComputeResult<GenericInput, Type[GenericType]>;
|
|
22
23
|
export {};
|
package/dist/common/queue.cjs
CHANGED
|
@@ -12,13 +12,15 @@ function createQueue(params) {
|
|
|
12
12
|
const externalPromise = require_externalPromise.createExternalPromise();
|
|
13
13
|
const preparedTask = () => {
|
|
14
14
|
runningCount++;
|
|
15
|
-
if (firstElement?.task === preparedTask)
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
if (firstElement?.task === preparedTask) {
|
|
16
|
+
if (firstElement === firstElement.next) firstElement = void 0;
|
|
17
|
+
else {
|
|
18
|
+
const newFirst = firstElement.next;
|
|
19
|
+
const last = firstElement.previous;
|
|
20
|
+
newFirst.previous = last;
|
|
21
|
+
last.next = newFirst;
|
|
22
|
+
firstElement = newFirst;
|
|
23
|
+
}
|
|
22
24
|
}
|
|
23
25
|
let taskResult = void 0;
|
|
24
26
|
try {
|
package/dist/common/queue.mjs
CHANGED
|
@@ -12,13 +12,15 @@ function createQueue(params) {
|
|
|
12
12
|
const externalPromise = createExternalPromise();
|
|
13
13
|
const preparedTask = () => {
|
|
14
14
|
runningCount++;
|
|
15
|
-
if (firstElement?.task === preparedTask)
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
if (firstElement?.task === preparedTask) {
|
|
16
|
+
if (firstElement === firstElement.next) firstElement = void 0;
|
|
17
|
+
else {
|
|
18
|
+
const newFirst = firstElement.next;
|
|
19
|
+
const last = firstElement.previous;
|
|
20
|
+
newFirst.previous = last;
|
|
21
|
+
last.next = newFirst;
|
|
22
|
+
firstElement = newFirst;
|
|
23
|
+
}
|
|
22
24
|
}
|
|
23
25
|
let taskResult = void 0;
|
|
24
26
|
try {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type Forward<GenericValue extends unknown> = GenericValue;
|
|
@@ -22,9 +22,11 @@ export type * from './fixDeepFunctionInfer';
|
|
|
22
22
|
export type * from './forbiddenPromise';
|
|
23
23
|
export type * from './forbiddenUnion';
|
|
24
24
|
export type * from './forcePredicate';
|
|
25
|
+
export type * from './forward';
|
|
25
26
|
export type * from './hasSomething';
|
|
26
27
|
export type * from './isEqual';
|
|
27
28
|
export type * from './isNever';
|
|
29
|
+
export type * from './isObject';
|
|
28
30
|
export type * from './isUnion';
|
|
29
31
|
export type * from './json';
|
|
30
32
|
export type * from './lastUnionElement';
|
|
@@ -48,6 +50,7 @@ export type * from './simplifyTopLevel';
|
|
|
48
50
|
export type * from './simplifyType';
|
|
49
51
|
export type * from './simplifyTypeForce';
|
|
50
52
|
export type * from './sortType';
|
|
53
|
+
export type * from './splitPromise';
|
|
51
54
|
export type * from './toLargeEnsemble';
|
|
52
55
|
export type * from './unionContain';
|
|
53
56
|
export type * from './unionToIntersection';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { And } from './and';
|
|
2
|
+
import { IsExtends } from './IsExtends';
|
|
3
|
+
import { IsNever } from './isNever';
|
|
4
|
+
import { Not } from './not';
|
|
5
|
+
export type IsObject<GenericValue extends unknown> = And<[
|
|
6
|
+
IsExtends<GenericValue, object>,
|
|
7
|
+
Not<IsNever<keyof GenericValue>>
|
|
8
|
+
]>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type SplitPromise<GenericValue extends unknown> = GenericValue extends Promise<infer InferredValue> ? InferredValue extends unknown ? Promise<InferredValue> : never : GenericValue;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const require_callThen = require("../../../common/callThen.cjs");
|
|
2
|
+
const require_memo = require("../../../common/memo.cjs");
|
|
3
|
+
const require_kind = require("../../kind.cjs");
|
|
4
|
+
const require_resultSymbol = require("../resultSymbol.cjs");
|
|
5
|
+
//#region scripts/dataStructure/common/codec/base.ts
|
|
6
|
+
const codecKind = require_kind.createKind("codec");
|
|
7
|
+
const codecsKind = require_kind.createKind("codecs");
|
|
8
|
+
function createCodec(fundamentalType, predicateEncode, encode, decode) {
|
|
9
|
+
const self = {
|
|
10
|
+
fundamentalType,
|
|
11
|
+
predicateEncode: (data) => predicateEncode(data),
|
|
12
|
+
encode: (data, errorHandler) => require_callThen.callThen(encode(data, self, errorHandler), (encodedData) => encodedData === require_resultSymbol.ErrorSymbol ? errorHandler?.().addEncodeIssue(self, "encoding", data) ?? require_resultSymbol.ErrorSymbol : require_callThen.callThen(predicateEncode(encodedData), (result) => result === false ? errorHandler?.().addEncodeIssue(self, "predicate", encodedData) ?? require_resultSymbol.ErrorSymbol : encodedData)),
|
|
13
|
+
decode: (data, errorHandler) => require_callThen.callThen(predicateEncode(data), (result) => result === false ? errorHandler?.().addDecodeIssue(self, "predicate", data) ?? require_resultSymbol.ErrorSymbol : require_callThen.callThen(decode(data, self, errorHandler), (decodedData) => decodedData === require_resultSymbol.ErrorSymbol ? errorHandler?.().addDecodeIssue(self, "decoding", data) ?? require_resultSymbol.ErrorSymbol : decodedData)),
|
|
14
|
+
[codecKind.runTimeKey]: null
|
|
15
|
+
};
|
|
16
|
+
return self;
|
|
17
|
+
}
|
|
18
|
+
function createCodecs(definition) {
|
|
19
|
+
return {
|
|
20
|
+
context: require_memo.memo(() => new Map(Object.values(definition).map((codec) => [codec.fundamentalType, codec]))),
|
|
21
|
+
definition,
|
|
22
|
+
[codecsKind.runTimeKey]: null
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
exports.codecKind = codecKind;
|
|
27
|
+
exports.codecsKind = codecsKind;
|
|
28
|
+
exports.createCodec = createCodec;
|
|
29
|
+
exports.createCodecs = createCodecs;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { FundamentalTypeValue, FundamentalType } from '
|
|
2
|
-
import { GetErrorHandler } from '
|
|
3
|
-
import { ErrorSymbol } from '
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import * as
|
|
1
|
+
import { FundamentalTypeValue, FundamentalType } from '../../fundamentalType';
|
|
2
|
+
import { GetErrorHandler } from '../error';
|
|
3
|
+
import { ErrorSymbol } from '../resultSymbol';
|
|
4
|
+
import type * as DKind from '../../../kind';
|
|
5
|
+
import * as DCommon from '../../../common';
|
|
6
|
+
import type * as DObject from '../../../object';
|
|
7
7
|
export declare const codecKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/codec", unknown>>;
|
|
8
8
|
export interface Codec<GenericFundamentalType extends FundamentalType = FundamentalType, GenericEncodedValue extends unknown = unknown> extends DKind.Kind<typeof codecKind> {
|
|
9
9
|
readonly fundamentalType: GenericFundamentalType;
|
|
10
|
-
predicateEncode(input: unknown
|
|
10
|
+
predicateEncode(input: unknown): input is GenericEncodedValue;
|
|
11
11
|
encode(data: FundamentalTypeValue<GenericFundamentalType>, errorHandler?: GetErrorHandler): DCommon.MaybePromise<GenericEncodedValue | ErrorSymbol>;
|
|
12
12
|
decode(data: GenericEncodedValue, errorHandler?: GetErrorHandler): DCommon.MaybePromise<FundamentalTypeValue<GenericFundamentalType> | ErrorSymbol>;
|
|
13
13
|
}
|
|
@@ -17,7 +17,7 @@ export interface Codecs<GenericCodecMapper extends Record<string, Codec> = Recor
|
|
|
17
17
|
readonly definition: GenericCodecMapper;
|
|
18
18
|
readonly context: DCommon.Memoized<CodecContext>;
|
|
19
19
|
}
|
|
20
|
-
export declare function createCodec<GenericFundamentalType extends FundamentalType = FundamentalType, GenericEncodedValue extends unknown = unknown>(fundamentalType: GenericFundamentalType, predicateEncode: (
|
|
20
|
+
export declare function createCodec<GenericFundamentalType extends FundamentalType = FundamentalType, GenericEncodedValue extends unknown = unknown>(fundamentalType: GenericFundamentalType, predicateEncode: (data: unknown) => data is GenericEncodedValue, encode: (data: FundamentalTypeValue<GenericFundamentalType>, self: Codec<GenericFundamentalType, GenericEncodedValue>, errorHandler?: GetErrorHandler) => DCommon.MaybePromise<GenericEncodedValue | ErrorSymbol>, decode: (data: GenericEncodedValue, self: Codec<GenericFundamentalType, GenericEncodedValue>, errorHandler?: GetErrorHandler) => DCommon.MaybePromise<FundamentalTypeValue<GenericFundamentalType> | ErrorSymbol>): Codec<GenericFundamentalType, GenericEncodedValue>;
|
|
21
21
|
type ForbiddenDuplicateFundamentalType<GenericDefinition extends Record<string, Codec>> = {
|
|
22
22
|
[Prop in keyof GenericDefinition]: [GenericDefinition[Prop]];
|
|
23
23
|
}[keyof GenericDefinition] extends infer InferredResult extends [unknown] ? DCommon.IsEqual<DCommon.RemoveDuplicateInUnion<InferredResult>, InferredResult> extends true ? unknown : DCommon.ComputedTypeError<"Several codecs use the same fundamental type."> : never;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { callThen } from "../../../common/callThen.mjs";
|
|
2
|
+
import { memo } from "../../../common/memo.mjs";
|
|
3
|
+
import { createKind } from "../../kind.mjs";
|
|
4
|
+
import { ErrorSymbol } from "../resultSymbol.mjs";
|
|
5
|
+
//#region scripts/dataStructure/common/codec/base.ts
|
|
6
|
+
const codecKind = createKind("codec");
|
|
7
|
+
const codecsKind = createKind("codecs");
|
|
8
|
+
function createCodec(fundamentalType, predicateEncode, encode, decode) {
|
|
9
|
+
const self = {
|
|
10
|
+
fundamentalType,
|
|
11
|
+
predicateEncode: (data) => predicateEncode(data),
|
|
12
|
+
encode: (data, errorHandler) => callThen(encode(data, self, errorHandler), (encodedData) => encodedData === ErrorSymbol ? errorHandler?.().addEncodeIssue(self, "encoding", data) ?? ErrorSymbol : callThen(predicateEncode(encodedData), (result) => result === false ? errorHandler?.().addEncodeIssue(self, "predicate", encodedData) ?? ErrorSymbol : encodedData)),
|
|
13
|
+
decode: (data, errorHandler) => callThen(predicateEncode(data), (result) => result === false ? errorHandler?.().addDecodeIssue(self, "predicate", data) ?? ErrorSymbol : callThen(decode(data, self, errorHandler), (decodedData) => decodedData === ErrorSymbol ? errorHandler?.().addDecodeIssue(self, "decoding", data) ?? ErrorSymbol : decodedData)),
|
|
14
|
+
[codecKind.runTimeKey]: null
|
|
15
|
+
};
|
|
16
|
+
return self;
|
|
17
|
+
}
|
|
18
|
+
function createCodecs(definition) {
|
|
19
|
+
return {
|
|
20
|
+
context: memo(() => new Map(Object.values(definition).map((codec) => [codec.fundamentalType, codec]))),
|
|
21
|
+
definition,
|
|
22
|
+
[codecsKind.runTimeKey]: null
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { codecKind, codecsKind, createCodec, createCodecs };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const require_whenHasInformationOtherwise = require("../../../../either/whenHasInformationOtherwise.cjs");
|
|
2
|
+
const require_createDate = require("../../../../chrono/createDate.cjs");
|
|
3
|
+
const require_createTime = require("../../../../chrono/createTime.cjs");
|
|
4
|
+
const require_forward = require("../../../../common/forward.cjs");
|
|
5
|
+
const require_innerPipe = require("../../../../common/innerPipe.cjs");
|
|
6
|
+
const require_justReturn = require("../../../../common/justReturn.cjs");
|
|
7
|
+
const require_to = require("../../../../string/to.cjs");
|
|
8
|
+
const require_resultSymbol = require("../../resultSymbol.cjs");
|
|
9
|
+
const require_base = require("../base.cjs");
|
|
10
|
+
const require_bigint = require("../../../fundamentalType/defaults/bigint.cjs");
|
|
11
|
+
const require_date = require("../../../fundamentalType/defaults/date.cjs");
|
|
12
|
+
const require_time = require("../../../fundamentalType/defaults/time.cjs");
|
|
13
|
+
//#region scripts/dataStructure/common/codec/defaults/json.ts
|
|
14
|
+
const codecsJson = require_base.createCodecs({
|
|
15
|
+
bigint: require_base.createCodec(require_bigint.TheBigint, (data) => typeof data === "string", require_to.to, (data) => {
|
|
16
|
+
try {
|
|
17
|
+
return BigInt(data);
|
|
18
|
+
} catch {
|
|
19
|
+
return require_resultSymbol.ErrorSymbol;
|
|
20
|
+
}
|
|
21
|
+
}),
|
|
22
|
+
date: require_base.createCodec(require_date.TheDate, (data) => typeof data === "string", require_to.to, require_innerPipe.innerPipe((value) => require_createDate.createDate({ value }), require_whenHasInformationOtherwise.whenHasInformationOtherwise("date-created", require_forward.forward, require_justReturn.justReturn(require_resultSymbol.ErrorSymbol)))),
|
|
23
|
+
time: require_base.createCodec(require_time.TheTime, (data) => typeof data === "string", require_to.to, require_innerPipe.innerPipe((value) => require_createTime.createTime({ value }), require_whenHasInformationOtherwise.whenHasInformationOtherwise("time-created", require_forward.forward, require_justReturn.justReturn(require_resultSymbol.ErrorSymbol))))
|
|
24
|
+
});
|
|
25
|
+
//#endregion
|
|
26
|
+
exports.codecsJson = codecsJson;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as FundamentalType from "../../../fundamentalType";
|
|
2
|
+
export declare const codecsJson: import('../../..').Codecs<{
|
|
3
|
+
bigint: import('../../..').Codec<FundamentalType.TheBigint, string>;
|
|
4
|
+
date: import('../../..').Codec<FundamentalType.TheDate, string>;
|
|
5
|
+
time: import('../../..').Codec<FundamentalType.TheTime, string>;
|
|
6
|
+
}>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { whenHasInformationOtherwise } from "../../../../either/whenHasInformationOtherwise.mjs";
|
|
2
|
+
import { createDate } from "../../../../chrono/createDate.mjs";
|
|
3
|
+
import { createTime } from "../../../../chrono/createTime.mjs";
|
|
4
|
+
import { forward } from "../../../../common/forward.mjs";
|
|
5
|
+
import { innerPipe } from "../../../../common/innerPipe.mjs";
|
|
6
|
+
import { justReturn } from "../../../../common/justReturn.mjs";
|
|
7
|
+
import { to } from "../../../../string/to.mjs";
|
|
8
|
+
import { ErrorSymbol } from "../../resultSymbol.mjs";
|
|
9
|
+
import { createCodec, createCodecs } from "../base.mjs";
|
|
10
|
+
import { TheBigint } from "../../../fundamentalType/defaults/bigint.mjs";
|
|
11
|
+
import { TheDate } from "../../../fundamentalType/defaults/date.mjs";
|
|
12
|
+
import { TheTime } from "../../../fundamentalType/defaults/time.mjs";
|
|
13
|
+
//#region scripts/dataStructure/common/codec/defaults/json.ts
|
|
14
|
+
const codecsJson = createCodecs({
|
|
15
|
+
bigint: createCodec(TheBigint, (data) => typeof data === "string", to, (data) => {
|
|
16
|
+
try {
|
|
17
|
+
return BigInt(data);
|
|
18
|
+
} catch {
|
|
19
|
+
return ErrorSymbol;
|
|
20
|
+
}
|
|
21
|
+
}),
|
|
22
|
+
date: createCodec(TheDate, (data) => typeof data === "string", to, innerPipe((value) => createDate({ value }), whenHasInformationOtherwise("date-created", forward, justReturn(ErrorSymbol)))),
|
|
23
|
+
time: createCodec(TheTime, (data) => typeof data === "string", to, innerPipe((value) => createTime({ value }), whenHasInformationOtherwise("time-created", forward, justReturn(ErrorSymbol))))
|
|
24
|
+
});
|
|
25
|
+
//#endregion
|
|
26
|
+
export { codecsJson };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
const require_whenHasInformationOtherwise = require("../../../../either/whenHasInformationOtherwise.cjs");
|
|
2
|
+
const require_createDate = require("../../../../chrono/createDate.cjs");
|
|
3
|
+
const require_createTime = require("../../../../chrono/createTime.cjs");
|
|
4
|
+
const require_forward = require("../../../../common/forward.cjs");
|
|
5
|
+
const require_innerPipe = require("../../../../common/innerPipe.cjs");
|
|
6
|
+
const require_justReturn = require("../../../../common/justReturn.cjs");
|
|
7
|
+
const require_isNumber = require("../../../../string/isNumber.cjs");
|
|
8
|
+
const require_to = require("../../../../string/to.cjs");
|
|
9
|
+
const require_resultSymbol = require("../../resultSymbol.cjs");
|
|
10
|
+
const require_base = require("../base.cjs");
|
|
11
|
+
const require_bigint = require("../../../fundamentalType/defaults/bigint.cjs");
|
|
12
|
+
const require_boolean = require("../../../fundamentalType/defaults/boolean.cjs");
|
|
13
|
+
const require_date = require("../../../fundamentalType/defaults/date.cjs");
|
|
14
|
+
const require_null = require("../../../fundamentalType/defaults/null.cjs");
|
|
15
|
+
const require_number = require("../../../fundamentalType/defaults/number.cjs");
|
|
16
|
+
const require_time = require("../../../fundamentalType/defaults/time.cjs");
|
|
17
|
+
const require_undefined = require("../../../fundamentalType/defaults/undefined.cjs");
|
|
18
|
+
//#region scripts/dataStructure/common/codec/defaults/string.ts
|
|
19
|
+
const codecsString = require_base.createCodecs({
|
|
20
|
+
bigint: require_base.createCodec(require_bigint.TheBigint, (data) => typeof data === "string", require_to.to, (data) => {
|
|
21
|
+
try {
|
|
22
|
+
return BigInt(data);
|
|
23
|
+
} catch {
|
|
24
|
+
return require_resultSymbol.ErrorSymbol;
|
|
25
|
+
}
|
|
26
|
+
}),
|
|
27
|
+
boolean: require_base.createCodec(require_boolean.TheBoolean, (data) => data === "true" || data === "false", require_to.to, (data) => {
|
|
28
|
+
if (data === "true") return true;
|
|
29
|
+
return false;
|
|
30
|
+
}),
|
|
31
|
+
date: require_base.createCodec(require_date.TheDate, (data) => typeof data === "string", require_to.to, require_innerPipe.innerPipe((value) => require_createDate.createDate({ value }), require_whenHasInformationOtherwise.whenHasInformationOtherwise("date-created", require_forward.forward, require_justReturn.justReturn(require_resultSymbol.ErrorSymbol)))),
|
|
32
|
+
null: require_base.createCodec(require_null.TheNull, (data) => data === "null", require_to.to, require_justReturn.justReturn(null)),
|
|
33
|
+
number: require_base.createCodec(require_number.TheNumber, (data) => typeof data === "string" && require_isNumber.isNumber(data), require_to.to, (data) => {
|
|
34
|
+
try {
|
|
35
|
+
return Number(data);
|
|
36
|
+
} catch {
|
|
37
|
+
return require_resultSymbol.ErrorSymbol;
|
|
38
|
+
}
|
|
39
|
+
}),
|
|
40
|
+
time: require_base.createCodec(require_time.TheTime, (data) => typeof data === "string", require_to.to, require_innerPipe.innerPipe((value) => require_createTime.createTime({ value }), require_whenHasInformationOtherwise.whenHasInformationOtherwise("time-created", require_forward.forward, require_justReturn.justReturn(require_resultSymbol.ErrorSymbol)))),
|
|
41
|
+
undefined: require_base.createCodec(require_undefined.TheUndefined, (data) => data === "undefined", require_to.to, require_justReturn.justReturn(void 0))
|
|
42
|
+
});
|
|
43
|
+
//#endregion
|
|
44
|
+
exports.codecsString = codecsString;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as DString from '../../../../string';
|
|
2
|
+
import * as FundamentalType from "../../../fundamentalType";
|
|
3
|
+
export declare const codecsString: import('../../..').Codecs<{
|
|
4
|
+
bigint: import('../../..').Codec<FundamentalType.TheBigint, string>;
|
|
5
|
+
boolean: import('../../..').Codec<FundamentalType.TheBoolean, "true" | "false">;
|
|
6
|
+
date: import('../../..').Codec<FundamentalType.TheDate, string>;
|
|
7
|
+
null: import('../../..').Codec<FundamentalType.TheNull, "null">;
|
|
8
|
+
number: import('../../..').Codec<FundamentalType.TheNumber, string & DString.Number>;
|
|
9
|
+
time: import('../../..').Codec<FundamentalType.TheTime, string>;
|
|
10
|
+
undefined: import('../../..').Codec<FundamentalType.TheUndefined, "undefined">;
|
|
11
|
+
}>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { whenHasInformationOtherwise } from "../../../../either/whenHasInformationOtherwise.mjs";
|
|
2
|
+
import { createDate } from "../../../../chrono/createDate.mjs";
|
|
3
|
+
import { createTime } from "../../../../chrono/createTime.mjs";
|
|
4
|
+
import { forward } from "../../../../common/forward.mjs";
|
|
5
|
+
import { innerPipe } from "../../../../common/innerPipe.mjs";
|
|
6
|
+
import { justReturn } from "../../../../common/justReturn.mjs";
|
|
7
|
+
import { isNumber } from "../../../../string/isNumber.mjs";
|
|
8
|
+
import { to } from "../../../../string/to.mjs";
|
|
9
|
+
import { ErrorSymbol } from "../../resultSymbol.mjs";
|
|
10
|
+
import { createCodec, createCodecs } from "../base.mjs";
|
|
11
|
+
import { TheBigint } from "../../../fundamentalType/defaults/bigint.mjs";
|
|
12
|
+
import { TheBoolean } from "../../../fundamentalType/defaults/boolean.mjs";
|
|
13
|
+
import { TheDate } from "../../../fundamentalType/defaults/date.mjs";
|
|
14
|
+
import { TheNull } from "../../../fundamentalType/defaults/null.mjs";
|
|
15
|
+
import { TheNumber } from "../../../fundamentalType/defaults/number.mjs";
|
|
16
|
+
import { TheTime } from "../../../fundamentalType/defaults/time.mjs";
|
|
17
|
+
import { TheUndefined } from "../../../fundamentalType/defaults/undefined.mjs";
|
|
18
|
+
//#region scripts/dataStructure/common/codec/defaults/string.ts
|
|
19
|
+
const codecsString = createCodecs({
|
|
20
|
+
bigint: createCodec(TheBigint, (data) => typeof data === "string", to, (data) => {
|
|
21
|
+
try {
|
|
22
|
+
return BigInt(data);
|
|
23
|
+
} catch {
|
|
24
|
+
return ErrorSymbol;
|
|
25
|
+
}
|
|
26
|
+
}),
|
|
27
|
+
boolean: createCodec(TheBoolean, (data) => data === "true" || data === "false", to, (data) => {
|
|
28
|
+
if (data === "true") return true;
|
|
29
|
+
return false;
|
|
30
|
+
}),
|
|
31
|
+
date: createCodec(TheDate, (data) => typeof data === "string", to, innerPipe((value) => createDate({ value }), whenHasInformationOtherwise("date-created", forward, justReturn(ErrorSymbol)))),
|
|
32
|
+
null: createCodec(TheNull, (data) => data === "null", to, justReturn(null)),
|
|
33
|
+
number: createCodec(TheNumber, (data) => typeof data === "string" && isNumber(data), to, (data) => {
|
|
34
|
+
try {
|
|
35
|
+
return Number(data);
|
|
36
|
+
} catch {
|
|
37
|
+
return ErrorSymbol;
|
|
38
|
+
}
|
|
39
|
+
}),
|
|
40
|
+
time: createCodec(TheTime, (data) => typeof data === "string", to, innerPipe((value) => createTime({ value }), whenHasInformationOtherwise("time-created", forward, justReturn(ErrorSymbol)))),
|
|
41
|
+
undefined: createCodec(TheUndefined, (data) => data === "undefined", to, justReturn(void 0))
|
|
42
|
+
});
|
|
43
|
+
//#endregion
|
|
44
|
+
export { codecsString };
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
const require_kind = require("../../kind.cjs");
|
|
2
|
+
//#region scripts/dataStructure/common/error/base.ts
|
|
3
|
+
const issueKind = require_kind.createKind("issue");
|
|
4
|
+
const encodeIssueKind = require_kind.createKind("encode-issue");
|
|
5
|
+
const decodeIssueKind = require_kind.createKind("decode-issue");
|
|
6
|
+
function createErrorHandler(defaultPath) {
|
|
7
|
+
const issues = [];
|
|
8
|
+
const currentPath = defaultPath ? [...defaultPath] : [];
|
|
9
|
+
let currentStagePath = currentPath.length - 1;
|
|
10
|
+
let currentStage = void 0;
|
|
11
|
+
return {
|
|
12
|
+
currentPath,
|
|
13
|
+
issues,
|
|
14
|
+
createPathStage: () => {
|
|
15
|
+
if (currentStage === void 0) currentStage = {
|
|
16
|
+
setCurrentPath: (path) => {
|
|
17
|
+
currentPath[currentStagePath] = path;
|
|
18
|
+
},
|
|
19
|
+
close: () => {
|
|
20
|
+
if (currentStagePath === -1) return;
|
|
21
|
+
if (currentPath.length !== currentStagePath) currentPath.pop();
|
|
22
|
+
currentStagePath--;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
currentStagePath++;
|
|
26
|
+
return currentStage;
|
|
27
|
+
},
|
|
28
|
+
addIssue: (source, data, subSource) => {
|
|
29
|
+
issues.push({
|
|
30
|
+
data,
|
|
31
|
+
path: currentPath.join("."),
|
|
32
|
+
getSource: () => source,
|
|
33
|
+
getSubSource: subSource ? () => subSource : void 0,
|
|
34
|
+
[issueKind.runTimeKey]: null
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
addEncodeIssue: (source, from, data, message) => {
|
|
38
|
+
issues.push({
|
|
39
|
+
from,
|
|
40
|
+
data,
|
|
41
|
+
path: currentPath.join("."),
|
|
42
|
+
message,
|
|
43
|
+
getSource: () => source,
|
|
44
|
+
[encodeIssueKind.runTimeKey]: null
|
|
45
|
+
});
|
|
46
|
+
},
|
|
47
|
+
addDecodeIssue: (source, from, data, message) => {
|
|
48
|
+
issues.push({
|
|
49
|
+
from,
|
|
50
|
+
data,
|
|
51
|
+
path: currentPath.join("."),
|
|
52
|
+
message,
|
|
53
|
+
getSource: () => source,
|
|
54
|
+
[decodeIssueKind.runTimeKey]: null
|
|
55
|
+
});
|
|
56
|
+
},
|
|
57
|
+
createError: () => ({ issues }),
|
|
58
|
+
importIssues: (errorHandler) => void errorHandler.forEach((value) => void issues.push(...typeof value === "function" ? value().issues : value.issues))
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function createGetErrorHandler(defaultPath) {
|
|
62
|
+
let errorHandler = void 0;
|
|
63
|
+
return () => {
|
|
64
|
+
if (errorHandler === void 0) errorHandler = createErrorHandler(defaultPath);
|
|
65
|
+
return errorHandler;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//#endregion
|
|
69
|
+
exports.createErrorHandler = createErrorHandler;
|
|
70
|
+
exports.createGetErrorHandler = createGetErrorHandler;
|
|
71
|
+
exports.decodeIssueKind = decodeIssueKind;
|
|
72
|
+
exports.encodeIssueKind = encodeIssueKind;
|
|
73
|
+
exports.issueKind = issueKind;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Constraint } from '../../constraint';
|
|
2
|
+
import { Structure } from '../../structure';
|
|
3
|
+
import { Type } from '../../type';
|
|
4
|
+
import { Codec } from '../codec';
|
|
5
|
+
import type * as DCommon from '../../../common';
|
|
6
|
+
import type * as DKind from '../../../kind';
|
|
7
|
+
export declare const issueKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/issue", unknown>>;
|
|
8
|
+
export interface Issue extends DKind.Kind<typeof issueKind> {
|
|
9
|
+
readonly path: string;
|
|
10
|
+
readonly data: unknown;
|
|
11
|
+
getSource(): Structure;
|
|
12
|
+
getSubSource?(): (Type | Constraint);
|
|
13
|
+
}
|
|
14
|
+
export declare const encodeIssueKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/encode-issue", unknown>>;
|
|
15
|
+
export interface EncodeIssue extends DKind.Kind<typeof encodeIssueKind> {
|
|
16
|
+
readonly from: "encoding" | "predicate" | "external";
|
|
17
|
+
readonly path: string;
|
|
18
|
+
readonly data: unknown;
|
|
19
|
+
readonly message?: string;
|
|
20
|
+
getSource(): Codec;
|
|
21
|
+
}
|
|
22
|
+
export declare const decodeIssueKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/decode-issue", unknown>>;
|
|
23
|
+
export interface DecodeIssue extends DKind.Kind<typeof decodeIssueKind> {
|
|
24
|
+
readonly from: "decoding" | "predicate" | "external";
|
|
25
|
+
readonly path: string;
|
|
26
|
+
readonly data: unknown;
|
|
27
|
+
readonly message?: string;
|
|
28
|
+
getSource(): Codec;
|
|
29
|
+
}
|
|
30
|
+
export type Issues = (Issue | EncodeIssue | DecodeIssue);
|
|
31
|
+
export interface PathStageErrorHandler {
|
|
32
|
+
setCurrentPath(path: string): void;
|
|
33
|
+
close(): void;
|
|
34
|
+
}
|
|
35
|
+
export interface Error {
|
|
36
|
+
readonly issues: readonly Issues[];
|
|
37
|
+
}
|
|
38
|
+
export interface ErrorHandler {
|
|
39
|
+
readonly issues: readonly Issues[];
|
|
40
|
+
readonly currentPath: string[];
|
|
41
|
+
addIssue(source: ReturnType<Issue["getSource"]>, data: unknown, subSource?: ReturnType<Extract<Issue["getSubSource"], DCommon.AnyFunction>>): void;
|
|
42
|
+
addEncodeIssue(source: ReturnType<EncodeIssue["getSource"]>, from: EncodeIssue["from"], data: unknown, message?: string): void;
|
|
43
|
+
addDecodeIssue(source: ReturnType<DecodeIssue["getSource"]>, from: DecodeIssue["from"], data: unknown, message?: string): void;
|
|
44
|
+
importIssues(errorHandler: (GetErrorHandler | ErrorHandler)[]): void;
|
|
45
|
+
createPathStage(): PathStageErrorHandler;
|
|
46
|
+
createError(): Error;
|
|
47
|
+
}
|
|
48
|
+
export declare function createErrorHandler(defaultPath?: string[]): ErrorHandler;
|
|
49
|
+
export type GetErrorHandler = () => ErrorHandler;
|
|
50
|
+
export declare function createGetErrorHandler(defaultPath?: string[]): GetErrorHandler;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { createKind } from "../../kind.mjs";
|
|
2
|
+
//#region scripts/dataStructure/common/error/base.ts
|
|
3
|
+
const issueKind = createKind("issue");
|
|
4
|
+
const encodeIssueKind = createKind("encode-issue");
|
|
5
|
+
const decodeIssueKind = createKind("decode-issue");
|
|
6
|
+
function createErrorHandler(defaultPath) {
|
|
7
|
+
const issues = [];
|
|
8
|
+
const currentPath = defaultPath ? [...defaultPath] : [];
|
|
9
|
+
let currentStagePath = currentPath.length - 1;
|
|
10
|
+
let currentStage = void 0;
|
|
11
|
+
return {
|
|
12
|
+
currentPath,
|
|
13
|
+
issues,
|
|
14
|
+
createPathStage: () => {
|
|
15
|
+
if (currentStage === void 0) currentStage = {
|
|
16
|
+
setCurrentPath: (path) => {
|
|
17
|
+
currentPath[currentStagePath] = path;
|
|
18
|
+
},
|
|
19
|
+
close: () => {
|
|
20
|
+
if (currentStagePath === -1) return;
|
|
21
|
+
if (currentPath.length !== currentStagePath) currentPath.pop();
|
|
22
|
+
currentStagePath--;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
currentStagePath++;
|
|
26
|
+
return currentStage;
|
|
27
|
+
},
|
|
28
|
+
addIssue: (source, data, subSource) => {
|
|
29
|
+
issues.push({
|
|
30
|
+
data,
|
|
31
|
+
path: currentPath.join("."),
|
|
32
|
+
getSource: () => source,
|
|
33
|
+
getSubSource: subSource ? () => subSource : void 0,
|
|
34
|
+
[issueKind.runTimeKey]: null
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
addEncodeIssue: (source, from, data, message) => {
|
|
38
|
+
issues.push({
|
|
39
|
+
from,
|
|
40
|
+
data,
|
|
41
|
+
path: currentPath.join("."),
|
|
42
|
+
message,
|
|
43
|
+
getSource: () => source,
|
|
44
|
+
[encodeIssueKind.runTimeKey]: null
|
|
45
|
+
});
|
|
46
|
+
},
|
|
47
|
+
addDecodeIssue: (source, from, data, message) => {
|
|
48
|
+
issues.push({
|
|
49
|
+
from,
|
|
50
|
+
data,
|
|
51
|
+
path: currentPath.join("."),
|
|
52
|
+
message,
|
|
53
|
+
getSource: () => source,
|
|
54
|
+
[decodeIssueKind.runTimeKey]: null
|
|
55
|
+
});
|
|
56
|
+
},
|
|
57
|
+
createError: () => ({ issues }),
|
|
58
|
+
importIssues: (errorHandler) => void errorHandler.forEach((value) => void issues.push(...typeof value === "function" ? value().issues : value.issues))
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function createGetErrorHandler(defaultPath) {
|
|
62
|
+
let errorHandler = void 0;
|
|
63
|
+
return () => {
|
|
64
|
+
if (errorHandler === void 0) errorHandler = createErrorHandler(defaultPath);
|
|
65
|
+
return errorHandler;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//#endregion
|
|
69
|
+
export { createErrorHandler, createGetErrorHandler, decodeIssueKind, encodeIssueKind, issueKind };
|