@duplojs/lang 0.0.1-beta.1 → 0.0.1-beta.3
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/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/common/constraint/index.d.ts +1 -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 +3 -0
- package/dist/common/index.mjs +3 -1
- package/dist/common/types/forward.d.ts +1 -0
- package/dist/common/types/index.d.ts +2 -0
- package/dist/common/types/splitPromise.d.ts +1 -0
- package/dist/dataStructure/common/codec.cjs +5 -4
- package/dist/dataStructure/common/codec.d.ts +3 -3
- package/dist/dataStructure/common/codec.mjs +5 -4
- package/dist/dataStructure/common/error.cjs +34 -16
- package/dist/dataStructure/common/error.d.ts +29 -11
- package/dist/dataStructure/common/error.mjs +32 -17
- package/dist/dataStructure/common/errorInterpreter.cjs +45 -0
- package/dist/dataStructure/common/errorInterpreter.d.ts +32 -0
- package/dist/dataStructure/common/errorInterpreter.mjs +45 -0
- package/dist/dataStructure/common/index.d.ts +1 -0
- package/dist/dataStructure/constraint/base.cjs +16 -3
- package/dist/dataStructure/constraint/base.d.ts +8 -4
- package/dist/dataStructure/constraint/base.mjs +16 -3
- package/dist/dataStructure/constraint/defaults/allowedCharacters.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/allowedCharacters.d.ts +1 -1
- 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 +2 -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/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/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/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 +4 -2
- package/dist/dataStructure/constraint/types/constraints.d.ts +18 -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 +4 -2
- 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/index.d.ts +2 -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/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/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/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/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 +50 -6
- package/dist/dataStructure/index.mjs +41 -16
- package/dist/dataStructure/structure/base.cjs +15 -5
- package/dist/dataStructure/structure/base.d.ts +7 -4
- package/dist/dataStructure/structure/base.mjs +15 -5
- 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 +20 -14
- package/dist/dataStructure/structure/defaults/union.d.ts +3 -3
- package/dist/dataStructure/structure/defaults/union.mjs +20 -14
- package/dist/dataStructure/structure/identifier.d.ts +4 -2
- 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 +4 -2
- package/dist/generator/asyncChunk.d.ts +3 -2
- package/dist/generator/chunk.d.ts +3 -2
- package/dist/generator/types/flat.d.ts +2 -2
- package/dist/index.cjs +2 -0
- package/dist/index.mjs +2 -1
- 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 +7 -0
- package/dist/invocation/index.mjs +5 -1
- package/dist/kind/createIdentifier.d.ts +2 -2
- 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 +2 -2
- package/dist/modeling/entity/base.d.ts +12 -9
- package/dist/modeling/entity/base.mjs +2 -2
- package/dist/modeling/entity/index.d.ts +0 -1
- package/dist/modeling/index.cjs +17 -6
- package/dist/modeling/index.d.ts +1 -0
- package/dist/modeling/index.mjs +11 -5
- package/dist/modeling/newType/base.cjs +6 -3
- package/dist/modeling/newType/base.d.ts +1 -1
- package/dist/modeling/newType/base.mjs +6 -3
- package/dist/modeling/taggedObject/base.cjs +23 -0
- package/dist/modeling/taggedObject/base.d.ts +31 -0
- package/dist/modeling/taggedObject/base.mjs +21 -0
- package/dist/modeling/taggedObject/helper.cjs +29 -0
- package/dist/modeling/taggedObject/helper.d.ts +14 -0
- package/dist/modeling/taggedObject/helper.mjs +26 -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/lessThan.d.ts +1 -1
- package/dist/number/lessThanOrEqual.d.ts +1 -1
- package/dist/number/sort.d.ts +1 -1
- 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/matchWithNumberOtherwise.cjs +2 -6
- package/dist/pattern/matchWithNumberOtherwise.mjs +2 -6
- package/dist/pattern/matchWithStringOtherwise.cjs +2 -6
- package/dist/pattern/matchWithStringOtherwise.d.ts +1 -1
- 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/first.d.ts +1 -1
- package/dist/string/index.cjs +3 -0
- package/dist/string/index.mjs +3 -1
- 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/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/package.json +1 -1
- 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
|
@@ -2,6 +2,7 @@ import { bindPrototypeMethods } from "../../common/bindPrototypeMethods.mjs";
|
|
|
2
2
|
import { callThen } from "../../common/callThen.mjs";
|
|
3
3
|
import { left } from "../../either/left/create.mjs";
|
|
4
4
|
import { right } from "../../either/right/create.mjs";
|
|
5
|
+
import { simpleClone } from "../../common/simpleClone.mjs";
|
|
5
6
|
import { createKind } from "../kind.mjs";
|
|
6
7
|
import { ErrorSymbol, SuccessSymbol } from "../common/resultSymbol.mjs";
|
|
7
8
|
import { createGetErrorHandler } from "../common/error.mjs";
|
|
@@ -15,7 +16,9 @@ var StructureClass = class StructureClass {
|
|
|
15
16
|
return self;
|
|
16
17
|
}
|
|
17
18
|
static addToPrototype(prop, value) {
|
|
18
|
-
StructureClass.prototype[prop] = value
|
|
19
|
+
StructureClass.prototype[prop] = typeof value === "function" ? function(...args) {
|
|
20
|
+
return value(this, ...args);
|
|
21
|
+
} : value;
|
|
19
22
|
}
|
|
20
23
|
};
|
|
21
24
|
const structureKind = createKind("structure");
|
|
@@ -34,7 +37,7 @@ function createStructure(kindHandler, createConstructor) {
|
|
|
34
37
|
executeDecode,
|
|
35
38
|
isAsynchronous
|
|
36
39
|
}, ...rest),
|
|
37
|
-
executeConstraints: (data, errorHandler) => definition.constraints.reduce((accumulator, constraint) => callThen(accumulator, (result) => result === ErrorSymbol ? ErrorSymbol : constraint.executeCheck(data, errorHandler)), SuccessSymbol),
|
|
40
|
+
executeConstraints: (data, errorHandler) => definition.constraints.reduce((accumulator, constraint) => callThen(accumulator, (result) => result === ErrorSymbol ? ErrorSymbol : callThen(constraint.executeCheck(data), (constraintResult) => constraintResult === ErrorSymbol ? errorHandler?.().addIssue(self, data, constraint) ?? ErrorSymbol : SuccessSymbol)), SuccessSymbol),
|
|
38
41
|
executeCheck: (data, errorHandler) => callThen(executeCheck(self, data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : self.executeConstraints(data, errorHandler)),
|
|
39
42
|
executeEncode: (codecContext, data, errorHandler) => executeEncode(self, codecContext, data, errorHandler),
|
|
40
43
|
executeDecode: (codecContext, data, errorHandler) => executeDecode(self, codecContext, data, errorHandler),
|
|
@@ -58,8 +61,8 @@ function createStructure(kindHandler, createConstructor) {
|
|
|
58
61
|
if (await self.executeCheck(data, errorHandler) === ErrorSymbol) return left("check-error", errorHandler().createError());
|
|
59
62
|
return right("check-success", data);
|
|
60
63
|
},
|
|
61
|
-
is: (data
|
|
62
|
-
const result = self.executeCheck(data
|
|
64
|
+
is: (data) => {
|
|
65
|
+
const result = self.executeCheck(data);
|
|
63
66
|
if (result instanceof Promise || result === ErrorSymbol) return false;
|
|
64
67
|
return true;
|
|
65
68
|
},
|
|
@@ -94,12 +97,19 @@ function createStructure(kindHandler, createConstructor) {
|
|
|
94
97
|
return right("decode-success", result);
|
|
95
98
|
},
|
|
96
99
|
contract: () => self,
|
|
97
|
-
clone: () => init(definition, {
|
|
100
|
+
clone: () => init(simpleClone(definition), {
|
|
98
101
|
executeCheck,
|
|
99
102
|
executeEncode,
|
|
100
103
|
executeDecode,
|
|
101
104
|
isAsynchronous
|
|
102
105
|
}, ...rest),
|
|
106
|
+
setMessage: (message) => {
|
|
107
|
+
self.definition.message = message;
|
|
108
|
+
return self;
|
|
109
|
+
},
|
|
110
|
+
addMessage: (message) => {
|
|
111
|
+
return self.clone().setMessage(message);
|
|
112
|
+
},
|
|
103
113
|
[kindHandler.runTimeKey]: null,
|
|
104
114
|
[structureKind.runTimeKey]: null
|
|
105
115
|
});
|
|
@@ -13,6 +13,6 @@ export declare const arrayStructureKind: DKind.Handler<DKind.Definition<"@Duploj
|
|
|
13
13
|
export interface ArrayStructureDefinition<GenericConstraints extends readonly Constraint[] = readonly Constraint[]> extends StructureDefinition<GenericConstraints> {
|
|
14
14
|
readonly element: Structure;
|
|
15
15
|
}
|
|
16
|
-
export interface ArrayStructure<GenericValue extends readonly unknown[] = readonly unknown[], GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.
|
|
16
|
+
export interface ArrayStructure<GenericValue extends readonly unknown[] = readonly unknown[], GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.Forward<Structure<GenericValue, ArrayStructureDefinition<GenericConstraints>> & DKind.Kind<typeof arrayStructureKind>> {
|
|
17
17
|
}
|
|
18
|
-
export declare const ArrayStructure: <GenericElement extends Structure, const GenericConstraints extends readonly Constraint<readonly StructureValue<GenericElement>[]>[]>(element: GenericElement, constraints: GenericConstraints) => ArrayStructure<readonly StructureValue<GenericElement>[], readonly [...GenericConstraints]
|
|
18
|
+
export declare const ArrayStructure: <GenericElement extends Structure, const GenericConstraints extends readonly Constraint<readonly StructureValue<GenericElement>[]>[]>(element: GenericElement, constraints: GenericConstraints) => NoInfer<ArrayStructure<readonly StructureValue<GenericElement>[], readonly [...GenericConstraints]>>;
|
|
@@ -1,15 +1,22 @@
|
|
|
1
|
+
const require_callThen = require("../../../common/callThen.cjs");
|
|
1
2
|
const require_memo = require("../../../common/memo.cjs");
|
|
2
3
|
const require_kind = require("../../kind.cjs");
|
|
4
|
+
const require_resultSymbol = require("../../common/resultSymbol.cjs");
|
|
3
5
|
const require_base = require("../base.cjs");
|
|
6
|
+
const require_identifier = require("../identifier.cjs");
|
|
4
7
|
//#region scripts/dataStructure/structure/defaults/lazy.ts
|
|
5
8
|
const lazyStructureKind = require_kind.createKind("lazy-structure");
|
|
6
9
|
const LazyStructure = require_base.createStructure(lazyStructureKind, ({ init }) => (getStructure, constraints) => init({
|
|
7
|
-
getter: require_memo.memo(
|
|
10
|
+
getter: require_memo.memo(() => {
|
|
11
|
+
const dataStructure = getStructure();
|
|
12
|
+
if (require_identifier.structureIdentifier(dataStructure, lazyStructureKind)) return dataStructure.definition.getter.value;
|
|
13
|
+
return dataStructure;
|
|
14
|
+
}),
|
|
8
15
|
constraints
|
|
9
16
|
}, {
|
|
10
17
|
executeCheck: (self, data, errorHandler) => self.definition.getter.value.executeCheck(data, errorHandler),
|
|
11
|
-
executeEncode: (self, codecContext, data, errorHandler) => self.definition.getter.value.executeEncode(codecContext, data, errorHandler),
|
|
12
|
-
executeDecode: (self, codecContext, data, errorHandler) => self.definition.getter.value.executeDecode(codecContext, data, errorHandler),
|
|
18
|
+
executeEncode: (self, codecContext, data, errorHandler) => require_callThen.callThen(self.definition.getter.value.executeEncode(codecContext, data, errorHandler), (encodedData) => encodedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : encodedData)),
|
|
19
|
+
executeDecode: (self, codecContext, data, errorHandler) => require_callThen.callThen(self.definition.getter.value.executeDecode(codecContext, data, errorHandler), (decodedData) => decodedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(decodedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : decodedData)),
|
|
13
20
|
isAsynchronous: (self) => self.definition.getter.value.isAsynchronous()
|
|
14
21
|
}));
|
|
15
22
|
//#endregion
|
|
@@ -7,6 +7,6 @@ export declare const lazyStructureKind: DKind.Handler<DKind.Definition<"@Duplojs
|
|
|
7
7
|
export interface LazyStructureDefinition<GenericConstraints extends readonly Constraint[] = readonly Constraint[]> extends StructureDefinition<GenericConstraints> {
|
|
8
8
|
readonly getter: DCommon.Memoized<Structure>;
|
|
9
9
|
}
|
|
10
|
-
export interface LazyStructure<GenericValue extends unknown = unknown, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.
|
|
10
|
+
export interface LazyStructure<GenericValue extends unknown = unknown, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.Forward<Structure<GenericValue, LazyStructureDefinition<GenericConstraints>> & DKind.Kind<typeof lazyStructureKind>> {
|
|
11
11
|
}
|
|
12
|
-
export declare const LazyStructure: <GenericStructure extends Structure, const GenericConstraints extends readonly Constraint<StructureValue<GenericStructure>>[]>(getStructure: () => GenericStructure, constraints: GenericConstraints) => LazyStructure<StructureValue<GenericStructure>, readonly [...GenericConstraints]
|
|
12
|
+
export declare const LazyStructure: <GenericStructure extends Structure, const GenericConstraints extends readonly Constraint<StructureValue<GenericStructure>>[]>(getStructure: () => GenericStructure, constraints: GenericConstraints) => NoInfer<LazyStructure<StructureValue<GenericStructure>, readonly [...GenericConstraints]>>;
|
|
@@ -1,15 +1,22 @@
|
|
|
1
|
+
import { callThen } from "../../../common/callThen.mjs";
|
|
1
2
|
import { memo } from "../../../common/memo.mjs";
|
|
2
3
|
import { createKind } from "../../kind.mjs";
|
|
4
|
+
import { ErrorSymbol } from "../../common/resultSymbol.mjs";
|
|
3
5
|
import { createStructure } from "../base.mjs";
|
|
6
|
+
import { structureIdentifier } from "../identifier.mjs";
|
|
4
7
|
//#region scripts/dataStructure/structure/defaults/lazy.ts
|
|
5
8
|
const lazyStructureKind = createKind("lazy-structure");
|
|
6
9
|
const LazyStructure = createStructure(lazyStructureKind, ({ init }) => (getStructure, constraints) => init({
|
|
7
|
-
getter: memo(
|
|
10
|
+
getter: memo(() => {
|
|
11
|
+
const dataStructure = getStructure();
|
|
12
|
+
if (structureIdentifier(dataStructure, lazyStructureKind)) return dataStructure.definition.getter.value;
|
|
13
|
+
return dataStructure;
|
|
14
|
+
}),
|
|
8
15
|
constraints
|
|
9
16
|
}, {
|
|
10
17
|
executeCheck: (self, data, errorHandler) => self.definition.getter.value.executeCheck(data, errorHandler),
|
|
11
|
-
executeEncode: (self, codecContext, data, errorHandler) => self.definition.getter.value.executeEncode(codecContext, data, errorHandler),
|
|
12
|
-
executeDecode: (self, codecContext, data, errorHandler) => self.definition.getter.value.executeDecode(codecContext, data, errorHandler),
|
|
18
|
+
executeEncode: (self, codecContext, data, errorHandler) => callThen(self.definition.getter.value.executeEncode(codecContext, data, errorHandler), (encodedData) => encodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : encodedData)),
|
|
19
|
+
executeDecode: (self, codecContext, data, errorHandler) => callThen(self.definition.getter.value.executeDecode(codecContext, data, errorHandler), (decodedData) => decodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(decodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : decodedData)),
|
|
13
20
|
isAsynchronous: (self) => self.definition.getter.value.isAsynchronous()
|
|
14
21
|
}));
|
|
15
22
|
//#endregion
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const require_kind = require("../../kind.cjs");
|
|
2
|
+
const require_resultSymbol = require("../../common/resultSymbol.cjs");
|
|
3
|
+
const require_base = require("../base.cjs");
|
|
4
|
+
//#region scripts/dataStructure/structure/defaults/nonEncodableString.ts
|
|
5
|
+
const nonEncodableStringStructureKind = require_kind.createKind("non-encodable-string-structure");
|
|
6
|
+
const NonEncodableStringStructure = require_base.createStructure(nonEncodableStringStructureKind, ({ init }) => (value) => init({
|
|
7
|
+
value,
|
|
8
|
+
constraints: []
|
|
9
|
+
}, {
|
|
10
|
+
executeCheck: (self, data, errorHandler) => data === self.definition.value ? require_resultSymbol.SuccessSymbol : errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol,
|
|
11
|
+
executeEncode: (self, codecContext, data, errorHandler) => data === self.definition.value ? data : errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol,
|
|
12
|
+
executeDecode: (self, codecContext, data, errorHandler) => data === self.definition.value ? data : errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol,
|
|
13
|
+
isAsynchronous: () => false
|
|
14
|
+
}));
|
|
15
|
+
//#endregion
|
|
16
|
+
exports.NonEncodableStringStructure = NonEncodableStringStructure;
|
|
17
|
+
exports.nonEncodableStringStructureKind = nonEncodableStringStructureKind;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Structure, StructureDefinition } from '../base';
|
|
2
|
+
import type * as DKind from '../../../kind';
|
|
3
|
+
import type * as DCommon from '../../../common';
|
|
4
|
+
export declare const nonEncodableStringStructureKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/non-encodable-string-structure", unknown>>;
|
|
5
|
+
export interface NonEncodableStringStructureDefinition extends StructureDefinition<readonly []> {
|
|
6
|
+
readonly value: string;
|
|
7
|
+
}
|
|
8
|
+
export interface NonEncodableStringStructure extends DCommon.Forward<Structure<String, NonEncodableStringStructureDefinition> & DKind.Kind<typeof nonEncodableStringStructureKind>> {
|
|
9
|
+
}
|
|
10
|
+
export declare const NonEncodableStringStructure: (value: string) => NoInfer<NonEncodableStringStructure>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { createKind } from "../../kind.mjs";
|
|
2
|
+
import { ErrorSymbol, SuccessSymbol } from "../../common/resultSymbol.mjs";
|
|
3
|
+
import { createStructure } from "../base.mjs";
|
|
4
|
+
//#region scripts/dataStructure/structure/defaults/nonEncodableString.ts
|
|
5
|
+
const nonEncodableStringStructureKind = createKind("non-encodable-string-structure");
|
|
6
|
+
const NonEncodableStringStructure = createStructure(nonEncodableStringStructureKind, ({ init }) => (value) => init({
|
|
7
|
+
value,
|
|
8
|
+
constraints: []
|
|
9
|
+
}, {
|
|
10
|
+
executeCheck: (self, data, errorHandler) => data === self.definition.value ? SuccessSymbol : errorHandler?.().addIssue(self, data) ?? ErrorSymbol,
|
|
11
|
+
executeEncode: (self, codecContext, data, errorHandler) => data === self.definition.value ? data : errorHandler?.().addIssue(self, data) ?? ErrorSymbol,
|
|
12
|
+
executeDecode: (self, codecContext, data, errorHandler) => data === self.definition.value ? data : errorHandler?.().addIssue(self, data) ?? ErrorSymbol,
|
|
13
|
+
isAsynchronous: () => false
|
|
14
|
+
}));
|
|
15
|
+
//#endregion
|
|
16
|
+
export { NonEncodableStringStructure, nonEncodableStringStructureKind };
|
|
@@ -25,6 +25,6 @@ export interface ObjectStructureDefinition<GenericConstraints extends readonly C
|
|
|
25
25
|
readonly shape: DCommon.Memoized<readonly EntryShapeObjectStructure[]>;
|
|
26
26
|
readonly keys: readonly string[];
|
|
27
27
|
}
|
|
28
|
-
export interface ObjectStructure<GenericValue extends Record<string, unknown> = Record<string, unknown>, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.
|
|
28
|
+
export interface ObjectStructure<GenericValue extends Record<string, unknown> = Record<string, unknown>, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.Forward<Structure<GenericValue, ObjectStructureDefinition<GenericConstraints>> & DKind.Kind<typeof objectStructureKind>> {
|
|
29
29
|
}
|
|
30
|
-
export declare const ObjectStructure: <GenericShape extends ShapeObjectStructure, const GenericConstraints extends readonly Constraint<ShapeObjectStructureValue<GenericShape>>[]>(shape: GenericShape, constraints: GenericConstraints) => ObjectStructure<ShapeObjectStructureValue<GenericShape>, readonly [...GenericConstraints]
|
|
30
|
+
export declare const ObjectStructure: <GenericShape extends ShapeObjectStructure, const GenericConstraints extends readonly Constraint<ShapeObjectStructureValue<GenericShape>>[]>(shape: GenericShape, constraints: GenericConstraints) => NoInfer<ObjectStructure<ShapeObjectStructureValue<GenericShape>, readonly [...GenericConstraints]>>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const require_callThen = require("../../../common/callThen.cjs");
|
|
2
2
|
const require_isType = require("../../../common/isType.cjs");
|
|
3
|
-
const
|
|
3
|
+
const require_memo = require("../../../common/memo.cjs");
|
|
4
4
|
const require_kind = require("../../kind.cjs");
|
|
5
5
|
const require_resultSymbol = require("../../common/resultSymbol.cjs");
|
|
6
6
|
const require_base = require("../base.cjs");
|
|
@@ -16,10 +16,10 @@ const RecordStructure = require_base.createStructure(recordStructureKind, ({ ini
|
|
|
16
16
|
key,
|
|
17
17
|
value,
|
|
18
18
|
constraints,
|
|
19
|
-
requiredKeys:
|
|
19
|
+
requiredKeys: require_memo.memo(() => {
|
|
20
20
|
if (require_identifier.structureIdentifier(key, require_union.unionStructureKind)) {
|
|
21
|
-
if (key.definition.values.some((value) => require_identifier.structureIdentifier(value, require_type.typeStructureKind) && require_identifier$1.typeIdentifier(value.definition.type, require_string.stringTypeKind))) return null;
|
|
22
|
-
return key.definition.values.map((value) => require_identifier.structureIdentifier(value, require_type.typeStructureKind) && require_identifier$1.typeIdentifier(value.definition.type, require_stringLiteral.stringLiteralTypeKind) ? value.definition.type.definition.value : null).filter(require_isType.isType("string"));
|
|
21
|
+
if (key.definition.values.value.some((value) => require_identifier.structureIdentifier(value, require_type.typeStructureKind) && require_identifier$1.typeIdentifier(value.definition.type, require_string.stringTypeKind))) return null;
|
|
22
|
+
return key.definition.values.value.map((value) => require_identifier.structureIdentifier(value, require_type.typeStructureKind) && require_identifier$1.typeIdentifier(value.definition.type, require_stringLiteral.stringLiteralTypeKind) ? value.definition.type.definition.value : null).filter(require_isType.isType("string"));
|
|
23
23
|
}
|
|
24
24
|
if (require_identifier.structureIdentifier(key, require_type.typeStructureKind) && require_identifier$1.typeIdentifier(key.definition.type, require_stringLiteral.stringLiteralTypeKind)) return [key.definition.type.definition.value];
|
|
25
25
|
return null;
|
|
@@ -28,7 +28,7 @@ const RecordStructure = require_base.createStructure(recordStructureKind, ({ ini
|
|
|
28
28
|
executeCheck: (self, data, errorHandler) => {
|
|
29
29
|
if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
30
30
|
const keyData = Object.keys(data);
|
|
31
|
-
const requiredKeys = self.definition.requiredKeys;
|
|
31
|
+
const requiredKeys = self.definition.requiredKeys.value;
|
|
32
32
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
33
33
|
const pathStage = errorHandler?.().createPathStage();
|
|
34
34
|
const result = (requiredKeys ?? keyData).reduce((accumulator, key) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (resultKey) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeCheck(data[key], errorHandler), (resultValue) => resultValue === require_resultSymbol.ErrorSymbol || resultKey === require_resultSymbol.ErrorSymbol || awaitedAccumulator === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_resultSymbol.SuccessSymbol))), require_resultSymbol.SuccessSymbol);
|
|
@@ -40,7 +40,7 @@ const RecordStructure = require_base.createStructure(recordStructureKind, ({ ini
|
|
|
40
40
|
executeEncode: (self, codecContext, data, errorHandler) => {
|
|
41
41
|
if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
42
42
|
const keyData = Object.keys(data);
|
|
43
|
-
const requiredKeys = self.definition.requiredKeys;
|
|
43
|
+
const requiredKeys = self.definition.requiredKeys.value;
|
|
44
44
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
45
45
|
const pathStage = errorHandler?.().createPathStage();
|
|
46
46
|
const encodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeEncode(codecContext, data[key], errorHandler), (encodedValue) => {
|
|
@@ -53,7 +53,7 @@ const RecordStructure = require_base.createStructure(recordStructureKind, ({ ini
|
|
|
53
53
|
executeDecode: (self, codecContext, data, errorHandler) => {
|
|
54
54
|
if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
55
55
|
const keyData = Object.keys(data);
|
|
56
|
-
const requiredKeys = self.definition.requiredKeys;
|
|
56
|
+
const requiredKeys = self.definition.requiredKeys.value;
|
|
57
57
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
58
58
|
const pathStage = errorHandler?.().createPathStage();
|
|
59
59
|
const decodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeDecode(codecContext, data[key], errorHandler), (decodedValue) => {
|
|
@@ -12,8 +12,8 @@ export declare const recordStructureKind: DKind.Handler<DKind.Definition<"@Duplo
|
|
|
12
12
|
export interface RecordStructureDefinition<GenericConstraints extends readonly Constraint[] = readonly Constraint[]> extends StructureDefinition<GenericConstraints> {
|
|
13
13
|
readonly key: UnionStructure<string> | TypeStructure<string>;
|
|
14
14
|
readonly value: Structure;
|
|
15
|
-
readonly requiredKeys: string[] | null
|
|
15
|
+
readonly requiredKeys: DCommon.Memoized<string[] | null>;
|
|
16
16
|
}
|
|
17
|
-
export interface RecordStructure<GenericValue extends Record<string, unknown> = Record<string, unknown>, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.
|
|
17
|
+
export interface RecordStructure<GenericValue extends Record<string, unknown> = Record<string, unknown>, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.Forward<Structure<GenericValue, RecordStructureDefinition<GenericConstraints>> & DKind.Kind<typeof recordStructureKind>> {
|
|
18
18
|
}
|
|
19
|
-
export declare const RecordStructure: <GenericKey extends (UnionStructure<string> | TypeStructure<string>), GenericValueStructure extends Structure, const GenericConstraints extends readonly Constraint<RecordStructureValue<GenericKey, GenericValueStructure>>[]>(key: GenericKey, value: GenericValueStructure, constraints: GenericConstraints) => RecordStructure<RecordStructureValue<GenericKey, GenericValueStructure>, readonly [...GenericConstraints]
|
|
19
|
+
export declare const RecordStructure: <GenericKey extends (UnionStructure<string> | TypeStructure<string>), GenericValueStructure extends Structure, const GenericConstraints extends readonly Constraint<RecordStructureValue<GenericKey, GenericValueStructure>>[]>(key: GenericKey, value: GenericValueStructure, constraints: GenericConstraints) => NoInfer<RecordStructure<RecordStructureValue<GenericKey, GenericValueStructure>, readonly [...GenericConstraints]>>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { callThen } from "../../../common/callThen.mjs";
|
|
2
2
|
import { isType } from "../../../common/isType.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { memo } from "../../../common/memo.mjs";
|
|
4
4
|
import { createKind } from "../../kind.mjs";
|
|
5
5
|
import { ErrorSymbol, SuccessSymbol } from "../../common/resultSymbol.mjs";
|
|
6
6
|
import { createStructure } from "../base.mjs";
|
|
@@ -16,10 +16,10 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
|
|
|
16
16
|
key,
|
|
17
17
|
value,
|
|
18
18
|
constraints,
|
|
19
|
-
requiredKeys:
|
|
19
|
+
requiredKeys: memo(() => {
|
|
20
20
|
if (structureIdentifier(key, unionStructureKind)) {
|
|
21
|
-
if (key.definition.values.some((value) => structureIdentifier(value, typeStructureKind) && typeIdentifier(value.definition.type, stringTypeKind))) return null;
|
|
22
|
-
return key.definition.values.map((value) => structureIdentifier(value, typeStructureKind) && typeIdentifier(value.definition.type, stringLiteralTypeKind) ? value.definition.type.definition.value : null).filter(isType("string"));
|
|
21
|
+
if (key.definition.values.value.some((value) => structureIdentifier(value, typeStructureKind) && typeIdentifier(value.definition.type, stringTypeKind))) return null;
|
|
22
|
+
return key.definition.values.value.map((value) => structureIdentifier(value, typeStructureKind) && typeIdentifier(value.definition.type, stringLiteralTypeKind) ? value.definition.type.definition.value : null).filter(isType("string"));
|
|
23
23
|
}
|
|
24
24
|
if (structureIdentifier(key, typeStructureKind) && typeIdentifier(key.definition.type, stringLiteralTypeKind)) return [key.definition.type.definition.value];
|
|
25
25
|
return null;
|
|
@@ -28,7 +28,7 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
|
|
|
28
28
|
executeCheck: (self, data, errorHandler) => {
|
|
29
29
|
if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
30
30
|
const keyData = Object.keys(data);
|
|
31
|
-
const requiredKeys = self.definition.requiredKeys;
|
|
31
|
+
const requiredKeys = self.definition.requiredKeys.value;
|
|
32
32
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
33
33
|
const pathStage = errorHandler?.().createPathStage();
|
|
34
34
|
const result = (requiredKeys ?? keyData).reduce((accumulator, key) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? callThen(self.definition.key.executeCheck(key, errorHandler), (resultKey) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? callThen(self.definition.value.executeCheck(data[key], errorHandler), (resultValue) => resultValue === ErrorSymbol || resultKey === ErrorSymbol || awaitedAccumulator === ErrorSymbol ? ErrorSymbol : SuccessSymbol))), SuccessSymbol);
|
|
@@ -40,7 +40,7 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
|
|
|
40
40
|
executeEncode: (self, codecContext, data, errorHandler) => {
|
|
41
41
|
if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
42
42
|
const keyData = Object.keys(data);
|
|
43
|
-
const requiredKeys = self.definition.requiredKeys;
|
|
43
|
+
const requiredKeys = self.definition.requiredKeys.value;
|
|
44
44
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
45
45
|
const pathStage = errorHandler?.().createPathStage();
|
|
46
46
|
const encodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? callThen(self.definition.value.executeEncode(codecContext, data[key], errorHandler), (encodedValue) => {
|
|
@@ -53,7 +53,7 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
|
|
|
53
53
|
executeDecode: (self, codecContext, data, errorHandler) => {
|
|
54
54
|
if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
55
55
|
const keyData = Object.keys(data);
|
|
56
|
-
const requiredKeys = self.definition.requiredKeys;
|
|
56
|
+
const requiredKeys = self.definition.requiredKeys.value;
|
|
57
57
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
58
58
|
const pathStage = errorHandler?.().createPathStage();
|
|
59
59
|
const decodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? callThen(self.definition.value.executeDecode(codecContext, data[key], errorHandler), (decodedValue) => {
|
|
@@ -8,7 +8,7 @@ const TypeStructure = require_base.createStructure(typeStructureKind, ({ init })
|
|
|
8
8
|
type,
|
|
9
9
|
constraints
|
|
10
10
|
}, {
|
|
11
|
-
executeCheck: (self, data, errorHandler) => self.definition.type.executeCheck(data, errorHandler),
|
|
11
|
+
executeCheck: (self, data, errorHandler) => require_callThen.callThen(self.definition.type.executeCheck(data), (result) => result === require_resultSymbol.ErrorSymbol ? errorHandler?.().addIssue(self, data, self.definition.type) ?? require_resultSymbol.ErrorSymbol : require_resultSymbol.SuccessSymbol),
|
|
12
12
|
executeEncode: (self, codecContext, data, errorHandler) => require_callThen.callThen(self.executeCheck(data, errorHandler), (result) => {
|
|
13
13
|
if (result === require_resultSymbol.ErrorSymbol) return require_resultSymbol.ErrorSymbol;
|
|
14
14
|
const codec = codecContext.get(self.definition.type.fundamentalType);
|
|
@@ -7,6 +7,6 @@ export declare const typeStructureKind: DKind.Handler<DKind.Definition<"@Duplojs
|
|
|
7
7
|
export interface TypeStructureDefinition<GenericConstraints extends readonly Constraint[] = readonly Constraint[]> extends StructureDefinition<GenericConstraints> {
|
|
8
8
|
readonly type: Type;
|
|
9
9
|
}
|
|
10
|
-
export interface TypeStructure<GenericType extends unknown = unknown, GenericConstraints extends readonly Constraint<GenericType>[] = readonly Constraint<GenericType>[]> extends DCommon.
|
|
10
|
+
export interface TypeStructure<GenericType extends unknown = unknown, GenericConstraints extends readonly Constraint<GenericType>[] = readonly Constraint<GenericType>[]> extends DCommon.Forward<Structure<GenericType, TypeStructureDefinition<GenericConstraints>> & DKind.Kind<typeof typeStructureKind>> {
|
|
11
11
|
}
|
|
12
|
-
export declare const TypeStructure: <GenericType extends Type, const GenericConstraints extends readonly Constraint<TypeValue<GenericType>>[]>(type: GenericType, constraints: GenericConstraints) => TypeStructure<TypeValue<GenericType>, readonly [...GenericConstraints]
|
|
12
|
+
export declare const TypeStructure: <GenericType extends Type, const GenericConstraints extends readonly Constraint<TypeValue<GenericType>>[]>(type: GenericType, constraints: GenericConstraints) => NoInfer<TypeStructure<TypeValue<GenericType>, readonly [...GenericConstraints]>>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { callThen } from "../../../common/callThen.mjs";
|
|
2
2
|
import { createKind } from "../../kind.mjs";
|
|
3
|
-
import { ErrorSymbol } from "../../common/resultSymbol.mjs";
|
|
3
|
+
import { ErrorSymbol, SuccessSymbol } from "../../common/resultSymbol.mjs";
|
|
4
4
|
import { createStructure } from "../base.mjs";
|
|
5
5
|
//#region scripts/dataStructure/structure/defaults/type.ts
|
|
6
6
|
const typeStructureKind = createKind("type-structure");
|
|
@@ -8,7 +8,7 @@ const TypeStructure = createStructure(typeStructureKind, ({ init }) => (type, co
|
|
|
8
8
|
type,
|
|
9
9
|
constraints
|
|
10
10
|
}, {
|
|
11
|
-
executeCheck: (self, data, errorHandler) => self.definition.type.executeCheck(data, errorHandler),
|
|
11
|
+
executeCheck: (self, data, errorHandler) => callThen(self.definition.type.executeCheck(data), (result) => result === ErrorSymbol ? errorHandler?.().addIssue(self, data, self.definition.type) ?? ErrorSymbol : SuccessSymbol),
|
|
12
12
|
executeEncode: (self, codecContext, data, errorHandler) => callThen(self.executeCheck(data, errorHandler), (result) => {
|
|
13
13
|
if (result === ErrorSymbol) return ErrorSymbol;
|
|
14
14
|
const codec = codecContext.get(self.definition.type.fundamentalType);
|
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
const require_callThen = require("../../../common/callThen.cjs");
|
|
2
|
+
const require_memo = require("../../../common/memo.cjs");
|
|
2
3
|
const require_kind = require("../../kind.cjs");
|
|
3
4
|
const require_resultSymbol = require("../../common/resultSymbol.cjs");
|
|
4
5
|
const require_error = require("../../common/error.cjs");
|
|
5
6
|
const require_base = require("../base.cjs");
|
|
6
7
|
const require_identifier = require("../identifier.cjs");
|
|
8
|
+
const require_lazy = require("./lazy.cjs");
|
|
7
9
|
//#region scripts/dataStructure/structure/defaults/union.ts
|
|
8
10
|
const unionStructureKind = require_kind.createKind("union-structure");
|
|
9
11
|
const UnionStructure = require_base.createStructure(unionStructureKind, ({ init }) => (values, constraints) => init({
|
|
10
|
-
values:
|
|
12
|
+
values: require_memo.memo(() => values.flatMap((value) => (function flatUnion(structure) {
|
|
13
|
+
if (require_identifier.structureIdentifier(structure, unionStructureKind)) return structure.definition.values.value.flatMap(flatUnion);
|
|
14
|
+
if (require_identifier.structureIdentifier(structure, require_lazy.lazyStructureKind)) return flatUnion(structure.definition.getter.value);
|
|
15
|
+
return structure;
|
|
16
|
+
})(value))),
|
|
11
17
|
constraints
|
|
12
18
|
}, {
|
|
13
19
|
executeCheck: (self, data, errorHandler) => {
|
|
14
20
|
const errorHandlers = errorHandler ? [] : void 0;
|
|
15
|
-
const result = self.definition.values.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
21
|
+
const result = self.definition.values.value.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
16
22
|
if (awaitedAccumulator === require_resultSymbol.SuccessSymbol) return awaitedAccumulator;
|
|
17
|
-
const subErrorHandler = errorHandler === void 0 ? void 0 : require_error.createGetErrorHandler();
|
|
18
|
-
if (
|
|
19
|
-
subErrorHandler().usePath(errorHandler().currentPath);
|
|
23
|
+
const subErrorHandler = errorHandler === void 0 ? void 0 : require_error.createGetErrorHandler(errorHandler().currentPath);
|
|
24
|
+
if (errorHandlers && subErrorHandler) {
|
|
20
25
|
subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
|
|
21
26
|
errorHandlers.push(subErrorHandler);
|
|
22
27
|
}
|
|
@@ -25,6 +30,7 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
|
|
|
25
30
|
return require_callThen.callThen(result, (awaitedResult) => {
|
|
26
31
|
if (awaitedResult === require_resultSymbol.ErrorSymbol) {
|
|
27
32
|
if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
|
|
33
|
+
errorHandler?.().addIssue(self, data);
|
|
28
34
|
return require_resultSymbol.ErrorSymbol;
|
|
29
35
|
}
|
|
30
36
|
return require_resultSymbol.SuccessSymbol;
|
|
@@ -32,11 +38,10 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
|
|
|
32
38
|
},
|
|
33
39
|
executeEncode: (self, codec, data, errorHandler) => {
|
|
34
40
|
const errorHandlers = errorHandler ? [] : void 0;
|
|
35
|
-
const encodedData = self.definition.values.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
41
|
+
const encodedData = self.definition.values.value.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
36
42
|
if (awaitedAccumulator !== require_resultSymbol.ErrorSymbol) return awaitedAccumulator;
|
|
37
|
-
const subErrorHandler = errorHandler === void 0 ? void 0 : require_error.createGetErrorHandler();
|
|
38
|
-
if (
|
|
39
|
-
subErrorHandler().usePath(errorHandler().currentPath);
|
|
43
|
+
const subErrorHandler = errorHandler === void 0 ? void 0 : require_error.createGetErrorHandler(errorHandler().currentPath);
|
|
44
|
+
if (errorHandlers && subErrorHandler) {
|
|
40
45
|
subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
|
|
41
46
|
errorHandlers.push(subErrorHandler);
|
|
42
47
|
}
|
|
@@ -45,6 +50,7 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
|
|
|
45
50
|
return require_callThen.callThen(encodedData, (awaitedEncodedData) => {
|
|
46
51
|
if (awaitedEncodedData === require_resultSymbol.ErrorSymbol) {
|
|
47
52
|
if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
|
|
53
|
+
errorHandler?.().addIssue(self, data);
|
|
48
54
|
return require_resultSymbol.ErrorSymbol;
|
|
49
55
|
}
|
|
50
56
|
return require_callThen.callThen(self.executeConstraints(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedEncodedData);
|
|
@@ -52,11 +58,10 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
|
|
|
52
58
|
},
|
|
53
59
|
executeDecode: (self, codec, data, errorHandler) => {
|
|
54
60
|
const errorHandlers = errorHandler ? [] : void 0;
|
|
55
|
-
const decodedData = self.definition.values.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
61
|
+
const decodedData = self.definition.values.value.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
56
62
|
if (awaitedAccumulator !== require_resultSymbol.ErrorSymbol) return awaitedAccumulator;
|
|
57
|
-
const subErrorHandler = errorHandler === void 0 ? void 0 : require_error.createGetErrorHandler();
|
|
58
|
-
if (
|
|
59
|
-
subErrorHandler().usePath(errorHandler().currentPath);
|
|
63
|
+
const subErrorHandler = errorHandler === void 0 ? void 0 : require_error.createGetErrorHandler(errorHandler().currentPath);
|
|
64
|
+
if (errorHandlers && subErrorHandler) {
|
|
60
65
|
subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
|
|
61
66
|
errorHandlers.push(subErrorHandler);
|
|
62
67
|
}
|
|
@@ -65,12 +70,13 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
|
|
|
65
70
|
return require_callThen.callThen(decodedData, (awaitedDecodedData) => {
|
|
66
71
|
if (awaitedDecodedData === require_resultSymbol.ErrorSymbol) {
|
|
67
72
|
if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
|
|
73
|
+
errorHandler?.().addIssue(self, data);
|
|
68
74
|
return require_resultSymbol.ErrorSymbol;
|
|
69
75
|
}
|
|
70
76
|
return require_callThen.callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedDecodedData);
|
|
71
77
|
});
|
|
72
78
|
},
|
|
73
|
-
isAsynchronous: (self) => self.definition.values.some((value) => value.isAsynchronous())
|
|
79
|
+
isAsynchronous: (self) => self.definition.values.value.some((value) => value.isAsynchronous())
|
|
74
80
|
}));
|
|
75
81
|
//#endregion
|
|
76
82
|
exports.UnionStructure = UnionStructure;
|
|
@@ -5,8 +5,8 @@ import type * as DKind from '../../../kind';
|
|
|
5
5
|
import * as DCommon from '../../../common';
|
|
6
6
|
export declare const unionStructureKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/union-structure", unknown>>;
|
|
7
7
|
export interface UnionStructureDefinition<GenericConstraints extends readonly Constraint[] = readonly Constraint[]> extends StructureDefinition<GenericConstraints> {
|
|
8
|
-
readonly values: DCommon.AnyTuple<Structure
|
|
8
|
+
readonly values: DCommon.Memoized<DCommon.AnyTuple<Structure>>;
|
|
9
9
|
}
|
|
10
|
-
export interface UnionStructure<GenericValue extends unknown = unknown, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.
|
|
10
|
+
export interface UnionStructure<GenericValue extends unknown = unknown, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.Forward<Structure<GenericValue, UnionStructureDefinition<GenericConstraints>> & DKind.Kind<typeof unionStructureKind>> {
|
|
11
11
|
}
|
|
12
|
-
export declare const UnionStructure: <GenericValues extends DCommon.AnyTuple<Structure>, const GenericConstraints extends readonly Constraint<StructureValue<GenericValues[number]>>[]>(values: GenericValues, constraints: GenericConstraints) => UnionStructure<StructureValue<GenericValues[number]>, readonly [...GenericConstraints]
|
|
12
|
+
export declare const UnionStructure: <GenericValues extends DCommon.AnyTuple<Structure>, const GenericConstraints extends readonly Constraint<StructureValue<GenericValues[number]>>[]>(values: GenericValues, constraints: GenericConstraints) => NoInfer<UnionStructure<StructureValue<GenericValues[number]>, readonly [...GenericConstraints]>>;
|
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
import { callThen } from "../../../common/callThen.mjs";
|
|
2
|
+
import { memo } from "../../../common/memo.mjs";
|
|
2
3
|
import { createKind } from "../../kind.mjs";
|
|
3
4
|
import { ErrorSymbol, SuccessSymbol } from "../../common/resultSymbol.mjs";
|
|
4
5
|
import { createGetErrorHandler } from "../../common/error.mjs";
|
|
5
6
|
import { createStructure } from "../base.mjs";
|
|
6
7
|
import { structureIdentifier } from "../identifier.mjs";
|
|
8
|
+
import { lazyStructureKind } from "./lazy.mjs";
|
|
7
9
|
//#region scripts/dataStructure/structure/defaults/union.ts
|
|
8
10
|
const unionStructureKind = createKind("union-structure");
|
|
9
11
|
const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values, constraints) => init({
|
|
10
|
-
values: values.flatMap((value) =>
|
|
12
|
+
values: memo(() => values.flatMap((value) => (function flatUnion(structure) {
|
|
13
|
+
if (structureIdentifier(structure, unionStructureKind)) return structure.definition.values.value.flatMap(flatUnion);
|
|
14
|
+
if (structureIdentifier(structure, lazyStructureKind)) return flatUnion(structure.definition.getter.value);
|
|
15
|
+
return structure;
|
|
16
|
+
})(value))),
|
|
11
17
|
constraints
|
|
12
18
|
}, {
|
|
13
19
|
executeCheck: (self, data, errorHandler) => {
|
|
14
20
|
const errorHandlers = errorHandler ? [] : void 0;
|
|
15
|
-
const result = self.definition.values.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
|
|
21
|
+
const result = self.definition.values.value.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
|
|
16
22
|
if (awaitedAccumulator === SuccessSymbol) return awaitedAccumulator;
|
|
17
|
-
const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler();
|
|
18
|
-
if (
|
|
19
|
-
subErrorHandler().usePath(errorHandler().currentPath);
|
|
23
|
+
const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler(errorHandler().currentPath);
|
|
24
|
+
if (errorHandlers && subErrorHandler) {
|
|
20
25
|
subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
|
|
21
26
|
errorHandlers.push(subErrorHandler);
|
|
22
27
|
}
|
|
@@ -25,6 +30,7 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
|
|
|
25
30
|
return callThen(result, (awaitedResult) => {
|
|
26
31
|
if (awaitedResult === ErrorSymbol) {
|
|
27
32
|
if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
|
|
33
|
+
errorHandler?.().addIssue(self, data);
|
|
28
34
|
return ErrorSymbol;
|
|
29
35
|
}
|
|
30
36
|
return SuccessSymbol;
|
|
@@ -32,11 +38,10 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
|
|
|
32
38
|
},
|
|
33
39
|
executeEncode: (self, codec, data, errorHandler) => {
|
|
34
40
|
const errorHandlers = errorHandler ? [] : void 0;
|
|
35
|
-
const encodedData = self.definition.values.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
|
|
41
|
+
const encodedData = self.definition.values.value.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
|
|
36
42
|
if (awaitedAccumulator !== ErrorSymbol) return awaitedAccumulator;
|
|
37
|
-
const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler();
|
|
38
|
-
if (
|
|
39
|
-
subErrorHandler().usePath(errorHandler().currentPath);
|
|
43
|
+
const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler(errorHandler().currentPath);
|
|
44
|
+
if (errorHandlers && subErrorHandler) {
|
|
40
45
|
subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
|
|
41
46
|
errorHandlers.push(subErrorHandler);
|
|
42
47
|
}
|
|
@@ -45,6 +50,7 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
|
|
|
45
50
|
return callThen(encodedData, (awaitedEncodedData) => {
|
|
46
51
|
if (awaitedEncodedData === ErrorSymbol) {
|
|
47
52
|
if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
|
|
53
|
+
errorHandler?.().addIssue(self, data);
|
|
48
54
|
return ErrorSymbol;
|
|
49
55
|
}
|
|
50
56
|
return callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData);
|
|
@@ -52,11 +58,10 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
|
|
|
52
58
|
},
|
|
53
59
|
executeDecode: (self, codec, data, errorHandler) => {
|
|
54
60
|
const errorHandlers = errorHandler ? [] : void 0;
|
|
55
|
-
const decodedData = self.definition.values.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
|
|
61
|
+
const decodedData = self.definition.values.value.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
|
|
56
62
|
if (awaitedAccumulator !== ErrorSymbol) return awaitedAccumulator;
|
|
57
|
-
const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler();
|
|
58
|
-
if (
|
|
59
|
-
subErrorHandler().usePath(errorHandler().currentPath);
|
|
63
|
+
const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler(errorHandler().currentPath);
|
|
64
|
+
if (errorHandlers && subErrorHandler) {
|
|
60
65
|
subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
|
|
61
66
|
errorHandlers.push(subErrorHandler);
|
|
62
67
|
}
|
|
@@ -65,12 +70,13 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
|
|
|
65
70
|
return callThen(decodedData, (awaitedDecodedData) => {
|
|
66
71
|
if (awaitedDecodedData === ErrorSymbol) {
|
|
67
72
|
if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
|
|
73
|
+
errorHandler?.().addIssue(self, data);
|
|
68
74
|
return ErrorSymbol;
|
|
69
75
|
}
|
|
70
76
|
return callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData);
|
|
71
77
|
});
|
|
72
78
|
},
|
|
73
|
-
isAsynchronous: (self) => self.definition.values.some((value) => value.isAsynchronous())
|
|
79
|
+
isAsynchronous: (self) => self.definition.values.value.some((value) => value.isAsynchronous())
|
|
74
80
|
}));
|
|
75
81
|
//#endregion
|
|
76
82
|
export { UnionStructure, unionStructureKind };
|