@duplojs/lang 0.0.1-beta.1 → 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/index.cjs +6 -0
- package/dist/common/index.mjs +5 -1
- package/dist/common/isType.d.ts +3 -2
- 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/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/record.cjs +7 -7
- package/dist/dataStructure/structure/defaults/record.d.ts +3 -3
- package/dist/dataStructure/structure/defaults/record.mjs +7 -7
- 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 +21 -15
- 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
|
@@ -1,21 +1,34 @@
|
|
|
1
|
+
import { parentClass } from "../../kind/parentClass.mjs";
|
|
1
2
|
import { isSimple } from "../../object/isSimple.mjs";
|
|
3
|
+
import { override } from "../../object/override.mjs";
|
|
2
4
|
import { left } from "../../either/left/create.mjs";
|
|
5
|
+
import { isLeft } from "../../either/left/is.mjs";
|
|
3
6
|
import { right } from "../../either/right/create.mjs";
|
|
7
|
+
import { unwrapLeft } from "../../either/left/unwrap.mjs";
|
|
8
|
+
import { unwrapRight } from "../../either/right/unwrap.mjs";
|
|
4
9
|
import { justExec } from "../../common/justExec.mjs";
|
|
5
10
|
import { memo } from "../../common/memo.mjs";
|
|
6
11
|
import { ErrorSymbol } from "../../dataStructure/common/resultSymbol.mjs";
|
|
7
|
-
import { createGetErrorHandler } from "../../dataStructure/common/error.mjs";
|
|
12
|
+
import { createGetErrorHandler } from "../../dataStructure/common/error/base.mjs";
|
|
8
13
|
import { createStructure } from "../../dataStructure/structure/base.mjs";
|
|
14
|
+
import { NonEncodableStringStructure } from "../../dataStructure/structure/defaults/nonEncodableString.mjs";
|
|
9
15
|
import { ObjectStructure } from "../../dataStructure/structure/defaults/object.mjs";
|
|
10
16
|
import { createKind } from "../kind.mjs";
|
|
11
|
-
import {
|
|
17
|
+
import { objectTagKind } from "../taggedObject/base.mjs";
|
|
12
18
|
//#region scripts/modeling/entity/base.ts
|
|
13
19
|
const entityKind = createKind("entity");
|
|
14
20
|
const entityStructureKind = createKind("entity-structure");
|
|
21
|
+
var EncodeEntityError = class extends parentClass(createKind("encode-entity-error"), Error) {
|
|
22
|
+
error;
|
|
23
|
+
constructor(error) {
|
|
24
|
+
super(void 0, "An error occurred while encoding an Entity. This can only happen if you are bypassing the type system.");
|
|
25
|
+
this.error = error;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
15
28
|
const EntityStructure = createStructure(entityStructureKind, ({ init }) => (name, shape) => init({
|
|
16
29
|
inner: memo(() => ObjectStructure({
|
|
17
30
|
...shape(),
|
|
18
|
-
[entityKind.runTimeKey]:
|
|
31
|
+
[entityKind.runTimeKey]: NonEncodableStringStructure(name)
|
|
19
32
|
}, [])),
|
|
20
33
|
constraints: []
|
|
21
34
|
}, {
|
|
@@ -71,7 +84,7 @@ const EntityStructure = createStructure(entityStructureKind, ({ init }) => (name
|
|
|
71
84
|
return right("map-success", result);
|
|
72
85
|
});
|
|
73
86
|
},
|
|
74
|
-
asyncMap: (self, data) =>
|
|
87
|
+
asyncMap: async (self, data) => {
|
|
75
88
|
const errorHandler = createGetErrorHandler();
|
|
76
89
|
const formattedData = isSimple(data) ? {
|
|
77
90
|
...data,
|
|
@@ -79,7 +92,20 @@ const EntityStructure = createStructure(entityStructureKind, ({ init }) => (name
|
|
|
79
92
|
} : data;
|
|
80
93
|
if (await self.executeCheck(formattedData, errorHandler) === ErrorSymbol) return left("map-error", errorHandler().createError());
|
|
81
94
|
return right("map-success", formattedData);
|
|
82
|
-
}
|
|
95
|
+
},
|
|
96
|
+
encodeEntity: async (self, codecs, data) => {
|
|
97
|
+
const result = await self.asyncEncode(codecs, data);
|
|
98
|
+
if (isLeft(result)) throw new EncodeEntityError(unwrapLeft(result));
|
|
99
|
+
return unwrapRight(result);
|
|
100
|
+
},
|
|
101
|
+
update: (self, ...args) => {
|
|
102
|
+
if (args.length === 1) {
|
|
103
|
+
const [update] = args;
|
|
104
|
+
return (input) => self.update(input, update);
|
|
105
|
+
}
|
|
106
|
+
const [input, { [objectTagKind.runTimeKey]: __, ...update }] = args;
|
|
107
|
+
return override(input, update);
|
|
108
|
+
}
|
|
83
109
|
}));
|
|
84
110
|
//#endregion
|
|
85
|
-
export { EntityStructure, entityKind, entityStructureKind };
|
|
111
|
+
export { EncodeEntityError, EntityStructure, entityKind, entityStructureKind };
|
|
@@ -3,7 +3,7 @@ import { NewType } from '../newType';
|
|
|
3
3
|
import type * as DCommon from '../../common';
|
|
4
4
|
import type * as DDataStructure from '../../dataStructure';
|
|
5
5
|
import type * as DString from '../../string';
|
|
6
|
-
export type ForbiddenMissingNewTypeInEntityShape<GenericValue extends unknown, GenericPath extends readonly string[] = readonly []> = GenericValue extends NewType ? never : GenericValue extends object ? DCommon.Or<[
|
|
6
|
+
export type ForbiddenMissingNewTypeInEntityShape<GenericValue extends unknown, GenericPath extends readonly string[] = readonly []> = GenericValue extends NewType | null ? never : GenericValue extends object ? DCommon.Or<[
|
|
7
7
|
DCommon.IsExtends<GenericValue, readonly any[]>,
|
|
8
8
|
DCommon.And<[
|
|
9
9
|
DCommon.IsExtends<keyof GenericValue, string>,
|
|
@@ -7,9 +7,9 @@ const namespaceKind = require_kind.createKind("namespace");
|
|
|
7
7
|
function createEntityNamespace(entityName) {
|
|
8
8
|
return {
|
|
9
9
|
name: entityName,
|
|
10
|
-
createNewType: (name, structure, newTypeConstraints = []) => require_helper$1.
|
|
10
|
+
createNewType: (name, structure, newTypeConstraints = []) => require_helper$1.createNewType(`${entityName}${name}`, structure, newTypeConstraints),
|
|
11
11
|
createEntity: (shape) => require_helper.createEntity(entityName, shape),
|
|
12
|
-
createFlag: (
|
|
12
|
+
createFlag: (name) => require_base.createFlag(`${entityName}${name}`),
|
|
13
13
|
[namespaceKind.runTimeKey]: null
|
|
14
14
|
};
|
|
15
15
|
}
|
|
@@ -10,6 +10,6 @@ export interface EntityNamespace<GenericEntityName extends Capitalize<string> =
|
|
|
10
10
|
readonly name: GenericEntityName;
|
|
11
11
|
createNewType<GenericName extends Capitalize<string>, GenericStructure extends DDataStructure.Structure, const GenericNewTypeConstraint extends readonly DDataStructure.Constraint<DDataStructure.StructureValue<GenericStructure>>[] = readonly []>(name: (GenericName & DCommon.NeverCoalescing<ForbiddenTopLevelNewType<DDataStructure.StructureValue<GenericStructure>>, unknown>), structure: GenericStructure, newTypeConstraints?: GenericNewTypeConstraint): NewTypeStructure<`${GenericEntityName}${GenericName}`, DDataStructure.StructureValue<GenericStructure>, GenericNewTypeConstraint>;
|
|
12
12
|
createEntity<GenericShape extends DDataStructure.ShapeObjectStructure>(shape: () => (GenericShape & DCommon.NeverCoalescing<ForbiddenMissingNewTypeInEntityShape<DDataStructure.ShapeObjectStructureValue<GenericShape>>, unknown>)): EntityStructure<GenericEntityName, DDataStructure.ShapeObjectStructureValue<GenericShape>>;
|
|
13
|
-
createFlag<
|
|
13
|
+
createFlag<GenericName extends Capitalize<string>, GenericEntityStructure extends EntityStructure<GenericEntityName>, GenericPayload extends unknown = {}>(name: DCommon.IsEqual<GenericName, Capitalize<string>> extends true ? never : NoInfer<GenericName>): FlagHandler<`${GenericEntityName}${GenericName}`, DDataStructure.StructureValue<GenericEntityStructure>, GenericPayload>;
|
|
14
14
|
}
|
|
15
15
|
export declare function createEntityNamespace<GenericName extends Capitalize<string>>(entityName: GenericName): EntityNamespace<GenericName>;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { createKind } from "../kind.mjs";
|
|
2
2
|
import { createEntity } from "./helper.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { createNewType } from "../newType/helper.mjs";
|
|
4
4
|
import { createFlag } from "../flag/base.mjs";
|
|
5
5
|
//#region scripts/modeling/entity/namespace.ts
|
|
6
6
|
const namespaceKind = createKind("namespace");
|
|
7
7
|
function createEntityNamespace(entityName) {
|
|
8
8
|
return {
|
|
9
9
|
name: entityName,
|
|
10
|
-
createNewType: (name, structure, newTypeConstraints = []) =>
|
|
10
|
+
createNewType: (name, structure, newTypeConstraints = []) => createNewType(`${entityName}${name}`, structure, newTypeConstraints),
|
|
11
11
|
createEntity: (shape) => createEntity(entityName, shape),
|
|
12
|
-
createFlag: (
|
|
12
|
+
createFlag: (name) => createFlag(`${entityName}${name}`),
|
|
13
13
|
[namespaceKind.runTimeKey]: null
|
|
14
14
|
};
|
|
15
15
|
}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
const require_type = require("../../dataStructure/structure/defaults/type.cjs");
|
|
2
|
-
const require_null = require("../../dataStructure/type/defaults/null.cjs");
|
|
3
1
|
const require_kind = require("../kind.cjs");
|
|
4
2
|
//#region scripts/modeling/flag/base.ts
|
|
5
3
|
const flagKind = require_kind.createKind("flag");
|
|
6
4
|
const flagHandlerKind = require_kind.createKind("flag-handler");
|
|
7
|
-
function createFlag(
|
|
5
|
+
function createFlag(name) {
|
|
8
6
|
function append(...args) {
|
|
9
7
|
if (args.length === 1) {
|
|
10
8
|
const [value] = args;
|
|
@@ -19,8 +17,6 @@ function createFlag(entityStructure, name, valueStructure = require_type.TypeStr
|
|
|
19
17
|
}
|
|
20
18
|
return {
|
|
21
19
|
name,
|
|
22
|
-
entityStructure,
|
|
23
|
-
valueStructure,
|
|
24
20
|
append,
|
|
25
21
|
getValue(entity) {
|
|
26
22
|
return flagKind.getValue(entity)[name];
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import { EntityStructure, Entity
|
|
1
|
+
import { EntityStructure, Entity } from '../entity';
|
|
2
|
+
import type * as DCommon from '../../common';
|
|
2
3
|
import type * as DKind from '../../kind';
|
|
3
|
-
import * as DDataStructure from '../../dataStructure';
|
|
4
|
+
import type * as DDataStructure from '../../dataStructure';
|
|
4
5
|
export declare const flagKind: DKind.Handler<DKind.Definition<"@DuplojsLangModeling/flag", Record<string, unknown>>>;
|
|
5
6
|
export interface Flag<GenericName extends string = string, GenericValue extends unknown = never> extends DKind.Kind<typeof flagKind, Record<GenericName, GenericValue>> {
|
|
6
7
|
}
|
|
7
8
|
declare const flagHandlerKind: DKind.Handler<DKind.Definition<"@DuplojsLangModeling/flag-handler", unknown>>;
|
|
8
|
-
export interface FlagHandler<
|
|
9
|
+
export interface FlagHandler<GenericName extends string = string, GenericEntity extends Entity = Entity, GenericValue extends unknown = unknown> extends DKind.Kind<typeof flagHandlerKind> {
|
|
9
10
|
readonly name: GenericName;
|
|
10
|
-
readonly entityStructure: EntityStructure<GetEntityName<GenericEntity>, Omit<GenericEntity, DKind.KeySymbol>>;
|
|
11
|
-
readonly valueStructure: DDataStructure.Structure<GenericValue>;
|
|
12
11
|
append<GenericInputEntity extends GenericEntity, const GenericInputValue extends GenericValue>(value: GenericInputValue): (entity: GenericInputEntity) => (GenericInputEntity & Flag<GenericName, GenericInputValue>);
|
|
13
12
|
append<GenericInputEntity extends GenericEntity, const GenericInputValue extends GenericValue>(entity: GenericInputEntity, value: GenericInputValue): (GenericInputEntity & Flag<GenericName, GenericInputValue>);
|
|
14
13
|
getValue<GenericInputEntity extends GenericEntity & Flag<GenericName, GenericValue>>(entity: GenericInputEntity): DKind.GetValue<typeof flagKind, GenericInputEntity>[GenericName];
|
|
15
14
|
has<GenericInputEntity extends GenericEntity>(entity: GenericInputEntity): entity is Extract<GenericInputEntity, Flag<GenericName, any>>;
|
|
16
15
|
}
|
|
17
|
-
export declare function createFlag<
|
|
18
|
-
export type GetFlag<GenericHandler extends FlagHandler<any, any, any>> = GenericHandler extends FlagHandler<
|
|
16
|
+
export declare function createFlag<GenericName extends Capitalize<string>, GenericEntityStructure extends EntityStructure, GenericPayload extends unknown = {}>(name: DCommon.IsEqual<GenericName, Capitalize<string>> extends true ? never : NoInfer<GenericName>): FlagHandler<GenericName, DDataStructure.StructureValue<GenericEntityStructure>, GenericPayload>;
|
|
17
|
+
export type GetFlag<GenericHandler extends FlagHandler<any, any, any>> = GenericHandler extends FlagHandler<infer InferredName, any, infer InferredValue> ? Flag<InferredName, InferredValue> : never;
|
|
19
18
|
export {};
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import { TypeStructure } from "../../dataStructure/structure/defaults/type.mjs";
|
|
2
|
-
import { NullType } from "../../dataStructure/type/defaults/null.mjs";
|
|
3
1
|
import { createKind } from "../kind.mjs";
|
|
4
2
|
//#region scripts/modeling/flag/base.ts
|
|
5
3
|
const flagKind = createKind("flag");
|
|
6
4
|
const flagHandlerKind = createKind("flag-handler");
|
|
7
|
-
function createFlag(
|
|
5
|
+
function createFlag(name) {
|
|
8
6
|
function append(...args) {
|
|
9
7
|
if (args.length === 1) {
|
|
10
8
|
const [value] = args;
|
|
@@ -19,8 +17,6 @@ function createFlag(entityStructure, name, valueStructure = TypeStructure(NullTy
|
|
|
19
17
|
}
|
|
20
18
|
return {
|
|
21
19
|
name,
|
|
22
|
-
entityStructure,
|
|
23
|
-
valueStructure,
|
|
24
20
|
append,
|
|
25
21
|
getValue(entity) {
|
|
26
22
|
return flagKind.getValue(entity)[name];
|
package/dist/modeling/index.cjs
CHANGED
|
@@ -1,42 +1,56 @@
|
|
|
1
1
|
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
2
2
|
const require_kind = require("./kind.cjs");
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
3
|
+
const require_base = require("./taggedObject/base.cjs");
|
|
4
|
+
const require_helper = require("./taggedObject/helper.cjs");
|
|
5
|
+
const require_base$1 = require("./entity/base.cjs");
|
|
6
|
+
const require_helper$1 = require("./entity/helper.cjs");
|
|
7
|
+
const require_base$2 = require("./newType/base.cjs");
|
|
8
|
+
const require_helper$2 = require("./newType/helper.cjs");
|
|
9
|
+
const require_base$3 = require("./flag/base.cjs");
|
|
9
10
|
const require_namespace = require("./entity/namespace.cjs");
|
|
10
11
|
//#region scripts/modeling/index.ts
|
|
11
12
|
var modeling_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
EncodeEntityError: () => require_base$1.EncodeEntityError,
|
|
14
|
+
EncodeNewTypeError: () => require_base$2.EncodeNewTypeError,
|
|
15
|
+
EncodeTaggedObjectError: () => require_base.EncodeTaggedObjectError,
|
|
16
|
+
EntityStructure: () => require_base$1.EntityStructure,
|
|
17
|
+
NewTypeStructure: () => require_base$2.NewTypeStructure,
|
|
18
|
+
TaggedObjectStructure: () => require_base.TaggedObjectStructure,
|
|
19
|
+
createEntity: () => require_helper$1.createEntity,
|
|
16
20
|
createEntityNamespace: () => require_namespace.createEntityNamespace,
|
|
17
|
-
createFlag: () => require_base$
|
|
21
|
+
createFlag: () => require_base$3.createFlag,
|
|
18
22
|
createKind: () => require_kind.createKind,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
entityStructureKind: () => require_base.entityStructureKind,
|
|
23
|
-
flagKind: () => require_base$
|
|
23
|
+
createNewType: () => require_helper$2.createNewType,
|
|
24
|
+
createTaggedObject: () => require_helper.createTaggedObject,
|
|
25
|
+
entityKind: () => require_base$1.entityKind,
|
|
26
|
+
entityStructureKind: () => require_base$1.entityStructureKind,
|
|
27
|
+
flagKind: () => require_base$3.flagKind,
|
|
28
|
+
getTagValue: () => require_helper.getTagValue,
|
|
29
|
+
hasTagValue: () => require_helper.hasTagValue,
|
|
24
30
|
namespaceKind: () => require_namespace.namespaceKind,
|
|
25
|
-
newTypeStructureKind: () => require_base$
|
|
31
|
+
newTypeStructureKind: () => require_base$2.newTypeStructureKind,
|
|
32
|
+
objectTagKind: () => require_base.objectTagKind,
|
|
33
|
+
taggedObject: () => require_helper.taggedObject,
|
|
34
|
+
taggedObjectStructureKind: () => require_base.taggedObjectStructureKind
|
|
26
35
|
});
|
|
27
36
|
//#endregion
|
|
28
|
-
exports.
|
|
29
|
-
exports.
|
|
30
|
-
exports.
|
|
31
|
-
exports.
|
|
37
|
+
exports.EncodeEntityError = require_base$1.EncodeEntityError;
|
|
38
|
+
exports.EncodeNewTypeError = require_base$2.EncodeNewTypeError;
|
|
39
|
+
exports.EncodeTaggedObjectError = require_base.EncodeTaggedObjectError;
|
|
40
|
+
exports.EntityStructure = require_base$1.EntityStructure;
|
|
41
|
+
exports.NewTypeStructure = require_base$2.NewTypeStructure;
|
|
42
|
+
exports.TaggedObjectStructure = require_base.TaggedObjectStructure;
|
|
43
|
+
exports.createEntity = require_helper$1.createEntity;
|
|
32
44
|
exports.createEntityNamespace = require_namespace.createEntityNamespace;
|
|
33
|
-
exports.createFlag = require_base$
|
|
45
|
+
exports.createFlag = require_base$3.createFlag;
|
|
34
46
|
exports.createKind = require_kind.createKind;
|
|
35
|
-
exports.
|
|
36
|
-
exports.
|
|
37
|
-
exports.
|
|
38
|
-
exports.entityStructureKind = require_base.entityStructureKind;
|
|
39
|
-
exports.flagKind = require_base$
|
|
47
|
+
exports.createNewType = require_helper$2.createNewType;
|
|
48
|
+
exports.createTaggedObject = require_helper.createTaggedObject;
|
|
49
|
+
exports.entityKind = require_base$1.entityKind;
|
|
50
|
+
exports.entityStructureKind = require_base$1.entityStructureKind;
|
|
51
|
+
exports.flagKind = require_base$3.flagKind;
|
|
52
|
+
exports.getTagValue = require_helper.getTagValue;
|
|
53
|
+
exports.hasTagValue = require_helper.hasTagValue;
|
|
40
54
|
Object.defineProperty(exports, "modeling_exports", {
|
|
41
55
|
enumerable: true,
|
|
42
56
|
get: function() {
|
|
@@ -44,4 +58,7 @@ Object.defineProperty(exports, "modeling_exports", {
|
|
|
44
58
|
}
|
|
45
59
|
});
|
|
46
60
|
exports.namespaceKind = require_namespace.namespaceKind;
|
|
47
|
-
exports.newTypeStructureKind = require_base$
|
|
61
|
+
exports.newTypeStructureKind = require_base$2.newTypeStructureKind;
|
|
62
|
+
exports.objectTagKind = require_base.objectTagKind;
|
|
63
|
+
exports.taggedObject = require_helper.taggedObject;
|
|
64
|
+
exports.taggedObjectStructureKind = require_base.taggedObjectStructureKind;
|
package/dist/modeling/index.d.ts
CHANGED
package/dist/modeling/index.mjs
CHANGED
|
@@ -1,28 +1,37 @@
|
|
|
1
1
|
import { __exportAll } from "../_virtual/_rolldown/runtime.mjs";
|
|
2
2
|
import { createKind } from "./kind.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { EncodeTaggedObjectError, TaggedObjectStructure, objectTagKind, taggedObjectStructureKind } from "./taggedObject/base.mjs";
|
|
4
|
+
import { createTaggedObject, getTagValue, hasTagValue, taggedObject } from "./taggedObject/helper.mjs";
|
|
5
|
+
import { EncodeEntityError, EntityStructure, entityKind, entityStructureKind } from "./entity/base.mjs";
|
|
5
6
|
import { createEntity } from "./entity/helper.mjs";
|
|
6
|
-
import { NewTypeStructure, newTypeStructureKind } from "./newType/base.mjs";
|
|
7
|
-
import {
|
|
7
|
+
import { EncodeNewTypeError, NewTypeStructure, newTypeStructureKind } from "./newType/base.mjs";
|
|
8
|
+
import { createNewType } from "./newType/helper.mjs";
|
|
8
9
|
import { createFlag, flagKind } from "./flag/base.mjs";
|
|
9
10
|
import { createEntityNamespace, namespaceKind } from "./entity/namespace.mjs";
|
|
10
11
|
//#region scripts/modeling/index.ts
|
|
11
12
|
var modeling_exports = /* @__PURE__ */ __exportAll({
|
|
12
|
-
|
|
13
|
+
EncodeEntityError: () => EncodeEntityError,
|
|
14
|
+
EncodeNewTypeError: () => EncodeNewTypeError,
|
|
15
|
+
EncodeTaggedObjectError: () => EncodeTaggedObjectError,
|
|
13
16
|
EntityStructure: () => EntityStructure,
|
|
14
17
|
NewTypeStructure: () => NewTypeStructure,
|
|
18
|
+
TaggedObjectStructure: () => TaggedObjectStructure,
|
|
15
19
|
createEntity: () => createEntity,
|
|
16
20
|
createEntityNamespace: () => createEntityNamespace,
|
|
17
21
|
createFlag: () => createFlag,
|
|
18
22
|
createKind: () => createKind,
|
|
19
|
-
|
|
23
|
+
createNewType: () => createNewType,
|
|
24
|
+
createTaggedObject: () => createTaggedObject,
|
|
20
25
|
entityKind: () => entityKind,
|
|
21
|
-
entityNameStructureKind: () => entityNameStructureKind,
|
|
22
26
|
entityStructureKind: () => entityStructureKind,
|
|
23
27
|
flagKind: () => flagKind,
|
|
28
|
+
getTagValue: () => getTagValue,
|
|
29
|
+
hasTagValue: () => hasTagValue,
|
|
24
30
|
namespaceKind: () => namespaceKind,
|
|
25
|
-
newTypeStructureKind: () => newTypeStructureKind
|
|
31
|
+
newTypeStructureKind: () => newTypeStructureKind,
|
|
32
|
+
objectTagKind: () => objectTagKind,
|
|
33
|
+
taggedObject: () => taggedObject,
|
|
34
|
+
taggedObjectStructureKind: () => taggedObjectStructureKind
|
|
26
35
|
});
|
|
27
36
|
//#endregion
|
|
28
|
-
export {
|
|
37
|
+
export { EncodeEntityError, EncodeNewTypeError, EncodeTaggedObjectError, EntityStructure, NewTypeStructure, TaggedObjectStructure, createEntity, createEntityNamespace, createFlag, createKind, createNewType, createTaggedObject, entityKind, entityStructureKind, flagKind, getTagValue, hasTagValue, modeling_exports, namespaceKind, newTypeStructureKind, objectTagKind, taggedObject, taggedObjectStructureKind };
|
|
@@ -1,20 +1,35 @@
|
|
|
1
|
+
const require_parentClass = require("../../kind/parentClass.cjs");
|
|
1
2
|
const require_callThen = require("../../common/callThen.cjs");
|
|
2
3
|
const require_create = require("../../either/left/create.cjs");
|
|
4
|
+
const require_is = require("../../either/left/is.cjs");
|
|
3
5
|
const require_create$1 = require("../../either/right/create.cjs");
|
|
6
|
+
const require_unwrap = require("../../either/left/unwrap.cjs");
|
|
7
|
+
const require_unwrap$1 = require("../../either/right/unwrap.cjs");
|
|
4
8
|
const require_justExec = require("../../common/justExec.cjs");
|
|
5
9
|
const require_resultSymbol = require("../../dataStructure/common/resultSymbol.cjs");
|
|
6
|
-
const
|
|
7
|
-
const require_base = require("../../dataStructure/structure/base.cjs");
|
|
10
|
+
const require_base = require("../../dataStructure/common/error/base.cjs");
|
|
11
|
+
const require_base$1 = require("../../dataStructure/structure/base.cjs");
|
|
12
|
+
const require_kind = require("../kind.cjs");
|
|
8
13
|
//#region scripts/modeling/newType/base.ts
|
|
9
|
-
const newTypeStructureKind =
|
|
10
|
-
|
|
14
|
+
const newTypeStructureKind = require_kind.createKind("new-type-structure");
|
|
15
|
+
var EncodeNewTypeError = class extends require_parentClass.parentClass(require_kind.createKind("encode-new-type-error"), Error) {
|
|
16
|
+
error;
|
|
17
|
+
constructor(error) {
|
|
18
|
+
super(void 0, "An error occurred while encoding a NewType. This can only happen if you are bypassing the type system.");
|
|
19
|
+
this.error = error;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
function executeNewTypeConstraints(structure, data, errorHandler) {
|
|
23
|
+
return structure.definition.newTypeConstraints.reduce((accumulator, constraint) => require_callThen.callThen(accumulator, (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(constraint.executeCheck(data), (constraintResult) => constraintResult === require_resultSymbol.ErrorSymbol ? errorHandler?.().addIssue(structure, data, constraint) ?? require_resultSymbol.ErrorSymbol : require_resultSymbol.SuccessSymbol)), require_resultSymbol.SuccessSymbol);
|
|
24
|
+
}
|
|
25
|
+
const NewTypeStructure = require_base$1.createStructure(newTypeStructureKind, ({ init }) => (name, structure, newTypeConstraints) => init({
|
|
11
26
|
constraints: [],
|
|
12
27
|
newTypeConstraints,
|
|
13
28
|
inner: structure
|
|
14
29
|
}, {
|
|
15
|
-
executeCheck: (self, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeCheck(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : self
|
|
16
|
-
executeEncode: (self, codec, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeEncode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self
|
|
17
|
-
executeDecode: (self, codec, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeDecode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self
|
|
30
|
+
executeCheck: (self, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeCheck(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : executeNewTypeConstraints(self, data, errorHandler)),
|
|
31
|
+
executeEncode: (self, codec, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeEncode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(executeNewTypeConstraints(self, data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedInnerResult))),
|
|
32
|
+
executeDecode: (self, codec, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeDecode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(executeNewTypeConstraints(self, awaitedInnerResult, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(awaitedInnerResult, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedInnerResult))),
|
|
18
33
|
isAsynchronous: (self) => self.definition.inner.isAsynchronous() || self.definition.newTypeConstraints.some((value) => value.isAsynchronous())
|
|
19
34
|
}, {
|
|
20
35
|
name,
|
|
@@ -23,7 +38,7 @@ const NewTypeStructure = require_base.createStructure(newTypeStructureKind, ({ i
|
|
|
23
38
|
const [codecs] = args;
|
|
24
39
|
return (value) => self.decodeMap(codecs, value);
|
|
25
40
|
}
|
|
26
|
-
const errorHandler =
|
|
41
|
+
const errorHandler = require_base.createGetErrorHandler();
|
|
27
42
|
const [codecs, data] = args;
|
|
28
43
|
const result = self.executeDecode(codecs.context.value, data, errorHandler);
|
|
29
44
|
if (result instanceof Promise) return require_create.left("async-error", void 0);
|
|
@@ -31,7 +46,7 @@ const NewTypeStructure = require_base.createStructure(newTypeStructureKind, ({ i
|
|
|
31
46
|
return require_create$1.right("map-success", result);
|
|
32
47
|
},
|
|
33
48
|
map: (self, data) => {
|
|
34
|
-
const errorHandler =
|
|
49
|
+
const errorHandler = require_base.createGetErrorHandler();
|
|
35
50
|
const result = self.executeCheck(data, errorHandler);
|
|
36
51
|
if (result instanceof Promise) return require_create.left("async-error", void 0);
|
|
37
52
|
if (result === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
|
|
@@ -43,19 +58,25 @@ const NewTypeStructure = require_base.createStructure(newTypeStructureKind, ({ i
|
|
|
43
58
|
return (value) => self.asyncDecodeMap(codecs, value);
|
|
44
59
|
}
|
|
45
60
|
return require_justExec.justExec(async () => {
|
|
46
|
-
const errorHandler =
|
|
61
|
+
const errorHandler = require_base.createGetErrorHandler();
|
|
47
62
|
const [codecs, data] = args;
|
|
48
63
|
const result = await self.executeDecode(codecs.context.value, data, errorHandler);
|
|
49
64
|
if (result === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
|
|
50
65
|
return require_create$1.right("map-success", result);
|
|
51
66
|
});
|
|
52
67
|
},
|
|
53
|
-
asyncMap: (self, data) =>
|
|
54
|
-
const errorHandler =
|
|
68
|
+
asyncMap: async (self, data) => {
|
|
69
|
+
const errorHandler = require_base.createGetErrorHandler();
|
|
55
70
|
if (await self.executeCheck(data, errorHandler) === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
|
|
56
71
|
return require_create$1.right("map-success", data);
|
|
57
|
-
}
|
|
72
|
+
},
|
|
73
|
+
encodeNewType: async (self, codec, data) => {
|
|
74
|
+
const result = await self.asyncEncode(codec, data);
|
|
75
|
+
if (require_is.isLeft(result)) throw new EncodeNewTypeError(require_unwrap.unwrapLeft(result));
|
|
76
|
+
return require_unwrap$1.unwrapRight(result);
|
|
77
|
+
}
|
|
58
78
|
}));
|
|
59
79
|
//#endregion
|
|
80
|
+
exports.EncodeNewTypeError = EncodeNewTypeError;
|
|
60
81
|
exports.NewTypeStructure = NewTypeStructure;
|
|
61
82
|
exports.newTypeStructureKind = newTypeStructureKind;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as DKind from '../../kind';
|
|
2
2
|
import * as DCommon from '../../common';
|
|
3
3
|
import type * as DArray from '../../array';
|
|
4
4
|
import * as DEither from '../../either';
|
|
@@ -25,7 +25,7 @@ export interface NewTypeStructureDefinition<GenericNewTypeConstraint extends rea
|
|
|
25
25
|
readonly newTypeConstraints: GenericNewTypeConstraint;
|
|
26
26
|
}
|
|
27
27
|
export type ComputeNewType<GenericName extends string, GenericValue extends unknown, GenericNewTypeConstraint extends readonly DDataStructure.Constraint<GenericValue>[], GenericIntersectionConstraintValue = DDataStructure.ConstraintValue<DArray.Unwrap<GenericNewTypeConstraint>>, GenericClearValue = DCommon.NeverCoalescing<DCommon.RemoveConstraint<GenericIntersectionConstraintValue>, unknown>> = (GenericValue & GenericClearValue & NewType<GenericName, GenericIntersectionConstraintValue extends (GenericClearValue & infer InferredConstraint extends DCommon.BaseConstraint) ? InferredConstraint : never>);
|
|
28
|
-
export interface NewTypeStructure<GenericName extends string = string, GenericValue extends unknown = unknown, GenericNewTypeConstraint extends readonly DDataStructure.Constraint<GenericValue>[] = readonly DDataStructure.Constraint<GenericValue>[]> extends DCommon.
|
|
28
|
+
export interface NewTypeStructure<out GenericName extends string = string, out GenericValue extends unknown = unknown, out GenericNewTypeConstraint extends readonly DDataStructure.Constraint<GenericValue>[] = readonly DDataStructure.Constraint<GenericValue>[]> extends DCommon.Forward<DDataStructure.Structure<ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>, NewTypeStructureDefinition<GenericNewTypeConstraint>> & DKind.Kind<typeof newTypeStructureKind>> {
|
|
29
29
|
readonly name: GenericName;
|
|
30
30
|
decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<NewTypeMap<DDataStructure.StructureValue<this>>, GenericCodecs>) => (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
|
|
31
31
|
decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<NewTypeMap<DDataStructure.StructureValue<this>>, GenericCodecs>): (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
|
|
@@ -33,5 +33,12 @@ export interface NewTypeStructure<GenericName extends string = string, GenericVa
|
|
|
33
33
|
asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<NewTypeMap<DDataStructure.StructureValue<this>>, GenericCodecs>) => Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
|
|
34
34
|
asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<NewTypeMap<DDataStructure.StructureValue<this>>, GenericCodecs>): Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
|
|
35
35
|
asyncMap(data: NewTypeMap<DDataStructure.StructureValue<this>>): Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
|
|
36
|
+
encodeNewType<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.StructureValue<this>): Promise<DDataStructure.EncodedValue<NewTypeMap<DDataStructure.StructureValue<this>>, GenericCodecs>>;
|
|
37
|
+
}
|
|
38
|
+
declare const EncodeNewTypeError_base: DKind.KindClass<DKind.Handler<DKind.Definition<"@DuplojsLangModeling/encode-new-type-error", unknown>>, ErrorConstructor>;
|
|
39
|
+
export declare class EncodeNewTypeError extends EncodeNewTypeError_base {
|
|
40
|
+
error: DDataStructure.Error;
|
|
41
|
+
constructor(error: DDataStructure.Error);
|
|
36
42
|
}
|
|
37
43
|
export declare const NewTypeStructure: <GenericName extends string, GenericStructure extends DDataStructure.Structure, const GenericNewTypeConstraint extends readonly DDataStructure.Constraint<DDataStructure.StructureValue<GenericStructure>>[]>(name: GenericName, structure: GenericStructure, newTypeConstraints: GenericNewTypeConstraint) => NewTypeStructure<GenericName, DDataStructure.StructureValue<GenericStructure>, GenericNewTypeConstraint>;
|
|
44
|
+
export {};
|
|
@@ -1,21 +1,35 @@
|
|
|
1
|
+
import { parentClass } from "../../kind/parentClass.mjs";
|
|
1
2
|
import { callThen } from "../../common/callThen.mjs";
|
|
2
3
|
import { left } from "../../either/left/create.mjs";
|
|
4
|
+
import { isLeft } from "../../either/left/is.mjs";
|
|
3
5
|
import { right } from "../../either/right/create.mjs";
|
|
6
|
+
import { unwrapLeft } from "../../either/left/unwrap.mjs";
|
|
7
|
+
import { unwrapRight } from "../../either/right/unwrap.mjs";
|
|
4
8
|
import { justExec } from "../../common/justExec.mjs";
|
|
5
9
|
import { ErrorSymbol, SuccessSymbol } from "../../dataStructure/common/resultSymbol.mjs";
|
|
6
|
-
import { createGetErrorHandler } from "../../dataStructure/common/error.mjs";
|
|
10
|
+
import { createGetErrorHandler } from "../../dataStructure/common/error/base.mjs";
|
|
7
11
|
import { createStructure } from "../../dataStructure/structure/base.mjs";
|
|
8
12
|
import { createKind } from "../kind.mjs";
|
|
9
13
|
//#region scripts/modeling/newType/base.ts
|
|
10
14
|
const newTypeStructureKind = createKind("new-type-structure");
|
|
15
|
+
var EncodeNewTypeError = class extends parentClass(createKind("encode-new-type-error"), Error) {
|
|
16
|
+
error;
|
|
17
|
+
constructor(error) {
|
|
18
|
+
super(void 0, "An error occurred while encoding a NewType. This can only happen if you are bypassing the type system.");
|
|
19
|
+
this.error = error;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
function executeNewTypeConstraints(structure, data, errorHandler) {
|
|
23
|
+
return structure.definition.newTypeConstraints.reduce((accumulator, constraint) => callThen(accumulator, (result) => result === ErrorSymbol ? ErrorSymbol : callThen(constraint.executeCheck(data), (constraintResult) => constraintResult === ErrorSymbol ? errorHandler?.().addIssue(structure, data, constraint) ?? ErrorSymbol : SuccessSymbol)), SuccessSymbol);
|
|
24
|
+
}
|
|
11
25
|
const NewTypeStructure = createStructure(newTypeStructureKind, ({ init }) => (name, structure, newTypeConstraints) => init({
|
|
12
26
|
constraints: [],
|
|
13
27
|
newTypeConstraints,
|
|
14
28
|
inner: structure
|
|
15
29
|
}, {
|
|
16
|
-
executeCheck: (self, data, errorHandler) => callThen(self.definition.inner.executeCheck(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : self
|
|
17
|
-
executeEncode: (self, codec, data, errorHandler) => callThen(self.definition.inner.executeEncode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === ErrorSymbol ? ErrorSymbol : callThen(self
|
|
18
|
-
executeDecode: (self, codec, data, errorHandler) => callThen(self.definition.inner.executeDecode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === ErrorSymbol ? ErrorSymbol : callThen(self
|
|
30
|
+
executeCheck: (self, data, errorHandler) => callThen(self.definition.inner.executeCheck(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : executeNewTypeConstraints(self, data, errorHandler)),
|
|
31
|
+
executeEncode: (self, codec, data, errorHandler) => callThen(self.definition.inner.executeEncode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === ErrorSymbol ? ErrorSymbol : callThen(executeNewTypeConstraints(self, data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedInnerResult))),
|
|
32
|
+
executeDecode: (self, codec, data, errorHandler) => callThen(self.definition.inner.executeDecode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === ErrorSymbol ? ErrorSymbol : callThen(executeNewTypeConstraints(self, awaitedInnerResult, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedInnerResult, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedInnerResult))),
|
|
19
33
|
isAsynchronous: (self) => self.definition.inner.isAsynchronous() || self.definition.newTypeConstraints.some((value) => value.isAsynchronous())
|
|
20
34
|
}, {
|
|
21
35
|
name,
|
|
@@ -51,11 +65,16 @@ const NewTypeStructure = createStructure(newTypeStructureKind, ({ init }) => (na
|
|
|
51
65
|
return right("map-success", result);
|
|
52
66
|
});
|
|
53
67
|
},
|
|
54
|
-
asyncMap: (self, data) =>
|
|
68
|
+
asyncMap: async (self, data) => {
|
|
55
69
|
const errorHandler = createGetErrorHandler();
|
|
56
70
|
if (await self.executeCheck(data, errorHandler) === ErrorSymbol) return left("map-error", errorHandler().createError());
|
|
57
71
|
return right("map-success", data);
|
|
58
|
-
}
|
|
72
|
+
},
|
|
73
|
+
encodeNewType: async (self, codec, data) => {
|
|
74
|
+
const result = await self.asyncEncode(codec, data);
|
|
75
|
+
if (isLeft(result)) throw new EncodeNewTypeError(unwrapLeft(result));
|
|
76
|
+
return unwrapRight(result);
|
|
77
|
+
}
|
|
59
78
|
}));
|
|
60
79
|
//#endregion
|
|
61
|
-
export { NewTypeStructure, newTypeStructureKind };
|
|
80
|
+
export { EncodeNewTypeError, NewTypeStructure, newTypeStructureKind };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const require_base = require("./base.cjs");
|
|
2
2
|
//#region scripts/modeling/newType/helper.ts
|
|
3
|
-
function
|
|
3
|
+
function createNewType(name, structure, newTypeConstraints = []) {
|
|
4
4
|
return require_base.NewTypeStructure(name, structure, newTypeConstraints);
|
|
5
5
|
}
|
|
6
6
|
//#endregion
|
|
7
|
-
exports.
|
|
7
|
+
exports.createNewType = createNewType;
|
|
@@ -2,4 +2,4 @@ import { NewType, NewTypeStructure } from './base';
|
|
|
2
2
|
import type * as DCommon from '../../common';
|
|
3
3
|
import type * as DDataStructure from '../../dataStructure';
|
|
4
4
|
export type ForbiddenTopLevelNewType<GenericValue extends unknown> = GenericValue extends NewType ? DCommon.ComputedTypeError<"NewType on top level of NewType declaration is forbidden."> : never;
|
|
5
|
-
export declare function
|
|
5
|
+
export declare function createNewType<GenericName extends Capitalize<string>, GenericStructure extends DDataStructure.Structure, const GenericNewTypeConstraint extends readonly DDataStructure.Constraint<DDataStructure.StructureValue<GenericStructure>>[] = readonly []>(name: (GenericName & DCommon.NeverCoalescing<ForbiddenTopLevelNewType<DDataStructure.StructureValue<GenericStructure>>, unknown>), structure: GenericStructure, newTypeConstraints?: GenericNewTypeConstraint): NewTypeStructure<GenericName & DCommon.NeverCoalescing<ForbiddenTopLevelNewType<DDataStructure.StructureValue<GenericStructure>>, unknown>, DDataStructure.StructureValue<GenericStructure>, GenericNewTypeConstraint>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { NewTypeStructure } from "./base.mjs";
|
|
2
2
|
//#region scripts/modeling/newType/helper.ts
|
|
3
|
-
function
|
|
3
|
+
function createNewType(name, structure, newTypeConstraints = []) {
|
|
4
4
|
return NewTypeStructure(name, structure, newTypeConstraints);
|
|
5
5
|
}
|
|
6
6
|
//#endregion
|
|
7
|
-
export {
|
|
7
|
+
export { createNewType };
|