@duplojs/lang 0.0.1-beta.9 → 0.1.0-beta.1
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/concat.d.ts +2 -2
- package/dist/array/flat.d.ts +1 -1
- package/dist/array/flatMap.d.ts +2 -2
- package/dist/array/from.d.ts +1 -1
- package/dist/array/length.d.ts +3 -2
- package/dist/array/push.d.ts +4 -2
- package/dist/chrono/createDate.cjs +1 -1
- package/dist/chrono/createDate.mjs +1 -1
- package/dist/chrono/operators/addTime.d.ts +2 -4
- package/dist/common/constraint/cast/index.d.ts +4 -4
- package/dist/common/constraint/cast/string.d.ts +4 -0
- package/dist/common/constraint/infer/index.d.ts +2 -1
- package/dist/common/constraint/infer/string.d.ts +1 -1
- package/dist/common/constraint/types/index.d.ts +1 -0
- package/dist/common/constraint/types/maybe.d.ts +2 -0
- package/dist/common/formData.d.ts +2 -1
- package/dist/common/memo.cjs +3 -2
- package/dist/common/memo.mjs +3 -2
- package/dist/common/memoPromise.cjs +3 -2
- package/dist/common/memoPromise.mjs +3 -2
- package/dist/common/timeout.cjs +2 -2
- package/dist/common/timeout.d.ts +1 -1
- package/dist/common/timeout.mjs +2 -2
- package/dist/common/types/applyPromiseIf.d.ts +1 -0
- package/dist/common/types/index.d.ts +1 -0
- package/dist/common/types/json.d.ts +12 -1
- package/dist/dataStructure/common/codec/defaults/string.cjs +1 -1
- package/dist/dataStructure/common/codec/defaults/string.d.ts +1 -1
- package/dist/dataStructure/common/codec/defaults/string.mjs +1 -1
- package/dist/dataStructure/common/{error.cjs → error/base.cjs} +18 -3
- package/dist/dataStructure/common/{error.d.ts → error/base.d.ts} +14 -7
- package/dist/dataStructure/common/{error.mjs → error/base.mjs} +17 -4
- package/dist/dataStructure/common/error/defaultInterpreter.cjs +87 -0
- package/dist/dataStructure/common/error/defaultInterpreter.d.ts +60 -0
- package/dist/dataStructure/common/error/defaultInterpreter.mjs +86 -0
- package/dist/dataStructure/common/error/index.d.ts +3 -0
- package/dist/dataStructure/common/{errorInterpreter.cjs → error/interpreter.cjs} +11 -12
- package/dist/dataStructure/common/error/interpreter.d.ts +32 -0
- package/dist/dataStructure/common/{errorInterpreter.mjs → error/interpreter.mjs} +9 -10
- package/dist/dataStructure/common/index.d.ts +0 -1
- package/dist/dataStructure/constraint/types/constraints.d.ts +1 -0
- package/dist/dataStructure/fundamentalType/types/fundamentalTypes.d.ts +1 -0
- package/dist/dataStructure/helpers/extend.cjs +1 -1
- package/dist/dataStructure/helpers/extend.d.ts +1 -1
- package/dist/dataStructure/helpers/extend.mjs +1 -1
- package/dist/dataStructure/helpers/index.d.ts +1 -0
- package/dist/dataStructure/helpers/partial.cjs +1 -1
- package/dist/dataStructure/helpers/partial.mjs +1 -1
- package/dist/dataStructure/helpers/required.cjs +1 -1
- package/dist/dataStructure/helpers/required.mjs +1 -1
- package/dist/dataStructure/helpers/typeStructureIdentifier.cjs +14 -0
- package/dist/dataStructure/helpers/typeStructureIdentifier.d.ts +6 -0
- package/dist/dataStructure/helpers/typeStructureIdentifier.mjs +14 -0
- package/dist/dataStructure/index.cjs +45 -33
- package/dist/dataStructure/index.mjs +10 -3
- package/dist/dataStructure/structure/base.cjs +31 -19
- package/dist/dataStructure/structure/base.d.ts +16 -16
- package/dist/dataStructure/structure/base.mjs +25 -13
- package/dist/dataStructure/structure/defaults/array.cjs +10 -0
- package/dist/dataStructure/structure/defaults/array.mjs +10 -0
- package/dist/dataStructure/structure/defaults/lazy.cjs +1 -0
- package/dist/dataStructure/structure/defaults/lazy.mjs +1 -0
- package/dist/dataStructure/structure/defaults/nonEncodableString.cjs +1 -0
- package/dist/dataStructure/structure/defaults/nonEncodableString.mjs +1 -0
- package/dist/dataStructure/structure/defaults/object.cjs +18 -7
- package/dist/dataStructure/structure/defaults/object.d.ts +2 -1
- package/dist/dataStructure/structure/defaults/object.mjs +18 -7
- package/dist/dataStructure/structure/defaults/record.cjs +20 -7
- package/dist/dataStructure/structure/defaults/record.mjs +20 -7
- package/dist/dataStructure/structure/defaults/type.cjs +1 -0
- package/dist/dataStructure/structure/defaults/type.mjs +1 -0
- package/dist/dataStructure/structure/defaults/union.cjs +26 -6
- package/dist/dataStructure/structure/defaults/union.mjs +21 -1
- package/dist/dataStructure/structure/types/value.d.ts +2 -0
- package/dist/dataStructure/type/types/types.d.ts +1 -0
- package/dist/either/index.cjs +1 -1
- package/dist/either/index.mjs +1 -1
- package/dist/either/left/create.d.ts +2 -1
- package/dist/either/left/none.cjs +2 -2
- package/dist/either/left/none.d.ts +2 -2
- package/dist/either/left/none.mjs +2 -2
- package/dist/either/right/create.d.ts +2 -1
- package/dist/either/types/index.d.ts +1 -0
- package/dist/either/types/mayBe.d.ts +1 -1
- package/dist/invocation/evidence.d.ts +1 -1
- package/dist/invocation/flow/base.cjs +4 -4
- package/dist/invocation/flow/base.d.ts +1 -1
- package/dist/invocation/flow/base.mjs +4 -4
- package/dist/invocation/flow/controller/defaults/debounce.cjs +1 -1
- package/dist/invocation/flow/controller/defaults/debounce.mjs +1 -1
- package/dist/invocation/flow/controller/defaults/throttling.cjs +1 -1
- package/dist/invocation/flow/controller/defaults/throttling.mjs +1 -1
- package/dist/invocation/index.cjs +10 -0
- package/dist/invocation/index.d.ts +2 -0
- package/dist/invocation/index.mjs +7 -1
- package/dist/invocation/reader.cjs +5 -1
- package/dist/invocation/reader.d.ts +5 -3
- package/dist/invocation/reader.mjs +5 -1
- package/dist/invocation/resolver.cjs +31 -0
- package/dist/invocation/resolver.d.ts +14 -0
- package/dist/invocation/resolver.mjs +31 -0
- package/dist/invocation/signature.cjs +8 -0
- package/dist/invocation/signature.d.ts +7 -0
- package/dist/invocation/signature.mjs +8 -0
- package/dist/modeling/entity/base.cjs +19 -25
- package/dist/modeling/entity/base.d.ts +15 -14
- package/dist/modeling/entity/base.mjs +14 -19
- package/dist/modeling/entity/helper.d.ts +6 -8
- package/dist/modeling/entity/namespace.cjs +0 -2
- package/dist/modeling/entity/namespace.d.ts +0 -2
- package/dist/modeling/entity/namespace.mjs +0 -2
- package/dist/modeling/fact/base.cjs +36 -0
- package/dist/modeling/fact/base.d.ts +29 -0
- package/dist/modeling/fact/base.mjs +35 -0
- package/dist/modeling/fact/index.d.ts +1 -0
- package/dist/modeling/flag/base.cjs +1 -1
- package/dist/modeling/flag/base.d.ts +8 -8
- package/dist/modeling/flag/base.mjs +1 -1
- package/dist/modeling/index.cjs +17 -18
- package/dist/modeling/index.d.ts +1 -0
- package/dist/modeling/index.mjs +8 -8
- package/dist/modeling/newType/base.cjs +11 -28
- package/dist/modeling/newType/base.d.ts +8 -15
- package/dist/modeling/newType/base.mjs +5 -20
- package/dist/modeling/taggedObject/base.cjs +19 -25
- package/dist/modeling/taggedObject/base.d.ts +12 -14
- package/dist/modeling/taggedObject/base.mjs +14 -19
- package/dist/object/assign.d.ts +3 -3
- package/dist/object/deepOverride.cjs +33 -0
- package/dist/object/deepOverride.d.ts +20 -0
- package/dist/object/deepOverride.mjs +33 -0
- package/dist/object/entries.d.ts +3 -3
- package/dist/object/index.cjs +4 -1
- package/dist/object/index.d.ts +1 -0
- package/dist/object/index.mjs +4 -2
- package/dist/object/isSimple.cjs +1 -1
- package/dist/object/isSimple.mjs +1 -1
- package/dist/object/keys.d.ts +1 -1
- package/dist/object/override.cjs +1 -1
- package/dist/object/override.d.ts +5 -2
- package/dist/object/override.mjs +1 -1
- package/dist/object/types/assign.d.ts +2 -0
- package/dist/object/types/forbiddenKey.d.ts +1 -1
- package/dist/object/types/hasKeySignature.d.ts +1 -0
- package/dist/object/types/index.d.ts +4 -1
- package/dist/object/types/keyofWithoutSignature.d.ts +3 -0
- package/dist/object/types/override.d.ts +4 -0
- package/dist/object/values.d.ts +1 -1
- package/dist/path/create.cjs +11 -0
- package/dist/path/create.d.ts +3 -0
- package/dist/path/create.mjs +11 -0
- package/dist/path/createAbsolute.cjs +12 -0
- package/dist/path/createAbsolute.d.ts +3 -0
- package/dist/path/createAbsolute.mjs +12 -0
- package/dist/path/createAbsoluteOrThrow.cjs +22 -0
- package/dist/path/createAbsoluteOrThrow.d.ts +9 -0
- package/dist/path/createAbsoluteOrThrow.mjs +21 -0
- package/dist/path/createOrThrow.cjs +22 -0
- package/dist/path/createOrThrow.d.ts +9 -0
- package/dist/path/createOrThrow.mjs +21 -0
- package/dist/path/createSegment.cjs +12 -0
- package/dist/path/createSegment.d.ts +3 -0
- package/dist/path/createSegment.mjs +12 -0
- package/dist/path/createSegmentOrThrow.cjs +22 -0
- package/dist/path/createSegmentOrThrow.d.ts +9 -0
- package/dist/path/createSegmentOrThrow.mjs +21 -0
- package/dist/path/declareAbsolutePath.cjs +6 -0
- package/dist/path/declareAbsolutePath.d.ts +3 -0
- package/dist/path/declareAbsolutePath.mjs +6 -0
- package/dist/path/declarePath.cjs +6 -0
- package/dist/path/declarePath.d.ts +3 -0
- package/dist/path/declarePath.mjs +6 -0
- package/dist/path/declareSegment.cjs +6 -0
- package/dist/path/declareSegment.d.ts +3 -0
- package/dist/path/declareSegment.mjs +6 -0
- package/dist/path/index.cjs +39 -3
- package/dist/path/index.d.ts +10 -0
- package/dist/path/index.mjs +27 -4
- package/dist/path/kind.cjs +4 -0
- package/dist/path/kind.d.ts +2 -0
- package/dist/path/kind.mjs +5 -0
- package/dist/pattern/index.cjs +6 -0
- package/dist/pattern/index.d.ts +2 -0
- package/dist/pattern/index.mjs +5 -1
- package/dist/pattern/match/builder.cjs +1 -1
- package/dist/pattern/match/builder.mjs +1 -1
- package/dist/pattern/matchWithEntityOtherwise.d.ts +2 -2
- package/dist/pattern/matchWithFact.cjs +12 -0
- package/dist/pattern/matchWithFact.d.ts +12 -0
- package/dist/pattern/matchWithFact.mjs +12 -0
- package/dist/pattern/matchWithFactOtherwise.cjs +13 -0
- package/dist/pattern/matchWithFactOtherwise.d.ts +14 -0
- package/dist/pattern/matchWithFactOtherwise.mjs +13 -0
- package/dist/pattern/matchWithNumberOtherwise.d.ts +2 -2
- package/dist/pattern/matchWithStringOtherwise.d.ts +2 -2
- package/dist/pattern/matchWithTaggedObjectOtherwise.d.ts +2 -2
- package/dist/pattern/types/complexUnMatchedValue/getIncompleteUnion.d.ts +8 -8
- package/dist/string/capitalize.d.ts +1 -1
- package/dist/string/concat.d.ts +2 -2
- package/dist/string/prepend.d.ts +2 -2
- package/dist/string/split.cjs +1 -0
- package/dist/string/split.d.ts +3 -3
- package/dist/string/split.mjs +1 -0
- package/dist/string/toLowerCase.d.ts +1 -1
- package/dist/string/toUpperCase.d.ts +1 -1
- package/dist/string/types/IsAllowedString.d.ts +4 -2
- package/dist/string/uncapitalize.d.ts +1 -1
- package/dist/tuple/types/map.d.ts +1 -1
- package/package.json +16 -30
- package/dist/dataStructure/common/errorInterpreter.d.ts +0 -36
- package/dist/object/types/assignObjects.d.ts +0 -2
- /package/{README.md → README} +0 -0
|
@@ -14,8 +14,9 @@ import { TheUndefined, undefinedFundamentalTypeKind } from "./fundamentalType/de
|
|
|
14
14
|
import { fundamentalTypeIdentifier } from "./fundamentalType/identifier.mjs";
|
|
15
15
|
import { codecsJson } from "./common/codec/defaults/json.mjs";
|
|
16
16
|
import { codecsString } from "./common/codec/defaults/string.mjs";
|
|
17
|
-
import { createErrorHandler, createGetErrorHandler, decodeIssueKind, encodeIssueKind, issueKind } from "./common/error.mjs";
|
|
18
|
-
import { createErrorInterpreter } from "./common/
|
|
17
|
+
import { Error, ErrorPromise, createErrorHandler, createGetErrorHandler, decodeIssueKind, encodeIssueKind, issueKind } from "./common/error/base.mjs";
|
|
18
|
+
import { createErrorInterpreter } from "./common/error/interpreter.mjs";
|
|
19
|
+
import { defaultErrorInterpreterCodecDictionary, defaultErrorInterpreterDataStructureDictionary } from "./common/error/defaultInterpreter.mjs";
|
|
19
20
|
import { ConstraintBase, constraintKind, createConstraint } from "./constraint/base.mjs";
|
|
20
21
|
import { AbsolutePathConstraint, absolutePathConstraintKind } from "./constraint/defaults/absolutePath.mjs";
|
|
21
22
|
import { AllowedCharactersConstraint, allowedCharactersConstraintKind } from "./constraint/defaults/allowedCharacters.mjs";
|
|
@@ -130,6 +131,7 @@ import { string } from "./helpers/string.mjs";
|
|
|
130
131
|
import { stringLengthEqual } from "./helpers/stringLengthEqual.mjs";
|
|
131
132
|
import { time } from "./helpers/time.mjs";
|
|
132
133
|
import { trimmed } from "./helpers/trimmed.mjs";
|
|
134
|
+
import { typeStructureIdentifier } from "./helpers/typeStructureIdentifier.mjs";
|
|
133
135
|
import { unwrapLazy } from "./helpers/unwrapLazy.mjs";
|
|
134
136
|
import { url } from "./helpers/url.mjs";
|
|
135
137
|
import { uuid } from "./helpers/uuid.mjs";
|
|
@@ -148,6 +150,8 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
|
|
|
148
150
|
ConstraintBase: () => ConstraintBase,
|
|
149
151
|
DateType: () => DateType,
|
|
150
152
|
EmailConstraint: () => EmailConstraint,
|
|
153
|
+
Error: () => Error,
|
|
154
|
+
ErrorPromise: () => ErrorPromise,
|
|
151
155
|
ErrorSymbol: () => ErrorSymbol,
|
|
152
156
|
EvenConstraint: () => EvenConstraint,
|
|
153
157
|
GreaterThanConstraint: () => GreaterThanConstraint,
|
|
@@ -240,6 +244,8 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
|
|
|
240
244
|
dateFundamentalTypeKind: () => dateFundamentalTypeKind,
|
|
241
245
|
dateTypeKind: () => dateTypeKind,
|
|
242
246
|
decodeIssueKind: () => decodeIssueKind,
|
|
247
|
+
defaultErrorInterpreterCodecDictionary: () => defaultErrorInterpreterCodecDictionary,
|
|
248
|
+
defaultErrorInterpreterDataStructureDictionary: () => defaultErrorInterpreterDataStructureDictionary,
|
|
243
249
|
email: () => email,
|
|
244
250
|
emailConstraintKind: () => emailConstraintKind,
|
|
245
251
|
encodeIssueKind: () => encodeIssueKind,
|
|
@@ -333,6 +339,7 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
|
|
|
333
339
|
trimmedConstraintKind: () => trimmedConstraintKind,
|
|
334
340
|
typeIdentifier: () => typeIdentifier,
|
|
335
341
|
typeKind: () => typeKind,
|
|
342
|
+
typeStructureIdentifier: () => typeStructureIdentifier,
|
|
336
343
|
typeStructureKind: () => typeStructureKind,
|
|
337
344
|
undefined: () => undefinedHelper,
|
|
338
345
|
undefinedFundamentalTypeKind: () => undefinedFundamentalTypeKind,
|
|
@@ -346,4 +353,4 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
|
|
|
346
353
|
uuidConstraintKind: () => uuidConstraintKind
|
|
347
354
|
});
|
|
348
355
|
//#endregion
|
|
349
|
-
export { AbsolutePathConstraint, AllowedCharactersConstraint, ArrayLengthEqualConstraint, ArrayStructure, BetweenThanConstraint, BetweenThanOrEqualConstraint, BigintLiteralType, BigintType, BooleanLiteralType, BooleanType, ConstraintBase, DateType, EmailConstraint, ErrorSymbol, EvenConstraint, GreaterThanConstraint, GreaterThanOrEqualConstraint, IntegerConstraint, LazyStructure, LessThanConstraint, LessThanOrEqualConstraint, MaxCharactersConstraint, MaxElementsConstraint, MinCharactersConstraint, MinElementsConstraint, MultipleOfConstraint, NegativeConstraint, NonEncodableStringStructure, NotEmptyConstraint, NotZeroConstraint, NullType, NumberInStringConstraint, NumberLiteralType, NumberType, ObjectStructure, OddConstraint, PathConstraint, PositiveConstraint, RecordStructure, RefineConstraint, RegexConstraint, SafeConstraint, SegmentPathConstraint, StrictNegativeConstraint, StrictPositiveConstraint, StringLengthEqualConstraint, StringLiteralType, StringType, StructureClass, SuccessSymbol, TheBigint, TheBoolean, TheDate, TheNull, TheNumber, TheString, TheTime, TheUndefined, TimeType, TrimmedConstraint, TypeStructure, UndefinedType, UnionStructure, UrlConstraint, UuidConstraint, absolutePath, absolutePathConstraintKind, allowedCharacters, allowedCharactersConstraintKind, array, arrayLengthEqual, arrayLengthEqualConstraintKind, arrayStructureKind, betweenThan, betweenThanConstraintKind, betweenThanOrEqual, betweenThanOrEqualConstraintKind, bigint, bigintFundamentalTypeKind, bigintLiteralTypeKind, bigintTypeKind, boolean, booleanFundamentalTypeKind, booleanLiteralTypeKind, booleanTypeKind, codecKind, codecsJson, codecsKind, codecsString, 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, isNullable, isOptional, isUndefinedStructure, issueKind, lazy, lazyStructureKind, lessThan, lessThanConstraintKind, lessThanOrEqual, lessThanOrEqualConstraintKind, literal, maxCharacters, maxCharactersConstraintKind, maxElements, maxElementsConstraintKind, minCharacters, minCharactersConstraintKind, minElements, minElementsConstraintKind, multipleOf, multipleOfConstraintKind, negative, negativeConstraintKind, nonEncodableStringStructureKind, notEmpty, notEmptyConstraintKind, notZero, notZeroConstraintKind, nullHelper as null, nullFundamentalTypeKind, nullTypeKind, nullable, number, numberFundamentalTypeKind, numberInString, numberInStringConstraintKind, numberLiteralTypeKind, numberTypeKind, object, objectStructureKind, odd, oddConstraintKind, optional, partial, path, pathConstraintKind, positive, positiveConstraintKind, record, recordStructureKind, refine, refineConstraintKind, regex, regexConstraintKind, required, safe, safeConstraintKind, segmentPath, segmentPathConstraintKind, strictNegative, strictNegativeConstraintKind, strictPositive, strictPositiveConstraintKind, string, stringFundamentalTypeKind, stringLengthEqual, stringLengthEqualConstraintKind, stringLiteralTypeKind, stringTypeKind, structureIdentifier, structureKind, time, timeFundamentalTypeKind, timeTypeKind, trimmed, trimmedConstraintKind, typeIdentifier, typeKind, typeStructureKind, undefinedHelper as undefined, undefinedFundamentalTypeKind, undefinedTypeKind, union, unionStructureKind, unwrapLazy, url, urlConstraintKind, uuid, uuidConstraintKind };
|
|
356
|
+
export { AbsolutePathConstraint, AllowedCharactersConstraint, ArrayLengthEqualConstraint, ArrayStructure, BetweenThanConstraint, BetweenThanOrEqualConstraint, BigintLiteralType, BigintType, BooleanLiteralType, BooleanType, ConstraintBase, DateType, EmailConstraint, Error, ErrorPromise, ErrorSymbol, EvenConstraint, GreaterThanConstraint, GreaterThanOrEqualConstraint, IntegerConstraint, LazyStructure, LessThanConstraint, LessThanOrEqualConstraint, MaxCharactersConstraint, MaxElementsConstraint, MinCharactersConstraint, MinElementsConstraint, MultipleOfConstraint, NegativeConstraint, NonEncodableStringStructure, NotEmptyConstraint, NotZeroConstraint, NullType, NumberInStringConstraint, NumberLiteralType, NumberType, ObjectStructure, OddConstraint, PathConstraint, PositiveConstraint, RecordStructure, RefineConstraint, RegexConstraint, SafeConstraint, SegmentPathConstraint, StrictNegativeConstraint, StrictPositiveConstraint, StringLengthEqualConstraint, StringLiteralType, StringType, StructureClass, SuccessSymbol, TheBigint, TheBoolean, TheDate, TheNull, TheNumber, TheString, TheTime, TheUndefined, TimeType, TrimmedConstraint, TypeStructure, UndefinedType, UnionStructure, UrlConstraint, UuidConstraint, absolutePath, absolutePathConstraintKind, allowedCharacters, allowedCharactersConstraintKind, array, arrayLengthEqual, arrayLengthEqualConstraintKind, arrayStructureKind, betweenThan, betweenThanConstraintKind, betweenThanOrEqual, betweenThanOrEqualConstraintKind, bigint, bigintFundamentalTypeKind, bigintLiteralTypeKind, bigintTypeKind, boolean, booleanFundamentalTypeKind, booleanLiteralTypeKind, booleanTypeKind, codecKind, codecsJson, codecsKind, codecsString, constraintIdentifier, constraintKind, createCodec, createCodecs, createConstraint, createErrorHandler, createErrorInterpreter, createFundamentalType, createGetErrorHandler, createKind, createStructure, createType, dataStructure_exports, date, dateFundamentalTypeKind, dateTypeKind, decodeIssueKind, defaultErrorInterpreterCodecDictionary, defaultErrorInterpreterDataStructureDictionary, email, emailConstraintKind, encodeIssueKind, even, evenConstraintKind, extend, fundamentalTypeIdentifier, fundamentalTypeKind, greaterThan, greaterThanConstraintKind, greaterThanOrEqual, greaterThanOrEqualConstraintKind, integer, integerConstraintKind, isNullStructure, isNullable, isOptional, isUndefinedStructure, issueKind, lazy, lazyStructureKind, lessThan, lessThanConstraintKind, lessThanOrEqual, lessThanOrEqualConstraintKind, literal, maxCharacters, maxCharactersConstraintKind, maxElements, maxElementsConstraintKind, minCharacters, minCharactersConstraintKind, minElements, minElementsConstraintKind, multipleOf, multipleOfConstraintKind, negative, negativeConstraintKind, nonEncodableStringStructureKind, notEmpty, notEmptyConstraintKind, notZero, notZeroConstraintKind, nullHelper as null, nullFundamentalTypeKind, nullTypeKind, nullable, number, numberFundamentalTypeKind, numberInString, numberInStringConstraintKind, numberLiteralTypeKind, numberTypeKind, object, objectStructureKind, odd, oddConstraintKind, optional, partial, path, pathConstraintKind, positive, positiveConstraintKind, record, recordStructureKind, refine, refineConstraintKind, regex, regexConstraintKind, required, safe, safeConstraintKind, segmentPath, segmentPathConstraintKind, strictNegative, strictNegativeConstraintKind, strictPositive, strictPositiveConstraintKind, string, stringFundamentalTypeKind, stringLengthEqual, stringLengthEqualConstraintKind, stringLiteralTypeKind, stringTypeKind, structureIdentifier, structureKind, time, timeFundamentalTypeKind, timeTypeKind, trimmed, trimmedConstraintKind, typeIdentifier, typeKind, typeStructureIdentifier, typeStructureKind, undefinedHelper as undefined, undefinedFundamentalTypeKind, undefinedTypeKind, union, unionStructureKind, unwrapLazy, url, urlConstraintKind, uuid, uuidConstraintKind };
|
|
@@ -5,7 +5,7 @@ const require_create$1 = require("../../either/right/create.cjs");
|
|
|
5
5
|
const require_simpleClone = require("../../common/simpleClone.cjs");
|
|
6
6
|
const require_kind = require("../kind.cjs");
|
|
7
7
|
const require_resultSymbol = require("../common/resultSymbol.cjs");
|
|
8
|
-
const
|
|
8
|
+
const require_base = require("../common/error/base.cjs");
|
|
9
9
|
//#region scripts/dataStructure/structure/base.ts
|
|
10
10
|
var StructureClass = class StructureClass {
|
|
11
11
|
constructor() {}
|
|
@@ -23,7 +23,7 @@ var StructureClass = class StructureClass {
|
|
|
23
23
|
};
|
|
24
24
|
const structureKind = require_kind.createKind("structure");
|
|
25
25
|
function createStructure(kindHandler, createConstructor) {
|
|
26
|
-
const init = (definition, { executeCheck, executeEncode, executeDecode, isAsynchronous }, ...rest) => {
|
|
26
|
+
const init = (definition, { executeCheck, executeEncode, executeDecode, executeParse, isAsynchronous }, ...rest) => {
|
|
27
27
|
let cachedIsAsynchronous = void 0;
|
|
28
28
|
const self = StructureClass.init({
|
|
29
29
|
...Object.fromEntries(Object.entries(rest[0] ?? {}).map(([key, prop]) => typeof prop === "function" ? [key, (...args) => prop(self, ...args)] : [key, prop])),
|
|
@@ -35,12 +35,14 @@ function createStructure(kindHandler, createConstructor) {
|
|
|
35
35
|
executeCheck,
|
|
36
36
|
executeEncode,
|
|
37
37
|
executeDecode,
|
|
38
|
+
executeParse,
|
|
38
39
|
isAsynchronous
|
|
39
40
|
}, ...rest),
|
|
40
41
|
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),
|
|
41
42
|
executeCheck: (data, errorHandler) => require_callThen.callThen(executeCheck(self, data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : self.executeConstraints(data, errorHandler)),
|
|
42
43
|
executeEncode: (codecContext, data, errorHandler) => executeEncode(self, codecContext, data, errorHandler),
|
|
43
44
|
executeDecode: (codecContext, data, errorHandler) => executeDecode(self, codecContext, data, errorHandler),
|
|
45
|
+
executeParse: (codecContext, data, errorHandler) => executeParse(self, codecContext, data, errorHandler),
|
|
44
46
|
isAsynchronous: () => {
|
|
45
47
|
if (cachedIsAsynchronous !== void 0) return cachedIsAsynchronous;
|
|
46
48
|
cachedIsAsynchronous = false;
|
|
@@ -50,14 +52,14 @@ function createStructure(kindHandler, createConstructor) {
|
|
|
50
52
|
return cachedIsAsynchronous;
|
|
51
53
|
},
|
|
52
54
|
check: (data) => {
|
|
53
|
-
const errorHandler =
|
|
55
|
+
const errorHandler = require_base.createGetErrorHandler();
|
|
54
56
|
const result = self.executeCheck(data, errorHandler);
|
|
55
|
-
if (result instanceof Promise) return require_create.left("async-error",
|
|
57
|
+
if (result instanceof Promise) return require_create.left("async-error", new require_base.ErrorPromise());
|
|
56
58
|
if (result === require_resultSymbol.ErrorSymbol) return require_create.left("check-error", errorHandler().createError());
|
|
57
59
|
return require_create$1.right("check-success", data);
|
|
58
60
|
},
|
|
59
61
|
asyncCheck: async (data) => {
|
|
60
|
-
const errorHandler =
|
|
62
|
+
const errorHandler = require_base.createGetErrorHandler();
|
|
61
63
|
if (await self.executeCheck(data, errorHandler) === require_resultSymbol.ErrorSymbol) return require_create.left("check-error", errorHandler().createError());
|
|
62
64
|
return require_create$1.right("check-success", data);
|
|
63
65
|
},
|
|
@@ -66,41 +68,51 @@ function createStructure(kindHandler, createConstructor) {
|
|
|
66
68
|
if (result instanceof Promise || result === require_resultSymbol.ErrorSymbol) return false;
|
|
67
69
|
return true;
|
|
68
70
|
},
|
|
69
|
-
encode: (codecs, data) =>
|
|
70
|
-
|
|
71
|
-
unsafeEncode: (codecs, data) => {
|
|
72
|
-
const errorHandler = require_error.createGetErrorHandler();
|
|
71
|
+
encode: (codecs, data) => {
|
|
72
|
+
const errorHandler = require_base.createGetErrorHandler();
|
|
73
73
|
const result = self.executeEncode(codecs.context.value, data, errorHandler);
|
|
74
|
-
if (result instanceof Promise) return require_create.left("async-error",
|
|
74
|
+
if (result instanceof Promise) return require_create.left("async-error", new require_base.ErrorPromise());
|
|
75
75
|
if (result === require_resultSymbol.ErrorSymbol) return require_create.left("encode-error", errorHandler().createError());
|
|
76
76
|
return require_create$1.right("encode-success", result);
|
|
77
77
|
},
|
|
78
|
-
|
|
79
|
-
const errorHandler =
|
|
78
|
+
asyncEncode: async (codecs, data) => {
|
|
79
|
+
const errorHandler = require_base.createGetErrorHandler();
|
|
80
80
|
const result = await self.executeEncode(codecs.context.value, data, errorHandler);
|
|
81
81
|
if (result === require_resultSymbol.ErrorSymbol) return require_create.left("encode-error", errorHandler().createError());
|
|
82
82
|
return require_create$1.right("encode-success", result);
|
|
83
83
|
},
|
|
84
|
-
decode: (codecs, data) =>
|
|
85
|
-
|
|
86
|
-
unsafeDecode: (codecs, data) => {
|
|
87
|
-
const errorHandler = require_error.createGetErrorHandler();
|
|
84
|
+
decode: (codecs, data) => {
|
|
85
|
+
const errorHandler = require_base.createGetErrorHandler();
|
|
88
86
|
const result = self.executeDecode(codecs.context.value, data, errorHandler);
|
|
89
|
-
if (result instanceof Promise) return require_create.left("async-error",
|
|
87
|
+
if (result instanceof Promise) return require_create.left("async-error", new require_base.ErrorPromise());
|
|
90
88
|
if (result === require_resultSymbol.ErrorSymbol) return require_create.left("decode-error", errorHandler().createError());
|
|
91
89
|
return require_create$1.right("decode-success", result);
|
|
92
90
|
},
|
|
93
|
-
|
|
94
|
-
const errorHandler =
|
|
91
|
+
asyncDecode: async (codecs, data) => {
|
|
92
|
+
const errorHandler = require_base.createGetErrorHandler();
|
|
95
93
|
const result = await self.executeDecode(codecs.context.value, data, errorHandler);
|
|
96
94
|
if (result === require_resultSymbol.ErrorSymbol) return require_create.left("decode-error", errorHandler().createError());
|
|
97
95
|
return require_create$1.right("decode-success", result);
|
|
98
96
|
},
|
|
97
|
+
parse: (data, codecs) => {
|
|
98
|
+
const errorHandler = require_base.createGetErrorHandler();
|
|
99
|
+
const result = self.executeParse(codecs?.context.value ?? /* @__PURE__ */ new Map(), data, errorHandler);
|
|
100
|
+
if (result instanceof Promise) return require_create.left("async-error", new require_base.ErrorPromise());
|
|
101
|
+
if (result === require_resultSymbol.ErrorSymbol) return require_create.left("parse-error", errorHandler().createError());
|
|
102
|
+
return require_create$1.right("parse-success", result);
|
|
103
|
+
},
|
|
104
|
+
asyncParse: async (data, codecs) => {
|
|
105
|
+
const errorHandler = require_base.createGetErrorHandler();
|
|
106
|
+
const result = await self.executeParse(codecs?.context.value ?? /* @__PURE__ */ new Map(), data, errorHandler);
|
|
107
|
+
if (result === require_resultSymbol.ErrorSymbol) return require_create.left("parse-error", errorHandler().createError());
|
|
108
|
+
return require_create$1.right("parse-success", result);
|
|
109
|
+
},
|
|
99
110
|
contract: () => self,
|
|
100
111
|
clone: () => init(require_simpleClone.simpleClone(definition), {
|
|
101
112
|
executeCheck,
|
|
102
113
|
executeEncode,
|
|
103
114
|
executeDecode,
|
|
115
|
+
executeParse,
|
|
104
116
|
isAsynchronous
|
|
105
117
|
}, ...rest),
|
|
106
118
|
setMessage: (message) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ErrorSymbol, GetErrorHandler, SuccessSymbol, EncodedValue, CodecContext, Error, Codecs } from '../common';
|
|
1
|
+
import { ErrorPromise, ErrorSymbol, GetErrorHandler, SuccessSymbol, EncodedValue, CodecContext, Error, Codecs } from '../common';
|
|
2
2
|
import { Constraint } from '../constraint';
|
|
3
|
-
import {
|
|
3
|
+
import { ComputeStructureValue } from './types';
|
|
4
4
|
import type * as DKind from '../../kind';
|
|
5
5
|
import * as DEither from '../../either';
|
|
6
6
|
import * as DCommon from '../../common';
|
|
@@ -14,26 +14,25 @@ export interface StructureDefinition<GenericConstraints extends readonly Constra
|
|
|
14
14
|
readonly message?: string;
|
|
15
15
|
readonly constraints: readonly [...GenericConstraints];
|
|
16
16
|
}
|
|
17
|
-
export interface Structure<out GenericValue extends unknown = unknown, out GenericDefinition extends StructureDefinition<readonly Constraint<GenericValue>[]> = StructureDefinition<readonly Constraint<GenericValue>[]>> extends DKind.Kind<typeof structureKind,
|
|
17
|
+
export interface Structure<out GenericValue extends unknown = unknown, out GenericDefinition extends StructureDefinition<readonly Constraint<unknown, GenericValue>[]> = StructureDefinition<readonly Constraint<unknown, GenericValue>[]>> extends DKind.Kind<typeof structureKind, ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>> {
|
|
18
18
|
readonly definition: GenericDefinition;
|
|
19
|
-
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<ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>, StructureDefinition<readonly [...this["definition"]["constraints"], ...GenericNewConstraints]>>;
|
|
20
20
|
executeConstraints(data: unknown, errorHandler?: GetErrorHandler): DCommon.MaybePromise<SuccessSymbol | ErrorSymbol>;
|
|
21
21
|
executeCheck(data: unknown, errorHandler?: GetErrorHandler): DCommon.MaybePromise<SuccessSymbol | ErrorSymbol>;
|
|
22
22
|
executeEncode(codecContext: CodecContext, data: unknown, errorHandler?: GetErrorHandler): unknown;
|
|
23
23
|
executeDecode(codecContext: CodecContext, data: unknown, errorHandler?: GetErrorHandler): unknown;
|
|
24
|
+
executeParse(codecContext: CodecContext, data: unknown, errorHandler?: GetErrorHandler): unknown;
|
|
24
25
|
isAsynchronous(): boolean;
|
|
25
|
-
check(data: unknown): (DEither.Right<"check-success",
|
|
26
|
-
asyncCheck(data: unknown): Promise<DEither.Right<"check-success",
|
|
27
|
-
is(data: unknown): data is
|
|
28
|
-
encode<GenericCodecs extends Codecs>(codecs: GenericCodecs, data:
|
|
29
|
-
asyncEncode<GenericCodecs extends Codecs>(codecs: GenericCodecs, data:
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
asyncUnsafeDecode(codecs: Codecs, data: unknown): Promise<DEither.Right<"decode-success", StructureValue<this>> | DEither.Left<"decode-error", Error>>;
|
|
36
|
-
contract<GenericValue extends unknown, GenericThis extends this>(...args: DCommon.IsEqual<StructureValue<GenericThis>, GenericValue> extends true ? [] : [] & DCommon.ComputedTypeError<"Contract error.">): Structure<GenericValue>;
|
|
26
|
+
check(data: unknown): (DEither.Right<"check-success", ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>> | DEither.Left<"async-error", ErrorPromise> | DEither.Left<"check-error", Error>);
|
|
27
|
+
asyncCheck(data: unknown): Promise<DEither.Right<"check-success", ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>> | DEither.Left<"check-error", Error>>;
|
|
28
|
+
is(data: unknown): data is ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>;
|
|
29
|
+
encode<GenericCodecs extends Codecs>(codecs: GenericCodecs, data: unknown): (DEither.Right<"encode-success", EncodedValue<ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>, GenericCodecs>> | DEither.Left<"async-error", ErrorPromise> | DEither.Left<"encode-error", Error>);
|
|
30
|
+
asyncEncode<GenericCodecs extends Codecs>(codecs: GenericCodecs, data: unknown): Promise<DEither.Right<"encode-success", EncodedValue<ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>, GenericCodecs>> | DEither.Left<"encode-error", Error>>;
|
|
31
|
+
decode<GenericCodecs extends Codecs>(codecs: GenericCodecs, data: unknown): (DEither.Right<"decode-success", ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>> | DEither.Left<"async-error", ErrorPromise> | DEither.Left<"decode-error", Error>);
|
|
32
|
+
asyncDecode<GenericCodecs extends Codecs>(codecs: GenericCodecs, data: unknown): Promise<DEither.Right<"decode-success", ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>> | DEither.Left<"decode-error", Error>>;
|
|
33
|
+
parse(data: unknown, codecs?: Codecs): (DEither.Right<"parse-success", ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>> | DEither.Left<"async-error", ErrorPromise> | DEither.Left<"parse-error", Error>);
|
|
34
|
+
asyncParse(data: unknown, codecs?: Codecs): Promise<DEither.Right<"parse-success", ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>> | DEither.Left<"parse-error", Error>>;
|
|
35
|
+
contract<GenericContractValue extends unknown, GenericArgs extends (DCommon.IsEqual<ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>, GenericContractValue> extends true ? [] : [] & DCommon.ComputedTypeError<"Contract error.">) = (DCommon.IsEqual<ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>, GenericContractValue> extends true ? [] : [] & DCommon.ComputedTypeError<"Contract error.">)>(...args: NoInfer<GenericArgs>): Structure<GenericContractValue>;
|
|
37
36
|
clone(): this;
|
|
38
37
|
setMessage(massage: string): this;
|
|
39
38
|
addMessage(massage: string): this;
|
|
@@ -42,6 +41,7 @@ export interface CreateStructureInitParams<GenericStructure extends Structure =
|
|
|
42
41
|
executeCheck(self: GenericStructure, data: unknown, errorHandler?: GetErrorHandler): DCommon.MaybePromise<SuccessSymbol | ErrorSymbol>;
|
|
43
42
|
executeEncode(self: GenericStructure, codecContext: CodecContext, data: unknown, errorHandler?: GetErrorHandler): unknown;
|
|
44
43
|
executeDecode(self: GenericStructure, codecContext: CodecContext, data: unknown, errorHandler?: GetErrorHandler): unknown;
|
|
44
|
+
executeParse(self: GenericStructure, codecContext: CodecContext, data: unknown, errorHandler?: GetErrorHandler): unknown;
|
|
45
45
|
isAsynchronous(self: GenericStructure): boolean;
|
|
46
46
|
}
|
|
47
47
|
export type CreateStructureInitRest<GenericStructure extends Structure = Structure> = {
|
|
@@ -5,7 +5,7 @@ import { right } from "../../either/right/create.mjs";
|
|
|
5
5
|
import { simpleClone } from "../../common/simpleClone.mjs";
|
|
6
6
|
import { createKind } from "../kind.mjs";
|
|
7
7
|
import { ErrorSymbol, SuccessSymbol } from "../common/resultSymbol.mjs";
|
|
8
|
-
import { createGetErrorHandler } from "../common/error.mjs";
|
|
8
|
+
import { ErrorPromise, createGetErrorHandler } from "../common/error/base.mjs";
|
|
9
9
|
//#region scripts/dataStructure/structure/base.ts
|
|
10
10
|
var StructureClass = class StructureClass {
|
|
11
11
|
constructor() {}
|
|
@@ -23,7 +23,7 @@ var StructureClass = class StructureClass {
|
|
|
23
23
|
};
|
|
24
24
|
const structureKind = createKind("structure");
|
|
25
25
|
function createStructure(kindHandler, createConstructor) {
|
|
26
|
-
const init = (definition, { executeCheck, executeEncode, executeDecode, isAsynchronous }, ...rest) => {
|
|
26
|
+
const init = (definition, { executeCheck, executeEncode, executeDecode, executeParse, isAsynchronous }, ...rest) => {
|
|
27
27
|
let cachedIsAsynchronous = void 0;
|
|
28
28
|
const self = StructureClass.init({
|
|
29
29
|
...Object.fromEntries(Object.entries(rest[0] ?? {}).map(([key, prop]) => typeof prop === "function" ? [key, (...args) => prop(self, ...args)] : [key, prop])),
|
|
@@ -35,12 +35,14 @@ function createStructure(kindHandler, createConstructor) {
|
|
|
35
35
|
executeCheck,
|
|
36
36
|
executeEncode,
|
|
37
37
|
executeDecode,
|
|
38
|
+
executeParse,
|
|
38
39
|
isAsynchronous
|
|
39
40
|
}, ...rest),
|
|
40
41
|
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),
|
|
41
42
|
executeCheck: (data, errorHandler) => callThen(executeCheck(self, data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : self.executeConstraints(data, errorHandler)),
|
|
42
43
|
executeEncode: (codecContext, data, errorHandler) => executeEncode(self, codecContext, data, errorHandler),
|
|
43
44
|
executeDecode: (codecContext, data, errorHandler) => executeDecode(self, codecContext, data, errorHandler),
|
|
45
|
+
executeParse: (codecContext, data, errorHandler) => executeParse(self, codecContext, data, errorHandler),
|
|
44
46
|
isAsynchronous: () => {
|
|
45
47
|
if (cachedIsAsynchronous !== void 0) return cachedIsAsynchronous;
|
|
46
48
|
cachedIsAsynchronous = false;
|
|
@@ -52,7 +54,7 @@ function createStructure(kindHandler, createConstructor) {
|
|
|
52
54
|
check: (data) => {
|
|
53
55
|
const errorHandler = createGetErrorHandler();
|
|
54
56
|
const result = self.executeCheck(data, errorHandler);
|
|
55
|
-
if (result instanceof Promise) return left("async-error",
|
|
57
|
+
if (result instanceof Promise) return left("async-error", new ErrorPromise());
|
|
56
58
|
if (result === ErrorSymbol) return left("check-error", errorHandler().createError());
|
|
57
59
|
return right("check-success", data);
|
|
58
60
|
},
|
|
@@ -66,41 +68,51 @@ function createStructure(kindHandler, createConstructor) {
|
|
|
66
68
|
if (result instanceof Promise || result === ErrorSymbol) return false;
|
|
67
69
|
return true;
|
|
68
70
|
},
|
|
69
|
-
encode: (codecs, data) =>
|
|
70
|
-
asyncEncode: (codecs, data) => self.asyncUnsafeEncode(codecs, data),
|
|
71
|
-
unsafeEncode: (codecs, data) => {
|
|
71
|
+
encode: (codecs, data) => {
|
|
72
72
|
const errorHandler = createGetErrorHandler();
|
|
73
73
|
const result = self.executeEncode(codecs.context.value, data, errorHandler);
|
|
74
|
-
if (result instanceof Promise) return left("async-error",
|
|
74
|
+
if (result instanceof Promise) return left("async-error", new ErrorPromise());
|
|
75
75
|
if (result === ErrorSymbol) return left("encode-error", errorHandler().createError());
|
|
76
76
|
return right("encode-success", result);
|
|
77
77
|
},
|
|
78
|
-
|
|
78
|
+
asyncEncode: async (codecs, data) => {
|
|
79
79
|
const errorHandler = createGetErrorHandler();
|
|
80
80
|
const result = await self.executeEncode(codecs.context.value, data, errorHandler);
|
|
81
81
|
if (result === ErrorSymbol) return left("encode-error", errorHandler().createError());
|
|
82
82
|
return right("encode-success", result);
|
|
83
83
|
},
|
|
84
|
-
decode: (codecs, data) =>
|
|
85
|
-
asyncDecode: (codecs, data) => self.asyncUnsafeDecode(codecs, data),
|
|
86
|
-
unsafeDecode: (codecs, data) => {
|
|
84
|
+
decode: (codecs, data) => {
|
|
87
85
|
const errorHandler = createGetErrorHandler();
|
|
88
86
|
const result = self.executeDecode(codecs.context.value, data, errorHandler);
|
|
89
|
-
if (result instanceof Promise) return left("async-error",
|
|
87
|
+
if (result instanceof Promise) return left("async-error", new ErrorPromise());
|
|
90
88
|
if (result === ErrorSymbol) return left("decode-error", errorHandler().createError());
|
|
91
89
|
return right("decode-success", result);
|
|
92
90
|
},
|
|
93
|
-
|
|
91
|
+
asyncDecode: async (codecs, data) => {
|
|
94
92
|
const errorHandler = createGetErrorHandler();
|
|
95
93
|
const result = await self.executeDecode(codecs.context.value, data, errorHandler);
|
|
96
94
|
if (result === ErrorSymbol) return left("decode-error", errorHandler().createError());
|
|
97
95
|
return right("decode-success", result);
|
|
98
96
|
},
|
|
97
|
+
parse: (data, codecs) => {
|
|
98
|
+
const errorHandler = createGetErrorHandler();
|
|
99
|
+
const result = self.executeParse(codecs?.context.value ?? /* @__PURE__ */ new Map(), data, errorHandler);
|
|
100
|
+
if (result instanceof Promise) return left("async-error", new ErrorPromise());
|
|
101
|
+
if (result === ErrorSymbol) return left("parse-error", errorHandler().createError());
|
|
102
|
+
return right("parse-success", result);
|
|
103
|
+
},
|
|
104
|
+
asyncParse: async (data, codecs) => {
|
|
105
|
+
const errorHandler = createGetErrorHandler();
|
|
106
|
+
const result = await self.executeParse(codecs?.context.value ?? /* @__PURE__ */ new Map(), data, errorHandler);
|
|
107
|
+
if (result === ErrorSymbol) return left("parse-error", errorHandler().createError());
|
|
108
|
+
return right("parse-success", result);
|
|
109
|
+
},
|
|
99
110
|
contract: () => self,
|
|
100
111
|
clone: () => init(simpleClone(definition), {
|
|
101
112
|
executeCheck,
|
|
102
113
|
executeEncode,
|
|
103
114
|
executeDecode,
|
|
115
|
+
executeParse,
|
|
104
116
|
isAsynchronous
|
|
105
117
|
}, ...rest),
|
|
106
118
|
setMessage: (message) => {
|
|
@@ -37,6 +37,16 @@ const ArrayStructure = require_base.createStructure(arrayStructureKind, ({ init
|
|
|
37
37
|
})), []);
|
|
38
38
|
return require_callThen.callThen(decodedData, (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedDecodedData)));
|
|
39
39
|
},
|
|
40
|
+
executeParse: (self, codecContext, data, errorHandler) => {
|
|
41
|
+
if (!Array.isArray(data)) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
42
|
+
const pathStage = errorHandler?.().createPathStage();
|
|
43
|
+
const parsedData = data.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`[array: ${index}]`) ?? require_callThen.callThen(self.definition.element.executeParse(codecContext, value, errorHandler), (parsedData) => {
|
|
44
|
+
if (parsedData === require_resultSymbol.ErrorSymbol || awaitedAccumulator === require_resultSymbol.ErrorSymbol) return require_resultSymbol.ErrorSymbol;
|
|
45
|
+
awaitedAccumulator[index] = parsedData;
|
|
46
|
+
return awaitedAccumulator;
|
|
47
|
+
})), []);
|
|
48
|
+
return require_callThen.callThen(parsedData, (awaitedParsedData) => pathStage?.close() ?? (awaitedParsedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(awaitedParsedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedParsedData)));
|
|
49
|
+
},
|
|
40
50
|
isAsynchronous: (self) => self.definition.element.isAsynchronous()
|
|
41
51
|
}));
|
|
42
52
|
//#endregion
|
|
@@ -37,6 +37,16 @@ const ArrayStructure = createStructure(arrayStructureKind, ({ init }) => (elemen
|
|
|
37
37
|
})), []);
|
|
38
38
|
return callThen(decodedData, (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData)));
|
|
39
39
|
},
|
|
40
|
+
executeParse: (self, codecContext, data, errorHandler) => {
|
|
41
|
+
if (!Array.isArray(data)) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
42
|
+
const pathStage = errorHandler?.().createPathStage();
|
|
43
|
+
const parsedData = data.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`[array: ${index}]`) ?? callThen(self.definition.element.executeParse(codecContext, value, errorHandler), (parsedData) => {
|
|
44
|
+
if (parsedData === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
|
|
45
|
+
awaitedAccumulator[index] = parsedData;
|
|
46
|
+
return awaitedAccumulator;
|
|
47
|
+
})), []);
|
|
48
|
+
return callThen(parsedData, (awaitedParsedData) => pathStage?.close() ?? (awaitedParsedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedParsedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedParsedData)));
|
|
49
|
+
},
|
|
40
50
|
isAsynchronous: (self) => self.definition.element.isAsynchronous()
|
|
41
51
|
}));
|
|
42
52
|
//#endregion
|
|
@@ -17,6 +17,7 @@ const LazyStructure = require_base.createStructure(lazyStructureKind, ({ init })
|
|
|
17
17
|
executeCheck: (self, data, errorHandler) => self.definition.getter.value.executeCheck(data, errorHandler),
|
|
18
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
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)),
|
|
20
|
+
executeParse: (self, codecContext, data, errorHandler) => require_callThen.callThen(self.definition.getter.value.executeParse(codecContext, data, errorHandler), (parsedData) => parsedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(parsedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : parsedData)),
|
|
20
21
|
isAsynchronous: (self) => self.definition.getter.value.isAsynchronous()
|
|
21
22
|
}));
|
|
22
23
|
//#endregion
|
|
@@ -17,6 +17,7 @@ const LazyStructure = createStructure(lazyStructureKind, ({ init }) => (getStruc
|
|
|
17
17
|
executeCheck: (self, data, errorHandler) => self.definition.getter.value.executeCheck(data, errorHandler),
|
|
18
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
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)),
|
|
20
|
+
executeParse: (self, codecContext, data, errorHandler) => callThen(self.definition.getter.value.executeParse(codecContext, data, errorHandler), (parsedData) => parsedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(parsedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : parsedData)),
|
|
20
21
|
isAsynchronous: (self) => self.definition.getter.value.isAsynchronous()
|
|
21
22
|
}));
|
|
22
23
|
//#endregion
|
|
@@ -10,6 +10,7 @@ const NonEncodableStringStructure = require_base.createStructure(nonEncodableStr
|
|
|
10
10
|
executeCheck: (self, data, errorHandler) => data === self.definition.value ? require_resultSymbol.SuccessSymbol : errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol,
|
|
11
11
|
executeEncode: (self, codecContext, data, errorHandler) => data === self.definition.value ? data : errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol,
|
|
12
12
|
executeDecode: (self, codecContext, data, errorHandler) => data === self.definition.value ? data : errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol,
|
|
13
|
+
executeParse: (self, codecContext, data, errorHandler) => self.executeDecode(codecContext, data, errorHandler),
|
|
13
14
|
isAsynchronous: () => false
|
|
14
15
|
}));
|
|
15
16
|
//#endregion
|
|
@@ -10,6 +10,7 @@ const NonEncodableStringStructure = createStructure(nonEncodableStringStructureK
|
|
|
10
10
|
executeCheck: (self, data, errorHandler) => data === self.definition.value ? SuccessSymbol : errorHandler?.().addIssue(self, data) ?? ErrorSymbol,
|
|
11
11
|
executeEncode: (self, codecContext, data, errorHandler) => data === self.definition.value ? data : errorHandler?.().addIssue(self, data) ?? ErrorSymbol,
|
|
12
12
|
executeDecode: (self, codecContext, data, errorHandler) => data === self.definition.value ? data : errorHandler?.().addIssue(self, data) ?? ErrorSymbol,
|
|
13
|
+
executeParse: (self, codecContext, data, errorHandler) => self.executeDecode(codecContext, data, errorHandler),
|
|
13
14
|
isAsynchronous: () => false
|
|
14
15
|
}));
|
|
15
16
|
//#endregion
|
|
@@ -7,10 +7,11 @@ const require_base = require("../base.cjs");
|
|
|
7
7
|
//#region scripts/dataStructure/structure/defaults/object.ts
|
|
8
8
|
const objectStructureKind = require_kind.createKind("object-structure");
|
|
9
9
|
const ObjectStructure = require_base.createStructure(objectStructureKind, ({ init }) => (shape, constraints) => init({
|
|
10
|
-
|
|
10
|
+
optimizedShape: require_memo.memo(() => Object.entries(shape).map(([key, value]) => ({
|
|
11
11
|
key,
|
|
12
12
|
value
|
|
13
13
|
}))),
|
|
14
|
+
shape,
|
|
14
15
|
keys: Object.keys(shape),
|
|
15
16
|
constraints
|
|
16
17
|
}, {
|
|
@@ -18,7 +19,7 @@ const ObjectStructure = require_base.createStructure(objectStructureKind, ({ ini
|
|
|
18
19
|
if (!require_isSimple.isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
19
20
|
if (Object.keys(data).some((value) => !self.definition.keys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
20
21
|
const pathStage = errorHandler?.().createPathStage();
|
|
21
|
-
const result = self.definition.
|
|
22
|
+
const result = self.definition.optimizedShape.value.reduce((accumulator, entry) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? require_callThen.callThen(entry.value.executeCheck(data[entry.key], errorHandler), (result) => result === require_resultSymbol.ErrorSymbol || awaitedAccumulator === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_resultSymbol.SuccessSymbol)), require_resultSymbol.SuccessSymbol);
|
|
22
23
|
return require_callThen.callThen(result, (awaitedResult) => {
|
|
23
24
|
pathStage?.close();
|
|
24
25
|
return awaitedResult;
|
|
@@ -28,9 +29,9 @@ const ObjectStructure = require_base.createStructure(objectStructureKind, ({ ini
|
|
|
28
29
|
if (!require_isSimple.isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
29
30
|
if (Object.keys(data).some((value) => !self.definition.keys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
30
31
|
const pathStage = errorHandler?.().createPathStage();
|
|
31
|
-
const encodedData = self.definition.
|
|
32
|
+
const encodedData = self.definition.optimizedShape.value.reduce((accumulator, entry) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? require_callThen.callThen(entry.value.executeEncode(codecContext, data[entry.key], errorHandler), (encodedData) => {
|
|
32
33
|
if (encodedData === require_resultSymbol.ErrorSymbol || awaitedAccumulator === require_resultSymbol.ErrorSymbol) return require_resultSymbol.ErrorSymbol;
|
|
33
|
-
awaitedAccumulator[entry.key] = encodedData;
|
|
34
|
+
if (encodedData !== void 0) awaitedAccumulator[entry.key] = encodedData;
|
|
34
35
|
return awaitedAccumulator;
|
|
35
36
|
})), {});
|
|
36
37
|
return require_callThen.callThen(encodedData, (awaitedEncodedData) => pathStage?.close() ?? (awaitedEncodedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedEncodedData)));
|
|
@@ -39,14 +40,24 @@ const ObjectStructure = require_base.createStructure(objectStructureKind, ({ ini
|
|
|
39
40
|
if (!require_isSimple.isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
40
41
|
if (Object.keys(data).some((value) => !self.definition.keys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
41
42
|
const pathStage = errorHandler?.().createPathStage();
|
|
42
|
-
const decodedData = self.definition.
|
|
43
|
+
const decodedData = self.definition.optimizedShape.value.reduce((accumulator, entry) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? require_callThen.callThen(entry.value.executeDecode(codecContext, data[entry.key], errorHandler), (decodedData) => {
|
|
43
44
|
if (decodedData === require_resultSymbol.ErrorSymbol || awaitedAccumulator === require_resultSymbol.ErrorSymbol) return require_resultSymbol.ErrorSymbol;
|
|
44
|
-
awaitedAccumulator[entry.key] = decodedData;
|
|
45
|
+
if (decodedData !== void 0) awaitedAccumulator[entry.key] = decodedData;
|
|
45
46
|
return awaitedAccumulator;
|
|
46
47
|
})), {});
|
|
47
48
|
return require_callThen.callThen(decodedData, (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedDecodedData)));
|
|
48
49
|
},
|
|
49
|
-
|
|
50
|
+
executeParse: (self, codecContext, data, errorHandler) => {
|
|
51
|
+
if (!require_isSimple.isSimple(data)) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
52
|
+
const pathStage = errorHandler?.().createPathStage();
|
|
53
|
+
const parsedData = self.definition.optimizedShape.value.reduce((accumulator, entry) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? require_callThen.callThen(entry.value.executeParse(codecContext, data[entry.key], errorHandler), (parsedData) => {
|
|
54
|
+
if (parsedData === require_resultSymbol.ErrorSymbol || awaitedAccumulator === require_resultSymbol.ErrorSymbol) return require_resultSymbol.ErrorSymbol;
|
|
55
|
+
if (parsedData !== void 0) awaitedAccumulator[entry.key] = parsedData;
|
|
56
|
+
return awaitedAccumulator;
|
|
57
|
+
})), {});
|
|
58
|
+
return require_callThen.callThen(parsedData, (awaitedParsedData) => pathStage?.close() ?? (awaitedParsedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(awaitedParsedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedParsedData)));
|
|
59
|
+
},
|
|
60
|
+
isAsynchronous: (self) => self.definition.optimizedShape.value.some((entry) => entry.value.isAsynchronous())
|
|
50
61
|
}));
|
|
51
62
|
//#endregion
|
|
52
63
|
exports.ObjectStructure = ObjectStructure;
|
|
@@ -22,7 +22,8 @@ export type ShapeObjectStructureValue<GenericShape extends ShapeObjectStructure>
|
|
|
22
22
|
} extends infer InferredResult extends Record<string, unknown> ? DObject.PartialKeys<InferredResult, DObject.GetPropsWithValueExtends<InferredResult, undefined>> : never;
|
|
23
23
|
export declare const objectStructureKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/object-structure", unknown>>;
|
|
24
24
|
export interface ObjectStructureDefinition<GenericConstraints extends readonly Constraint[] = readonly Constraint[]> extends StructureDefinition<GenericConstraints> {
|
|
25
|
-
readonly
|
|
25
|
+
readonly optimizedShape: DCommon.Memoized<readonly EntryShapeObjectStructure[]>;
|
|
26
|
+
readonly shape: Readonly<Record<string, Structure>>;
|
|
26
27
|
readonly keys: readonly string[];
|
|
27
28
|
}
|
|
28
29
|
export interface ObjectStructure<out GenericValue extends Record<string, unknown> = Record<string, unknown>, out GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.Forward<Structure<GenericValue, ObjectStructureDefinition<GenericConstraints>> & DKind.Kind<typeof objectStructureKind>> {
|
|
@@ -7,10 +7,11 @@ import { createStructure } from "../base.mjs";
|
|
|
7
7
|
//#region scripts/dataStructure/structure/defaults/object.ts
|
|
8
8
|
const objectStructureKind = createKind("object-structure");
|
|
9
9
|
const ObjectStructure = createStructure(objectStructureKind, ({ init }) => (shape, constraints) => init({
|
|
10
|
-
|
|
10
|
+
optimizedShape: memo(() => Object.entries(shape).map(([key, value]) => ({
|
|
11
11
|
key,
|
|
12
12
|
value
|
|
13
13
|
}))),
|
|
14
|
+
shape,
|
|
14
15
|
keys: Object.keys(shape),
|
|
15
16
|
constraints
|
|
16
17
|
}, {
|
|
@@ -18,7 +19,7 @@ const ObjectStructure = createStructure(objectStructureKind, ({ init }) => (shap
|
|
|
18
19
|
if (!isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
19
20
|
if (Object.keys(data).some((value) => !self.definition.keys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
20
21
|
const pathStage = errorHandler?.().createPathStage();
|
|
21
|
-
const result = self.definition.
|
|
22
|
+
const result = self.definition.optimizedShape.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
23
|
return callThen(result, (awaitedResult) => {
|
|
23
24
|
pathStage?.close();
|
|
24
25
|
return awaitedResult;
|
|
@@ -28,9 +29,9 @@ const ObjectStructure = createStructure(objectStructureKind, ({ init }) => (shap
|
|
|
28
29
|
if (!isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
29
30
|
if (Object.keys(data).some((value) => !self.definition.keys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
30
31
|
const pathStage = errorHandler?.().createPathStage();
|
|
31
|
-
const encodedData = self.definition.
|
|
32
|
+
const encodedData = self.definition.optimizedShape.value.reduce((accumulator, entry) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? callThen(entry.value.executeEncode(codecContext, data[entry.key], errorHandler), (encodedData) => {
|
|
32
33
|
if (encodedData === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
|
|
33
|
-
awaitedAccumulator[entry.key] = encodedData;
|
|
34
|
+
if (encodedData !== void 0) awaitedAccumulator[entry.key] = encodedData;
|
|
34
35
|
return awaitedAccumulator;
|
|
35
36
|
})), {});
|
|
36
37
|
return callThen(encodedData, (awaitedEncodedData) => pathStage?.close() ?? (awaitedEncodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData)));
|
|
@@ -39,14 +40,24 @@ const ObjectStructure = createStructure(objectStructureKind, ({ init }) => (shap
|
|
|
39
40
|
if (!isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
40
41
|
if (Object.keys(data).some((value) => !self.definition.keys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
41
42
|
const pathStage = errorHandler?.().createPathStage();
|
|
42
|
-
const decodedData = self.definition.
|
|
43
|
+
const decodedData = self.definition.optimizedShape.value.reduce((accumulator, entry) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? callThen(entry.value.executeDecode(codecContext, data[entry.key], errorHandler), (decodedData) => {
|
|
43
44
|
if (decodedData === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
|
|
44
|
-
awaitedAccumulator[entry.key] = decodedData;
|
|
45
|
+
if (decodedData !== void 0) awaitedAccumulator[entry.key] = decodedData;
|
|
45
46
|
return awaitedAccumulator;
|
|
46
47
|
})), {});
|
|
47
48
|
return callThen(decodedData, (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData)));
|
|
48
49
|
},
|
|
49
|
-
|
|
50
|
+
executeParse: (self, codecContext, data, errorHandler) => {
|
|
51
|
+
if (!isSimple(data)) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
52
|
+
const pathStage = errorHandler?.().createPathStage();
|
|
53
|
+
const parsedData = self.definition.optimizedShape.value.reduce((accumulator, entry) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? callThen(entry.value.executeParse(codecContext, data[entry.key], errorHandler), (parsedData) => {
|
|
54
|
+
if (parsedData === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
|
|
55
|
+
if (parsedData !== void 0) awaitedAccumulator[entry.key] = parsedData;
|
|
56
|
+
return awaitedAccumulator;
|
|
57
|
+
})), {});
|
|
58
|
+
return callThen(parsedData, (awaitedParsedData) => pathStage?.close() ?? (awaitedParsedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedParsedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedParsedData)));
|
|
59
|
+
},
|
|
60
|
+
isAsynchronous: (self) => self.definition.optimizedShape.value.some((entry) => entry.value.isAsynchronous())
|
|
50
61
|
}));
|
|
51
62
|
//#endregion
|
|
52
63
|
export { ObjectStructure, objectStructureKind };
|