@duplojs/lang 0.0.0 → 0.0.1-beta.2
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/formData.cjs +4 -2
- package/dist/common/formData.mjs +4 -2
- package/dist/common/queue.cjs +9 -7
- package/dist/common/queue.mjs +9 -7
- package/dist/common/types/index.d.ts +1 -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 +2 -2
- 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.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/arrayLengthEqual.cjs +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.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.cjs +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.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/even.cjs +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.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/index.d.ts +1 -0
- package/dist/dataStructure/constraint/defaults/integer.cjs +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.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/lessThanOrEqual.cjs +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.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/maxElements.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/maxElements.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/minCharacters.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/minCharacters.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/minElements.cjs +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.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/negative.cjs +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.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/notZero.cjs +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.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/positive.cjs +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.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/safe.cjs +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.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/strictPositive.cjs +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.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 +1 -1
- package/dist/dataStructure/constraint/defaults/url.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/uuid.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/uuid.mjs +1 -1
- 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 +2 -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 +1 -0
- package/dist/dataStructure/helpers/lazy.d.ts +1 -1
- package/dist/dataStructure/helpers/null.d.ts +1 -1
- package/dist/dataStructure/helpers/number.d.ts +1 -1
- package/dist/dataStructure/helpers/object.d.ts +1 -1
- package/dist/dataStructure/helpers/record.d.ts +1 -1
- 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/index.cjs +38 -0
- package/dist/dataStructure/index.mjs +31 -10
- 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 +1 -1
- package/dist/dataStructure/structure/defaults/array.mjs +8 -5
- package/dist/dataStructure/structure/defaults/index.d.ts +1 -0
- package/dist/dataStructure/structure/defaults/lazy.cjs +4 -2
- package/dist/dataStructure/structure/defaults/lazy.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/lazy.mjs +4 -2
- 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 +1 -1
- package/dist/dataStructure/structure/defaults/object.mjs +8 -5
- package/dist/dataStructure/structure/defaults/record.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/record.mjs +8 -5
- package/dist/dataStructure/structure/defaults/type.cjs +1 -1
- package/dist/dataStructure/structure/defaults/type.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/type.mjs +2 -2
- package/dist/dataStructure/structure/defaults/union.cjs +9 -9
- package/dist/dataStructure/structure/defaults/union.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/union.mjs +18 -15
- package/dist/dataStructure/structure/identifier.d.ts +2 -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/bigintLiteral.cjs +1 -1
- package/dist/dataStructure/type/defaults/bigintLiteral.mjs +1 -1
- package/dist/dataStructure/type/defaults/booleanLiteral.cjs +1 -1
- package/dist/dataStructure/type/defaults/booleanLiteral.mjs +1 -1
- package/dist/dataStructure/type/defaults/numberLiteral.cjs +1 -1
- package/dist/dataStructure/type/defaults/numberLiteral.mjs +1 -1
- package/dist/dataStructure/type/defaults/stringLiteral.cjs +1 -1
- package/dist/dataStructure/type/defaults/stringLiteral.mjs +1 -1
- package/dist/dataStructure/type/identifier.d.ts +2 -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/invocation/flow/base.d.ts +7 -2
- package/dist/invocation/flow/controller/base.d.ts +1 -0
- package/dist/invocation/flow/controller/defaults/aborter.cjs +35 -0
- package/dist/invocation/flow/controller/defaults/aborter.d.ts +14 -0
- package/dist/invocation/flow/controller/defaults/aborter.mjs +33 -0
- 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/index.cjs +7 -0
- package/dist/invocation/index.mjs +5 -1
- 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 +14 -10
- 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.mjs +6 -3
- package/dist/modeling/taggedObject/base.cjs +23 -0
- package/dist/modeling/taggedObject/base.d.ts +32 -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/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,7 +2,8 @@ import { __exportAll } from "../_virtual/_rolldown/runtime.mjs";
|
|
|
2
2
|
import { createKind } from "./kind.mjs";
|
|
3
3
|
import { ErrorSymbol, SuccessSymbol } from "./common/resultSymbol.mjs";
|
|
4
4
|
import { codecKind, codecsKind, createCodec, createCodecs } from "./common/codec.mjs";
|
|
5
|
-
import { createErrorHandler, createGetErrorHandler } from "./common/error.mjs";
|
|
5
|
+
import { createErrorHandler, createGetErrorHandler, decodeIssueKind, encodeIssueKind, issueKind } from "./common/error.mjs";
|
|
6
|
+
import { createErrorInterpreter } from "./common/errorInterpreter.mjs";
|
|
6
7
|
import { constraintKind, createConstraint } from "./constraint/base.mjs";
|
|
7
8
|
import { AllowedCharactersConstraint, allowedCharactersConstraintKind } from "./constraint/defaults/allowedCharacters.mjs";
|
|
8
9
|
import { ArrayLengthEqualConstraint, arrayLengthEqualConstraintKind } from "./constraint/defaults/arrayLengthEqual.mjs";
|
|
@@ -30,23 +31,25 @@ import { SafeConstraint, safeConstraintKind } from "./constraint/defaults/safe.m
|
|
|
30
31
|
import { StrictNegativeConstraint, strictNegativeConstraintKind } from "./constraint/defaults/strictNegative.mjs";
|
|
31
32
|
import { StrictPositiveConstraint, strictPositiveConstraintKind } from "./constraint/defaults/strictPositive.mjs";
|
|
32
33
|
import { StringLengthEqualConstraint, stringLengthEqualConstraintKind } from "./constraint/defaults/stringLengthEqual.mjs";
|
|
34
|
+
import { TrimmedConstraint, trimmedConstraintKind } from "./constraint/defaults/trimmed.mjs";
|
|
33
35
|
import { UrlConstraint, urlConstraintKind } from "./constraint/defaults/url.mjs";
|
|
34
36
|
import { UuidConstraint, uuidConstraintKind, uuidRegex } from "./constraint/defaults/uuid.mjs";
|
|
35
37
|
import { constraintIdentifier } from "./constraint/identifier.mjs";
|
|
36
38
|
import { createFundamentalType, fundamentalTypeKind } from "./fundamentalType/base.mjs";
|
|
37
|
-
import { TheBigint } from "./fundamentalType/defaults/bigint.mjs";
|
|
38
|
-
import { TheBoolean } from "./fundamentalType/defaults/boolean.mjs";
|
|
39
|
-
import { TheDate } from "./fundamentalType/defaults/date.mjs";
|
|
40
|
-
import { TheNull } from "./fundamentalType/defaults/null.mjs";
|
|
41
|
-
import { TheNumber } from "./fundamentalType/defaults/number.mjs";
|
|
42
|
-
import { TheString } from "./fundamentalType/defaults/string.mjs";
|
|
43
|
-
import { TheTime } from "./fundamentalType/defaults/time.mjs";
|
|
44
|
-
import { TheUndefined } from "./fundamentalType/defaults/undefined.mjs";
|
|
39
|
+
import { TheBigint, bigintFundamentalTypeKind } from "./fundamentalType/defaults/bigint.mjs";
|
|
40
|
+
import { TheBoolean, booleanFundamentalTypeKind } from "./fundamentalType/defaults/boolean.mjs";
|
|
41
|
+
import { TheDate, dateFundamentalTypeKind } from "./fundamentalType/defaults/date.mjs";
|
|
42
|
+
import { TheNull, nullFundamentalTypeKind } from "./fundamentalType/defaults/null.mjs";
|
|
43
|
+
import { TheNumber, numberFundamentalTypeKind } from "./fundamentalType/defaults/number.mjs";
|
|
44
|
+
import { TheString, stringFundamentalTypeKind } from "./fundamentalType/defaults/string.mjs";
|
|
45
|
+
import { TheTime, timeFundamentalTypeKind } from "./fundamentalType/defaults/time.mjs";
|
|
46
|
+
import { TheUndefined, undefinedFundamentalTypeKind } from "./fundamentalType/defaults/undefined.mjs";
|
|
45
47
|
import { fundamentalTypeIdentifier } from "./fundamentalType/identifier.mjs";
|
|
46
48
|
import { allowedCharacters } from "./helpers/allowedCharacters.mjs";
|
|
47
49
|
import { StructureClass, createStructure, structureKind } from "./structure/base.mjs";
|
|
48
50
|
import { ArrayStructure, arrayStructureKind } from "./structure/defaults/array.mjs";
|
|
49
51
|
import { LazyStructure, lazyStructureKind } from "./structure/defaults/lazy.mjs";
|
|
52
|
+
import { NonEncodableStringStructure, nonEncodableStringStructureKind } from "./structure/defaults/nonEncodableString.mjs";
|
|
50
53
|
import { ObjectStructure, objectStructureKind } from "./structure/defaults/object.mjs";
|
|
51
54
|
import { structureIdentifier } from "./structure/identifier.mjs";
|
|
52
55
|
import { UnionStructure, unionStructureKind } from "./structure/defaults/union.mjs";
|
|
@@ -112,6 +115,7 @@ import { strictNegative } from "./helpers/strictNegative.mjs";
|
|
|
112
115
|
import { strictPositive } from "./helpers/strictPositive.mjs";
|
|
113
116
|
import { stringLengthEqual } from "./helpers/stringLengthEqual.mjs";
|
|
114
117
|
import { time } from "./helpers/time.mjs";
|
|
118
|
+
import { trimmed } from "./helpers/trimmed.mjs";
|
|
115
119
|
import { url } from "./helpers/url.mjs";
|
|
116
120
|
import { uuid } from "./helpers/uuid.mjs";
|
|
117
121
|
//#region scripts/dataStructure/index.ts
|
|
@@ -141,6 +145,7 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
|
|
|
141
145
|
MinElementsConstraint: () => MinElementsConstraint,
|
|
142
146
|
MultipleOfConstraint: () => MultipleOfConstraint,
|
|
143
147
|
NegativeConstraint: () => NegativeConstraint,
|
|
148
|
+
NonEncodableStringStructure: () => NonEncodableStringStructure,
|
|
144
149
|
NotEmptyConstraint: () => NotEmptyConstraint,
|
|
145
150
|
NotZeroConstraint: () => NotZeroConstraint,
|
|
146
151
|
NullType: () => NullType,
|
|
@@ -168,6 +173,7 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
|
|
|
168
173
|
TheTime: () => TheTime,
|
|
169
174
|
TheUndefined: () => TheUndefined,
|
|
170
175
|
TimeType: () => TimeType,
|
|
176
|
+
TrimmedConstraint: () => TrimmedConstraint,
|
|
171
177
|
TypeStructure: () => TypeStructure,
|
|
172
178
|
UndefinedType: () => UndefinedType,
|
|
173
179
|
UnionStructure: () => UnionStructure,
|
|
@@ -184,9 +190,11 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
|
|
|
184
190
|
betweenThanOrEqual: () => betweenThanOrEqual,
|
|
185
191
|
betweenThanOrEqualConstraintKind: () => betweenThanOrEqualConstraintKind,
|
|
186
192
|
bigint: () => bigint,
|
|
193
|
+
bigintFundamentalTypeKind: () => bigintFundamentalTypeKind,
|
|
187
194
|
bigintLiteralTypeKind: () => bigintLiteralTypeKind,
|
|
188
195
|
bigintTypeKind: () => bigintTypeKind,
|
|
189
196
|
boolean: () => boolean,
|
|
197
|
+
booleanFundamentalTypeKind: () => booleanFundamentalTypeKind,
|
|
190
198
|
booleanLiteralTypeKind: () => booleanLiteralTypeKind,
|
|
191
199
|
booleanTypeKind: () => booleanTypeKind,
|
|
192
200
|
codecKind: () => codecKind,
|
|
@@ -197,15 +205,19 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
|
|
|
197
205
|
createCodecs: () => createCodecs,
|
|
198
206
|
createConstraint: () => createConstraint,
|
|
199
207
|
createErrorHandler: () => createErrorHandler,
|
|
208
|
+
createErrorInterpreter: () => createErrorInterpreter,
|
|
200
209
|
createFundamentalType: () => createFundamentalType,
|
|
201
210
|
createGetErrorHandler: () => createGetErrorHandler,
|
|
202
211
|
createKind: () => createKind,
|
|
203
212
|
createStructure: () => createStructure,
|
|
204
213
|
createType: () => createType,
|
|
205
214
|
date: () => date,
|
|
215
|
+
dateFundamentalTypeKind: () => dateFundamentalTypeKind,
|
|
206
216
|
dateTypeKind: () => dateTypeKind,
|
|
217
|
+
decodeIssueKind: () => decodeIssueKind,
|
|
207
218
|
email: () => email,
|
|
208
219
|
emailConstraintKind: () => emailConstraintKind,
|
|
220
|
+
encodeIssueKind: () => encodeIssueKind,
|
|
209
221
|
even: () => even,
|
|
210
222
|
evenConstraintKind: () => evenConstraintKind,
|
|
211
223
|
extend: () => extend,
|
|
@@ -219,6 +231,7 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
|
|
|
219
231
|
integerConstraintKind: () => integerConstraintKind,
|
|
220
232
|
isNullStructure: () => isNullStructure,
|
|
221
233
|
isUndefinedStructure: () => isUndefinedStructure,
|
|
234
|
+
issueKind: () => issueKind,
|
|
222
235
|
lazy: () => lazy,
|
|
223
236
|
lazyStructureKind: () => lazyStructureKind,
|
|
224
237
|
lessThan: () => lessThan,
|
|
@@ -237,14 +250,17 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
|
|
|
237
250
|
multipleOfConstraintKind: () => multipleOfConstraintKind,
|
|
238
251
|
negative: () => negative,
|
|
239
252
|
negativeConstraintKind: () => negativeConstraintKind,
|
|
253
|
+
nonEncodableStringStructureKind: () => nonEncodableStringStructureKind,
|
|
240
254
|
notEmpty: () => notEmpty,
|
|
241
255
|
notEmptyConstraintKind: () => notEmptyConstraintKind,
|
|
242
256
|
notZero: () => notZero,
|
|
243
257
|
notZeroConstraintKind: () => notZeroConstraintKind,
|
|
244
258
|
null: () => nullHelper,
|
|
259
|
+
nullFundamentalTypeKind: () => nullFundamentalTypeKind,
|
|
245
260
|
nullTypeKind: () => nullTypeKind,
|
|
246
261
|
nullable: () => nullable,
|
|
247
262
|
number: () => number,
|
|
263
|
+
numberFundamentalTypeKind: () => numberFundamentalTypeKind,
|
|
248
264
|
numberLiteralTypeKind: () => numberLiteralTypeKind,
|
|
249
265
|
numberTypeKind: () => numberTypeKind,
|
|
250
266
|
object: () => object,
|
|
@@ -267,6 +283,7 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
|
|
|
267
283
|
strictPositive: () => strictPositive,
|
|
268
284
|
strictPositiveConstraintKind: () => strictPositiveConstraintKind,
|
|
269
285
|
string: () => string,
|
|
286
|
+
stringFundamentalTypeKind: () => stringFundamentalTypeKind,
|
|
270
287
|
stringLengthEqual: () => stringLengthEqual,
|
|
271
288
|
stringLengthEqualConstraintKind: () => stringLengthEqualConstraintKind,
|
|
272
289
|
stringLiteralTypeKind: () => stringLiteralTypeKind,
|
|
@@ -275,11 +292,15 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
|
|
|
275
292
|
structureIdentifier: () => structureIdentifier,
|
|
276
293
|
structureKind: () => structureKind,
|
|
277
294
|
time: () => time,
|
|
295
|
+
timeFundamentalTypeKind: () => timeFundamentalTypeKind,
|
|
278
296
|
timeTypeKind: () => timeTypeKind,
|
|
297
|
+
trimmed: () => trimmed,
|
|
298
|
+
trimmedConstraintKind: () => trimmedConstraintKind,
|
|
279
299
|
typeIdentifier: () => typeIdentifier,
|
|
280
300
|
typeKind: () => typeKind,
|
|
281
301
|
typeStructureKind: () => typeStructureKind,
|
|
282
302
|
undefined: () => undefinedHelper,
|
|
303
|
+
undefinedFundamentalTypeKind: () => undefinedFundamentalTypeKind,
|
|
283
304
|
undefinedTypeKind: () => undefinedTypeKind,
|
|
284
305
|
union: () => union,
|
|
285
306
|
unionStructureKind: () => unionStructureKind,
|
|
@@ -290,4 +311,4 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
|
|
|
290
311
|
uuidRegex: () => uuidRegex
|
|
291
312
|
});
|
|
292
313
|
//#endregion
|
|
293
|
-
export { AllowedCharactersConstraint, ArrayLengthEqualConstraint, ArrayStructure, BetweenThanConstraint, BetweenThanOrEqualConstraint, BigintLiteralType, BigintType, BooleanLiteralType, BooleanType, DateType, EmailConstraint, ErrorSymbol, EvenConstraint, GreaterThanConstraint, GreaterThanOrEqualConstraint, IntegerConstraint, LazyStructure, LessThanConstraint, LessThanOrEqualConstraint, MaxCharactersConstraint, MaxElementsConstraint, MinCharactersConstraint, MinElementsConstraint, MultipleOfConstraint, NegativeConstraint, NotEmptyConstraint, NotZeroConstraint, NullType, NumberLiteralType, NumberType, ObjectStructure, OddConstraint, PositiveConstraint, RecordStructure, RefineConstraint, SafeConstraint, StrictNegativeConstraint, StrictPositiveConstraint, StringLengthEqualConstraint, StringLiteralType, StringType, StructureClass, SuccessSymbol, TheBigint, TheBoolean, TheDate, TheNull, TheNumber, TheString, TheTime, TheUndefined, TimeType, TypeStructure, UndefinedType, UnionStructure, UrlConstraint, UuidConstraint, allowedCharacters, allowedCharactersConstraintKind, array, arrayLengthEqual, arrayLengthEqualConstraintKind, arrayStructureKind, betweenThan, betweenThanConstraintKind, betweenThanOrEqual, betweenThanOrEqualConstraintKind, bigint, bigintLiteralTypeKind, bigintTypeKind, boolean, booleanLiteralTypeKind, booleanTypeKind, codecKind, codecsKind, constraintIdentifier, constraintKind, createCodec, createCodecs, createConstraint, createErrorHandler, createFundamentalType, createGetErrorHandler, createKind, createStructure, createType, dataStructure_exports, date, dateTypeKind, email, emailConstraintKind, even, evenConstraintKind, extend, fundamentalTypeIdentifier, fundamentalTypeKind, greaterThan, greaterThanConstraintKind, greaterThanOrEqual, greaterThanOrEqualConstraintKind, integer, integerConstraintKind, isNullStructure, isUndefinedStructure, lazy, lazyStructureKind, lessThan, lessThanConstraintKind, lessThanOrEqual, lessThanOrEqualConstraintKind, literal, maxCharacters, maxCharactersConstraintKind, maxElements, maxElementsConstraintKind, minCharacters, minElements, minElementsConstraintKind, multipleOf, multipleOfConstraintKind, negative, negativeConstraintKind, notEmpty, notEmptyConstraintKind, notZero, notZeroConstraintKind, nullHelper as null, nullTypeKind, nullable, number, numberLiteralTypeKind, numberTypeKind, object, objectStructureKind, odd, oddConstraintKind, optional, partial, positive, positiveConstraintKind, record, recordStructureKind, refine, refineConstraintKind, required, safe, safeConstraintKind, strictNegative, strictNegativeConstraintKind, strictPositive, strictPositiveConstraintKind, string, stringLengthEqual, stringLengthEqualConstraintKind, stringLiteralTypeKind, stringMinConstraintKind, stringTypeKind, structureIdentifier, structureKind, time, timeTypeKind, typeIdentifier, typeKind, typeStructureKind, undefinedHelper as undefined, undefinedTypeKind, union, unionStructureKind, url, urlConstraintKind, uuid, uuidConstraintKind, uuidRegex };
|
|
314
|
+
export { AllowedCharactersConstraint, ArrayLengthEqualConstraint, ArrayStructure, BetweenThanConstraint, BetweenThanOrEqualConstraint, BigintLiteralType, BigintType, BooleanLiteralType, BooleanType, DateType, EmailConstraint, ErrorSymbol, EvenConstraint, GreaterThanConstraint, GreaterThanOrEqualConstraint, IntegerConstraint, LazyStructure, LessThanConstraint, LessThanOrEqualConstraint, MaxCharactersConstraint, MaxElementsConstraint, MinCharactersConstraint, MinElementsConstraint, MultipleOfConstraint, NegativeConstraint, NonEncodableStringStructure, NotEmptyConstraint, NotZeroConstraint, NullType, NumberLiteralType, NumberType, ObjectStructure, OddConstraint, PositiveConstraint, RecordStructure, RefineConstraint, SafeConstraint, StrictNegativeConstraint, StrictPositiveConstraint, StringLengthEqualConstraint, StringLiteralType, StringType, StructureClass, SuccessSymbol, TheBigint, TheBoolean, TheDate, TheNull, TheNumber, TheString, TheTime, TheUndefined, TimeType, TrimmedConstraint, TypeStructure, UndefinedType, UnionStructure, UrlConstraint, UuidConstraint, allowedCharacters, allowedCharactersConstraintKind, array, arrayLengthEqual, arrayLengthEqualConstraintKind, arrayStructureKind, betweenThan, betweenThanConstraintKind, betweenThanOrEqual, betweenThanOrEqualConstraintKind, bigint, bigintFundamentalTypeKind, bigintLiteralTypeKind, bigintTypeKind, boolean, booleanFundamentalTypeKind, booleanLiteralTypeKind, booleanTypeKind, codecKind, codecsKind, constraintIdentifier, constraintKind, createCodec, createCodecs, createConstraint, createErrorHandler, createErrorInterpreter, createFundamentalType, createGetErrorHandler, createKind, createStructure, createType, dataStructure_exports, date, dateFundamentalTypeKind, dateTypeKind, decodeIssueKind, email, emailConstraintKind, encodeIssueKind, even, evenConstraintKind, extend, fundamentalTypeIdentifier, fundamentalTypeKind, greaterThan, greaterThanConstraintKind, greaterThanOrEqual, greaterThanOrEqualConstraintKind, integer, integerConstraintKind, isNullStructure, isUndefinedStructure, issueKind, lazy, lazyStructureKind, lessThan, lessThanConstraintKind, lessThanOrEqual, lessThanOrEqualConstraintKind, literal, maxCharacters, maxCharactersConstraintKind, maxElements, maxElementsConstraintKind, minCharacters, minElements, minElementsConstraintKind, multipleOf, multipleOfConstraintKind, negative, negativeConstraintKind, nonEncodableStringStructureKind, notEmpty, notEmptyConstraintKind, notZero, notZeroConstraintKind, nullHelper as null, nullFundamentalTypeKind, nullTypeKind, nullable, number, numberFundamentalTypeKind, numberLiteralTypeKind, numberTypeKind, object, objectStructureKind, odd, oddConstraintKind, optional, partial, positive, positiveConstraintKind, record, recordStructureKind, refine, refineConstraintKind, required, safe, safeConstraintKind, strictNegative, strictNegativeConstraintKind, strictPositive, strictPositiveConstraintKind, string, stringFundamentalTypeKind, stringLengthEqual, stringLengthEqualConstraintKind, stringLiteralTypeKind, stringMinConstraintKind, stringTypeKind, structureIdentifier, structureKind, time, timeFundamentalTypeKind, timeTypeKind, trimmed, trimmedConstraintKind, typeIdentifier, typeKind, typeStructureKind, undefinedHelper as undefined, undefinedFundamentalTypeKind, undefinedTypeKind, union, unionStructureKind, url, urlConstraintKind, uuid, uuidConstraintKind, uuidRegex };
|
|
@@ -2,6 +2,7 @@ const require_bindPrototypeMethods = require("../../common/bindPrototypeMethods.
|
|
|
2
2
|
const require_callThen = require("../../common/callThen.cjs");
|
|
3
3
|
const require_create = require("../../either/left/create.cjs");
|
|
4
4
|
const require_create$1 = require("../../either/right/create.cjs");
|
|
5
|
+
const require_simpleClone = require("../../common/simpleClone.cjs");
|
|
5
6
|
const require_kind = require("../kind.cjs");
|
|
6
7
|
const require_resultSymbol = require("../common/resultSymbol.cjs");
|
|
7
8
|
const require_error = require("../common/error.cjs");
|
|
@@ -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 = require_kind.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) => require_callThen.callThen(accumulator, (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : constraint.executeCheck(data, errorHandler)), require_resultSymbol.SuccessSymbol),
|
|
40
|
+
executeConstraints: (data, errorHandler) => definition.constraints.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(self, data, constraint) ?? require_resultSymbol.ErrorSymbol : require_resultSymbol.SuccessSymbol)), require_resultSymbol.SuccessSymbol),
|
|
38
41
|
executeCheck: (data, errorHandler) => require_callThen.callThen(executeCheck(self, data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.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) === require_resultSymbol.ErrorSymbol) return require_create.left("check-error", errorHandler().createError());
|
|
59
62
|
return require_create$1.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 === require_resultSymbol.ErrorSymbol) return false;
|
|
64
67
|
return true;
|
|
65
68
|
},
|
|
@@ -94,12 +97,19 @@ function createStructure(kindHandler, createConstructor) {
|
|
|
94
97
|
return require_create$1.right("decode-success", result);
|
|
95
98
|
},
|
|
96
99
|
contract: () => self,
|
|
97
|
-
clone: () => init(definition, {
|
|
100
|
+
clone: () => init(require_simpleClone.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
|
});
|
|
@@ -7,15 +7,16 @@ import * as DCommon from '../../common';
|
|
|
7
7
|
export declare class StructureClass {
|
|
8
8
|
private constructor();
|
|
9
9
|
static init(params: DKind.Remove<Structure>): Structure;
|
|
10
|
-
static addToPrototype<GenericProp extends keyof Structure>(prop: GenericProp, value: Structure[GenericProp]): void;
|
|
10
|
+
static addToPrototype<GenericProp extends keyof Structure>(prop: GenericProp, value: Structure[GenericProp] extends infer InferredValue ? InferredValue extends DCommon.AnyFunction ? (self: Structure, ...rest: Parameters<InferredValue>) => ReturnType<InferredValue> : Structure[GenericProp] : never): void;
|
|
11
11
|
}
|
|
12
12
|
export declare const structureKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/structure", unknown>>;
|
|
13
13
|
export interface StructureDefinition<GenericConstraints extends readonly Constraint<any>[] = readonly Constraint<any>[]> {
|
|
14
|
+
readonly message?: string;
|
|
14
15
|
readonly constraints: readonly [...GenericConstraints];
|
|
15
16
|
}
|
|
16
17
|
export interface Structure<GenericValue extends unknown = unknown, GenericDefinition extends StructureDefinition<readonly Constraint<GenericValue>[]> = StructureDefinition<readonly Constraint<GenericValue>[]>> extends DKind.Kind<typeof structureKind, (GenericValue & StructureConstraintsValue<GenericDefinition["constraints"][number]>)> {
|
|
17
18
|
readonly definition: GenericDefinition;
|
|
18
|
-
addConstraint<const GenericNewConstraints extends DCommon.AnyTuple<Constraint<GenericValue>>>(...args: DCommon.FixDeepFunctionInfer<DCommon.AnyTuple<Constraint<GenericValue>>, GenericNewConstraints>): Structure<
|
|
19
|
+
addConstraint<const GenericNewConstraints extends DCommon.AnyTuple<Constraint<GenericValue>>>(...args: DCommon.FixDeepFunctionInfer<DCommon.AnyTuple<Constraint<GenericValue>>, GenericNewConstraints>): Structure<StructureValue<this>, StructureDefinition<readonly [...this["definition"]["constraints"], ...GenericNewConstraints]>>;
|
|
19
20
|
executeConstraints(data: unknown, errorHandler?: GetErrorHandler): DCommon.MaybePromise<SuccessSymbol | ErrorSymbol>;
|
|
20
21
|
executeCheck(data: unknown, errorHandler?: GetErrorHandler): DCommon.MaybePromise<SuccessSymbol | ErrorSymbol>;
|
|
21
22
|
executeEncode(codecContext: CodecContext, data: unknown, errorHandler?: GetErrorHandler): unknown;
|
|
@@ -23,7 +24,7 @@ export interface Structure<GenericValue extends unknown = unknown, GenericDefini
|
|
|
23
24
|
isAsynchronous(): boolean;
|
|
24
25
|
check(data: unknown): (DEither.Right<"check-success", StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"check-error", Error>);
|
|
25
26
|
asyncCheck(data: unknown): Promise<DEither.Right<"check-success", StructureValue<this>> | DEither.Left<"check-error", Error>>;
|
|
26
|
-
is(data: unknown
|
|
27
|
+
is(data: unknown): data is StructureValue<this>;
|
|
27
28
|
encode<GenericCodecs extends Codecs>(codecs: GenericCodecs, data: StructureValue<this>): (DEither.Right<"encode-success", EncodedValue<StructureValue<this>, GenericCodecs>> | DEither.Left<"async-error", undefined> | DEither.Left<"encode-error", Error>);
|
|
28
29
|
asyncEncode<GenericCodecs extends Codecs>(codecs: GenericCodecs, data: StructureValue<this>): Promise<DEither.Right<"encode-success", EncodedValue<StructureValue<this>, GenericCodecs>> | DEither.Left<"encode-error", Error>>;
|
|
29
30
|
unsafeEncode<GenericCodecs extends Codecs>(codecs: GenericCodecs, data: unknown): (DEither.Right<"encode-success", EncodedValue<StructureValue<this>, GenericCodecs>> | DEither.Left<"async-error", undefined> | DEither.Left<"encode-error", Error>);
|
|
@@ -34,6 +35,8 @@ export interface Structure<GenericValue extends unknown = unknown, GenericDefini
|
|
|
34
35
|
asyncUnsafeDecode(codecs: Codecs, data: unknown): Promise<DEither.Right<"decode-success", StructureValue<this>> | DEither.Left<"decode-error", Error>>;
|
|
35
36
|
contract<GenericValue extends unknown, GenericThis extends this>(...args: DCommon.IsEqual<StructureValue<GenericThis>, GenericValue> extends true ? [] : [] & DCommon.ComputedTypeError<"Contract error.">): Structure<GenericValue>;
|
|
36
37
|
clone(): this;
|
|
38
|
+
setMessage(massage: string): this;
|
|
39
|
+
addMessage(massage: string): this;
|
|
37
40
|
}
|
|
38
41
|
export interface CreateStructureInitParams<GenericStructure extends Structure = Structure> {
|
|
39
42
|
executeCheck(self: GenericStructure, data: unknown, errorHandler?: GetErrorHandler): DCommon.MaybePromise<SuccessSymbol | ErrorSymbol>;
|
|
@@ -45,6 +48,6 @@ export type CreateStructureInitRest<GenericStructure extends Structure = Structu
|
|
|
45
48
|
[Prop in Exclude<keyof GenericStructure, keyof Structure>]: GenericStructure[Prop] extends DCommon.AnyFunction ? (self: GenericStructure, ...args: Parameters<GenericStructure[Prop]>) => ReturnType<GenericStructure[Prop]> : GenericStructure[Prop];
|
|
46
49
|
};
|
|
47
50
|
export interface CreateStructureConstructorParams<GenericKindHandler extends DKind.Handler = DKind.Handler> {
|
|
48
|
-
init<GenericStructure extends (Structure & DKind.Kind<GenericKindHandler>)>(definition: GenericStructure["definition"], params: CreateStructureInitParams<GenericStructure>, ...args: DCommon.IsNever<Exclude<keyof GenericStructure, keyof Structure>> extends true ? [] : [rest: CreateStructureInitRest<GenericStructure>]): GenericStructure
|
|
51
|
+
init<GenericStructure extends (Structure & DKind.Kind<GenericKindHandler>)>(definition: GenericStructure["definition"], params: CreateStructureInitParams<GenericStructure>, ...args: DCommon.IsNever<Exclude<keyof GenericStructure, keyof Structure>> extends true ? [] : [rest: CreateStructureInitRest<GenericStructure>]): NoInfer<GenericStructure>;
|
|
49
52
|
}
|
|
50
53
|
export declare function createStructure<GenericKindHandler extends DKind.Handler, GenericConstructor extends ((...args: any[]) => (Structure & DKind.Kind<GenericKindHandler>))>(kindHandler: GenericKindHandler, createConstructor: (params: CreateStructureConstructorParams<GenericKindHandler>) => GenericConstructor): GenericConstructor;
|
|
@@ -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
|
});
|
|
@@ -15,4 +15,4 @@ export interface ArrayStructureDefinition<GenericConstraints extends readonly Co
|
|
|
15
15
|
}
|
|
16
16
|
export interface ArrayStructure<GenericValue extends readonly unknown[] = readonly unknown[], GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.UnionToIntersection<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]>>;
|
|
@@ -11,7 +11,8 @@ const ArrayStructure = createStructure(arrayStructureKind, ({ init }) => (elemen
|
|
|
11
11
|
executeCheck: (self, data, errorHandler) => {
|
|
12
12
|
if (!Array.isArray(data)) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
13
13
|
const pathStage = errorHandler?.().createPathStage();
|
|
14
|
-
|
|
14
|
+
const result = data.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`[array: ${index}]`) ?? callThen(self.definition.element.executeCheck(value, errorHandler), (result) => result === ErrorSymbol || awaitedAccumulator === ErrorSymbol ? ErrorSymbol : SuccessSymbol)), SuccessSymbol);
|
|
15
|
+
return callThen(result, (awaitedResult) => {
|
|
15
16
|
pathStage?.close();
|
|
16
17
|
return awaitedResult;
|
|
17
18
|
});
|
|
@@ -19,20 +20,22 @@ const ArrayStructure = createStructure(arrayStructureKind, ({ init }) => (elemen
|
|
|
19
20
|
executeEncode: (self, codecContext, data, errorHandler) => {
|
|
20
21
|
if (!Array.isArray(data)) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
21
22
|
const pathStage = errorHandler?.().createPathStage();
|
|
22
|
-
|
|
23
|
+
const encodedData = data.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`[array: ${index}]`) ?? callThen(self.definition.element.executeEncode(codecContext, value, errorHandler), (encodedData) => {
|
|
23
24
|
if (encodedData === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
|
|
24
25
|
awaitedAccumulator[index] = encodedData;
|
|
25
26
|
return awaitedAccumulator;
|
|
26
|
-
})), [])
|
|
27
|
+
})), []);
|
|
28
|
+
return callThen(encodedData, (awaitedEncodedData) => pathStage?.close() ?? (awaitedEncodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData)));
|
|
27
29
|
},
|
|
28
30
|
executeDecode: (self, codecContext, data, errorHandler) => {
|
|
29
31
|
if (!Array.isArray(data)) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
30
32
|
const pathStage = errorHandler?.().createPathStage();
|
|
31
|
-
|
|
33
|
+
const decodedData = data.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`[array: ${index}]`) ?? callThen(self.definition.element.executeDecode(codecContext, value, errorHandler), (decodedData) => {
|
|
32
34
|
if (decodedData === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
|
|
33
35
|
awaitedAccumulator[index] = decodedData;
|
|
34
36
|
return awaitedAccumulator;
|
|
35
|
-
})), [])
|
|
37
|
+
})), []);
|
|
38
|
+
return callThen(decodedData, (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData)));
|
|
36
39
|
},
|
|
37
40
|
isAsynchronous: (self) => self.definition.element.isAsynchronous()
|
|
38
41
|
}));
|
|
@@ -1,5 +1,7 @@
|
|
|
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");
|
|
4
6
|
//#region scripts/dataStructure/structure/defaults/lazy.ts
|
|
5
7
|
const lazyStructureKind = require_kind.createKind("lazy-structure");
|
|
@@ -8,8 +10,8 @@ const LazyStructure = require_base.createStructure(lazyStructureKind, ({ init })
|
|
|
8
10
|
constraints
|
|
9
11
|
}, {
|
|
10
12
|
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),
|
|
13
|
+
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)),
|
|
14
|
+
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
15
|
isAsynchronous: (self) => self.definition.getter.value.isAsynchronous()
|
|
14
16
|
}));
|
|
15
17
|
//#endregion
|
|
@@ -9,4 +9,4 @@ export interface LazyStructureDefinition<GenericConstraints extends readonly Con
|
|
|
9
9
|
}
|
|
10
10
|
export interface LazyStructure<GenericValue extends unknown = unknown, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.UnionToIntersection<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,5 +1,7 @@
|
|
|
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";
|
|
4
6
|
//#region scripts/dataStructure/structure/defaults/lazy.ts
|
|
5
7
|
const lazyStructureKind = createKind("lazy-structure");
|
|
@@ -8,8 +10,8 @@ const LazyStructure = createStructure(lazyStructureKind, ({ init }) => (getStruc
|
|
|
8
10
|
constraints
|
|
9
11
|
}, {
|
|
10
12
|
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),
|
|
13
|
+
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)),
|
|
14
|
+
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
15
|
isAsynchronous: (self) => self.definition.getter.value.isAsynchronous()
|
|
14
16
|
}));
|
|
15
17
|
//#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.UnionToIntersection<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 };
|
|
@@ -27,4 +27,4 @@ export interface ObjectStructureDefinition<GenericConstraints extends readonly C
|
|
|
27
27
|
}
|
|
28
28
|
export interface ObjectStructure<GenericValue extends Record<string, unknown> = Record<string, unknown>, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.UnionToIntersection<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]>>;
|
|
@@ -18,7 +18,8 @@ const ObjectStructure = createStructure(objectStructureKind, ({ init }) => (shap
|
|
|
18
18
|
if (!isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
19
19
|
if (Object.keys(data).some((value) => !self.definition.keys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
20
20
|
const pathStage = errorHandler?.().createPathStage();
|
|
21
|
-
|
|
21
|
+
const result = self.definition.shape.value.reduce((accumulator, entry) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? callThen(entry.value.executeCheck(data[entry.key], errorHandler), (result) => result === ErrorSymbol || awaitedAccumulator === ErrorSymbol ? ErrorSymbol : SuccessSymbol)), SuccessSymbol);
|
|
22
|
+
return callThen(result, (awaitedResult) => {
|
|
22
23
|
pathStage?.close();
|
|
23
24
|
return awaitedResult;
|
|
24
25
|
});
|
|
@@ -27,21 +28,23 @@ const ObjectStructure = createStructure(objectStructureKind, ({ init }) => (shap
|
|
|
27
28
|
if (!isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
28
29
|
if (Object.keys(data).some((value) => !self.definition.keys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
29
30
|
const pathStage = errorHandler?.().createPathStage();
|
|
30
|
-
|
|
31
|
+
const encodedData = self.definition.shape.value.reduce((accumulator, entry) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? callThen(entry.value.executeEncode(codecContext, data[entry.key], errorHandler), (encodedData) => {
|
|
31
32
|
if (encodedData === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
|
|
32
33
|
awaitedAccumulator[entry.key] = encodedData;
|
|
33
34
|
return awaitedAccumulator;
|
|
34
|
-
})), {})
|
|
35
|
+
})), {});
|
|
36
|
+
return callThen(encodedData, (awaitedEncodedData) => pathStage?.close() ?? (awaitedEncodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData)));
|
|
35
37
|
},
|
|
36
38
|
executeDecode: (self, codecContext, data, errorHandler) => {
|
|
37
39
|
if (!isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
38
40
|
if (Object.keys(data).some((value) => !self.definition.keys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
39
41
|
const pathStage = errorHandler?.().createPathStage();
|
|
40
|
-
|
|
42
|
+
const decodedData = self.definition.shape.value.reduce((accumulator, entry) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? callThen(entry.value.executeDecode(codecContext, data[entry.key], errorHandler), (decodedData) => {
|
|
41
43
|
if (decodedData === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
|
|
42
44
|
awaitedAccumulator[entry.key] = decodedData;
|
|
43
45
|
return awaitedAccumulator;
|
|
44
|
-
})), {})
|
|
46
|
+
})), {});
|
|
47
|
+
return callThen(decodedData, (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData)));
|
|
45
48
|
},
|
|
46
49
|
isAsynchronous: (self) => self.definition.shape.value.some((entry) => entry.value.isAsynchronous())
|
|
47
50
|
}));
|
|
@@ -16,4 +16,4 @@ export interface RecordStructureDefinition<GenericConstraints extends readonly C
|
|
|
16
16
|
}
|
|
17
17
|
export interface RecordStructure<GenericValue extends Record<string, unknown> = Record<string, unknown>, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.UnionToIntersection<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]>>;
|
|
@@ -31,7 +31,8 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
|
|
|
31
31
|
const requiredKeys = self.definition.requiredKeys;
|
|
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);
|
|
35
|
+
return callThen(result, (awaitedResult) => {
|
|
35
36
|
pathStage?.close();
|
|
36
37
|
return awaitedResult;
|
|
37
38
|
});
|
|
@@ -42,11 +43,12 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
|
|
|
42
43
|
const requiredKeys = self.definition.requiredKeys;
|
|
43
44
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
44
45
|
const pathStage = errorHandler?.().createPathStage();
|
|
45
|
-
|
|
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) => {
|
|
46
47
|
if (keyResult === ErrorSymbol || encodedValue === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
|
|
47
48
|
awaitedAccumulator[key] = encodedValue;
|
|
48
49
|
return awaitedAccumulator;
|
|
49
|
-
}))), {})
|
|
50
|
+
}))), {});
|
|
51
|
+
return callThen(encodedData, (awaitedEncodedData) => pathStage?.close() ?? (awaitedEncodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData)));
|
|
50
52
|
},
|
|
51
53
|
executeDecode: (self, codecContext, data, errorHandler) => {
|
|
52
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;
|
|
@@ -54,11 +56,12 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
|
|
|
54
56
|
const requiredKeys = self.definition.requiredKeys;
|
|
55
57
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
56
58
|
const pathStage = errorHandler?.().createPathStage();
|
|
57
|
-
|
|
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) => {
|
|
58
60
|
if (keyResult === ErrorSymbol || decodedValue === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
|
|
59
61
|
awaitedAccumulator[key] = decodedValue;
|
|
60
62
|
return awaitedAccumulator;
|
|
61
|
-
}))), {})
|
|
63
|
+
}))), {});
|
|
64
|
+
return callThen(decodedData, (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData)));
|
|
62
65
|
},
|
|
63
66
|
isAsynchronous: (self) => self.definition.key.isAsynchronous() || self.definition.value.isAsynchronous()
|
|
64
67
|
}));
|
|
@@ -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);
|