@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
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const require_callThen = require("../../../common/callThen.cjs");
|
|
2
|
+
const require_isSimple = require("../../../object/isSimple.cjs");
|
|
2
3
|
const require_isType = require("../../../common/isType.cjs");
|
|
3
4
|
const require_memo = require("../../../common/memo.cjs");
|
|
4
5
|
const require_kind = require("../../kind.cjs");
|
|
@@ -26,7 +27,7 @@ const RecordStructure = require_base.createStructure(recordStructureKind, ({ ini
|
|
|
26
27
|
})
|
|
27
28
|
}, {
|
|
28
29
|
executeCheck: (self, data, errorHandler) => {
|
|
29
|
-
if (
|
|
30
|
+
if (!require_isSimple.isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
30
31
|
const keyData = Object.keys(data);
|
|
31
32
|
const requiredKeys = self.definition.requiredKeys.value;
|
|
32
33
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
@@ -38,31 +39,43 @@ const RecordStructure = require_base.createStructure(recordStructureKind, ({ ini
|
|
|
38
39
|
});
|
|
39
40
|
},
|
|
40
41
|
executeEncode: (self, codecContext, data, errorHandler) => {
|
|
41
|
-
if (
|
|
42
|
+
if (!require_isSimple.isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
42
43
|
const keyData = Object.keys(data);
|
|
43
44
|
const requiredKeys = self.definition.requiredKeys.value;
|
|
44
45
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
45
46
|
const pathStage = errorHandler?.().createPathStage();
|
|
46
|
-
const encodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeEncode(codecContext, data[key], errorHandler), (encodedValue) => {
|
|
47
|
+
const encodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => key === "__proto__" ? accumulator : require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeEncode(codecContext, data[key], errorHandler), (encodedValue) => {
|
|
47
48
|
if (keyResult === require_resultSymbol.ErrorSymbol || encodedValue === require_resultSymbol.ErrorSymbol || awaitedAccumulator === require_resultSymbol.ErrorSymbol) return require_resultSymbol.ErrorSymbol;
|
|
48
|
-
awaitedAccumulator[key] = encodedValue;
|
|
49
|
+
if (encodedValue !== void 0) awaitedAccumulator[key] = encodedValue;
|
|
49
50
|
return awaitedAccumulator;
|
|
50
51
|
}))), {});
|
|
51
52
|
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)));
|
|
52
53
|
},
|
|
53
54
|
executeDecode: (self, codecContext, data, errorHandler) => {
|
|
54
|
-
if (
|
|
55
|
+
if (!require_isSimple.isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
55
56
|
const keyData = Object.keys(data);
|
|
56
57
|
const requiredKeys = self.definition.requiredKeys.value;
|
|
57
58
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
58
59
|
const pathStage = errorHandler?.().createPathStage();
|
|
59
|
-
const decodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeDecode(codecContext, data[key], errorHandler), (decodedValue) => {
|
|
60
|
+
const decodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => key === "__proto__" ? accumulator : require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeDecode(codecContext, data[key], errorHandler), (decodedValue) => {
|
|
60
61
|
if (keyResult === require_resultSymbol.ErrorSymbol || decodedValue === require_resultSymbol.ErrorSymbol || awaitedAccumulator === require_resultSymbol.ErrorSymbol) return require_resultSymbol.ErrorSymbol;
|
|
61
|
-
awaitedAccumulator[key] = decodedValue;
|
|
62
|
+
if (decodedValue !== void 0) awaitedAccumulator[key] = decodedValue;
|
|
62
63
|
return awaitedAccumulator;
|
|
63
64
|
}))), {});
|
|
64
65
|
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)));
|
|
65
66
|
},
|
|
67
|
+
executeParse: (self, codecContext, data, errorHandler) => {
|
|
68
|
+
if (!require_isSimple.isSimple(data)) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
69
|
+
const keyData = Object.keys(data);
|
|
70
|
+
const requiredKeys = self.definition.requiredKeys.value;
|
|
71
|
+
const pathStage = errorHandler?.().createPathStage();
|
|
72
|
+
const parsedData = (requiredKeys ?? keyData).reduce((accumulator, key) => key === "__proto__" ? accumulator : require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeParse(codecContext, data[key], errorHandler), (parsedValue) => {
|
|
73
|
+
if (keyResult === require_resultSymbol.ErrorSymbol || parsedValue === require_resultSymbol.ErrorSymbol || awaitedAccumulator === require_resultSymbol.ErrorSymbol) return require_resultSymbol.ErrorSymbol;
|
|
74
|
+
if (parsedValue !== void 0) awaitedAccumulator[key] = parsedValue;
|
|
75
|
+
return awaitedAccumulator;
|
|
76
|
+
}))), {});
|
|
77
|
+
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)));
|
|
78
|
+
},
|
|
66
79
|
isAsynchronous: (self) => self.definition.key.isAsynchronous() || self.definition.value.isAsynchronous()
|
|
67
80
|
}));
|
|
68
81
|
//#endregion
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { callThen } from "../../../common/callThen.mjs";
|
|
2
|
+
import { isSimple } from "../../../object/isSimple.mjs";
|
|
2
3
|
import { isType } from "../../../common/isType.mjs";
|
|
3
4
|
import { memo } from "../../../common/memo.mjs";
|
|
4
5
|
import { createKind } from "../../kind.mjs";
|
|
@@ -26,7 +27,7 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
|
|
|
26
27
|
})
|
|
27
28
|
}, {
|
|
28
29
|
executeCheck: (self, data, errorHandler) => {
|
|
29
|
-
if (
|
|
30
|
+
if (!isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
30
31
|
const keyData = Object.keys(data);
|
|
31
32
|
const requiredKeys = self.definition.requiredKeys.value;
|
|
32
33
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
@@ -38,31 +39,43 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
|
|
|
38
39
|
});
|
|
39
40
|
},
|
|
40
41
|
executeEncode: (self, codecContext, data, errorHandler) => {
|
|
41
|
-
if (
|
|
42
|
+
if (!isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
42
43
|
const keyData = Object.keys(data);
|
|
43
44
|
const requiredKeys = self.definition.requiredKeys.value;
|
|
44
45
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
45
46
|
const pathStage = errorHandler?.().createPathStage();
|
|
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) => {
|
|
47
|
+
const encodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => key === "__proto__" ? accumulator : 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) => {
|
|
47
48
|
if (keyResult === ErrorSymbol || encodedValue === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
|
|
48
|
-
awaitedAccumulator[key] = encodedValue;
|
|
49
|
+
if (encodedValue !== void 0) awaitedAccumulator[key] = encodedValue;
|
|
49
50
|
return awaitedAccumulator;
|
|
50
51
|
}))), {});
|
|
51
52
|
return callThen(encodedData, (awaitedEncodedData) => pathStage?.close() ?? (awaitedEncodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData)));
|
|
52
53
|
},
|
|
53
54
|
executeDecode: (self, codecContext, data, errorHandler) => {
|
|
54
|
-
if (
|
|
55
|
+
if (!isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
55
56
|
const keyData = Object.keys(data);
|
|
56
57
|
const requiredKeys = self.definition.requiredKeys.value;
|
|
57
58
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
58
59
|
const pathStage = errorHandler?.().createPathStage();
|
|
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) => {
|
|
60
|
+
const decodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => key === "__proto__" ? accumulator : 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) => {
|
|
60
61
|
if (keyResult === ErrorSymbol || decodedValue === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
|
|
61
|
-
awaitedAccumulator[key] = decodedValue;
|
|
62
|
+
if (decodedValue !== void 0) awaitedAccumulator[key] = decodedValue;
|
|
62
63
|
return awaitedAccumulator;
|
|
63
64
|
}))), {});
|
|
64
65
|
return callThen(decodedData, (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData)));
|
|
65
66
|
},
|
|
67
|
+
executeParse: (self, codecContext, data, errorHandler) => {
|
|
68
|
+
if (!isSimple(data)) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
69
|
+
const keyData = Object.keys(data);
|
|
70
|
+
const requiredKeys = self.definition.requiredKeys.value;
|
|
71
|
+
const pathStage = errorHandler?.().createPathStage();
|
|
72
|
+
const parsedData = (requiredKeys ?? keyData).reduce((accumulator, key) => key === "__proto__" ? accumulator : 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.executeParse(codecContext, data[key], errorHandler), (parsedValue) => {
|
|
73
|
+
if (keyResult === ErrorSymbol || parsedValue === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
|
|
74
|
+
if (parsedValue !== void 0) awaitedAccumulator[key] = parsedValue;
|
|
75
|
+
return awaitedAccumulator;
|
|
76
|
+
}))), {});
|
|
77
|
+
return callThen(parsedData, (awaitedParsedData) => pathStage?.close() ?? (awaitedParsedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedParsedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedParsedData)));
|
|
78
|
+
},
|
|
66
79
|
isAsynchronous: (self) => self.definition.key.isAsynchronous() || self.definition.value.isAsynchronous()
|
|
67
80
|
}));
|
|
68
81
|
//#endregion
|
|
@@ -18,6 +18,7 @@ const TypeStructure = require_base.createStructure(typeStructureKind, ({ init })
|
|
|
18
18
|
const codec = codecContext.get(self.definition.type.fundamentalType);
|
|
19
19
|
return require_callThen.callThen(codec ? codec.decode(data, errorHandler) : data, (decodedData) => decodedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeCheck(decodedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : decodedData));
|
|
20
20
|
},
|
|
21
|
+
executeParse: (self, codecContext, data, errorHandler) => self.executeDecode(codecContext, data, errorHandler),
|
|
21
22
|
isAsynchronous: (self) => self.definition.type.isAsynchronous()
|
|
22
23
|
}));
|
|
23
24
|
//#endregion
|
|
@@ -18,6 +18,7 @@ const TypeStructure = createStructure(typeStructureKind, ({ init }) => (type, co
|
|
|
18
18
|
const codec = codecContext.get(self.definition.type.fundamentalType);
|
|
19
19
|
return callThen(codec ? codec.decode(data, errorHandler) : data, (decodedData) => decodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeCheck(decodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : decodedData));
|
|
20
20
|
},
|
|
21
|
+
executeParse: (self, codecContext, data, errorHandler) => self.executeDecode(codecContext, data, errorHandler),
|
|
21
22
|
isAsynchronous: (self) => self.definition.type.isAsynchronous()
|
|
22
23
|
}));
|
|
23
24
|
//#endregion
|
|
@@ -2,13 +2,13 @@ const require_callThen = require("../../../common/callThen.cjs");
|
|
|
2
2
|
const require_memo = require("../../../common/memo.cjs");
|
|
3
3
|
const require_kind = require("../../kind.cjs");
|
|
4
4
|
const require_resultSymbol = require("../../common/resultSymbol.cjs");
|
|
5
|
-
const
|
|
6
|
-
const require_base = require("../base.cjs");
|
|
5
|
+
const require_base = require("../../common/error/base.cjs");
|
|
6
|
+
const require_base$1 = require("../base.cjs");
|
|
7
7
|
const require_identifier = require("../identifier.cjs");
|
|
8
8
|
const require_lazy = require("./lazy.cjs");
|
|
9
9
|
//#region scripts/dataStructure/structure/defaults/union.ts
|
|
10
10
|
const unionStructureKind = require_kind.createKind("union-structure");
|
|
11
|
-
const UnionStructure = require_base.createStructure(unionStructureKind, ({ init }) => (values, constraints) => init({
|
|
11
|
+
const UnionStructure = require_base$1.createStructure(unionStructureKind, ({ init }) => (values, constraints) => init({
|
|
12
12
|
values: require_memo.memo(() => values.flatMap((value) => (function flatUnion(structure) {
|
|
13
13
|
if (require_identifier.structureIdentifier(structure, unionStructureKind)) return structure.definition.values.value.flatMap(flatUnion);
|
|
14
14
|
if (require_identifier.structureIdentifier(structure, require_lazy.lazyStructureKind)) return flatUnion(structure.definition.getter.value);
|
|
@@ -20,7 +20,7 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
|
|
|
20
20
|
const errorHandlers = errorHandler ? [] : void 0;
|
|
21
21
|
const result = self.definition.values.value.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
22
22
|
if (awaitedAccumulator === require_resultSymbol.SuccessSymbol) return awaitedAccumulator;
|
|
23
|
-
const subErrorHandler = errorHandler === void 0 ? void 0 :
|
|
23
|
+
const subErrorHandler = errorHandler === void 0 ? void 0 : require_base.createGetErrorHandler(errorHandler().currentPath);
|
|
24
24
|
if (errorHandlers && subErrorHandler) {
|
|
25
25
|
subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
|
|
26
26
|
errorHandlers.push(subErrorHandler);
|
|
@@ -40,7 +40,7 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
|
|
|
40
40
|
const errorHandlers = errorHandler ? [] : void 0;
|
|
41
41
|
const encodedData = self.definition.values.value.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
42
42
|
if (awaitedAccumulator !== require_resultSymbol.ErrorSymbol) return awaitedAccumulator;
|
|
43
|
-
const subErrorHandler = errorHandler === void 0 ? void 0 :
|
|
43
|
+
const subErrorHandler = errorHandler === void 0 ? void 0 : require_base.createGetErrorHandler(errorHandler().currentPath);
|
|
44
44
|
if (errorHandlers && subErrorHandler) {
|
|
45
45
|
subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
|
|
46
46
|
errorHandlers.push(subErrorHandler);
|
|
@@ -60,7 +60,7 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
|
|
|
60
60
|
const errorHandlers = errorHandler ? [] : void 0;
|
|
61
61
|
const decodedData = self.definition.values.value.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
62
62
|
if (awaitedAccumulator !== require_resultSymbol.ErrorSymbol) return awaitedAccumulator;
|
|
63
|
-
const subErrorHandler = errorHandler === void 0 ? void 0 :
|
|
63
|
+
const subErrorHandler = errorHandler === void 0 ? void 0 : require_base.createGetErrorHandler(errorHandler().currentPath);
|
|
64
64
|
if (errorHandlers && subErrorHandler) {
|
|
65
65
|
subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
|
|
66
66
|
errorHandlers.push(subErrorHandler);
|
|
@@ -76,6 +76,26 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
|
|
|
76
76
|
return require_callThen.callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedDecodedData);
|
|
77
77
|
});
|
|
78
78
|
},
|
|
79
|
+
executeParse: (self, codecContext, data, errorHandler) => {
|
|
80
|
+
const errorHandlers = errorHandler ? [] : void 0;
|
|
81
|
+
const parsedData = self.definition.values.value.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
82
|
+
if (awaitedAccumulator !== require_resultSymbol.ErrorSymbol) return awaitedAccumulator;
|
|
83
|
+
const subErrorHandler = errorHandler === void 0 ? void 0 : require_base.createGetErrorHandler(errorHandler().currentPath);
|
|
84
|
+
if (errorHandlers && subErrorHandler) {
|
|
85
|
+
subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
|
|
86
|
+
errorHandlers.push(subErrorHandler);
|
|
87
|
+
}
|
|
88
|
+
return value.executeParse(codecContext, data, subErrorHandler);
|
|
89
|
+
}), require_resultSymbol.ErrorSymbol);
|
|
90
|
+
return require_callThen.callThen(parsedData, (awaitedParsedData) => {
|
|
91
|
+
if (awaitedParsedData === require_resultSymbol.ErrorSymbol) {
|
|
92
|
+
if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
|
|
93
|
+
errorHandler?.().addIssue(self, data);
|
|
94
|
+
return require_resultSymbol.ErrorSymbol;
|
|
95
|
+
}
|
|
96
|
+
return require_callThen.callThen(self.executeConstraints(awaitedParsedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedParsedData);
|
|
97
|
+
});
|
|
98
|
+
},
|
|
79
99
|
isAsynchronous: (self) => self.definition.values.value.some((value) => value.isAsynchronous())
|
|
80
100
|
}));
|
|
81
101
|
//#endregion
|
|
@@ -2,7 +2,7 @@ import { callThen } from "../../../common/callThen.mjs";
|
|
|
2
2
|
import { memo } from "../../../common/memo.mjs";
|
|
3
3
|
import { createKind } from "../../kind.mjs";
|
|
4
4
|
import { ErrorSymbol, SuccessSymbol } from "../../common/resultSymbol.mjs";
|
|
5
|
-
import { createGetErrorHandler } from "../../common/error.mjs";
|
|
5
|
+
import { createGetErrorHandler } from "../../common/error/base.mjs";
|
|
6
6
|
import { createStructure } from "../base.mjs";
|
|
7
7
|
import { structureIdentifier } from "../identifier.mjs";
|
|
8
8
|
import { lazyStructureKind } from "./lazy.mjs";
|
|
@@ -76,6 +76,26 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
|
|
|
76
76
|
return callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData);
|
|
77
77
|
});
|
|
78
78
|
},
|
|
79
|
+
executeParse: (self, codecContext, data, errorHandler) => {
|
|
80
|
+
const errorHandlers = errorHandler ? [] : void 0;
|
|
81
|
+
const parsedData = self.definition.values.value.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
|
|
82
|
+
if (awaitedAccumulator !== ErrorSymbol) return awaitedAccumulator;
|
|
83
|
+
const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler(errorHandler().currentPath);
|
|
84
|
+
if (errorHandlers && subErrorHandler) {
|
|
85
|
+
subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
|
|
86
|
+
errorHandlers.push(subErrorHandler);
|
|
87
|
+
}
|
|
88
|
+
return value.executeParse(codecContext, data, subErrorHandler);
|
|
89
|
+
}), ErrorSymbol);
|
|
90
|
+
return callThen(parsedData, (awaitedParsedData) => {
|
|
91
|
+
if (awaitedParsedData === ErrorSymbol) {
|
|
92
|
+
if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
|
|
93
|
+
errorHandler?.().addIssue(self, data);
|
|
94
|
+
return ErrorSymbol;
|
|
95
|
+
}
|
|
96
|
+
return callThen(self.executeConstraints(awaitedParsedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedParsedData);
|
|
97
|
+
});
|
|
98
|
+
},
|
|
79
99
|
isAsynchronous: (self) => self.definition.values.value.some((value) => value.isAsynchronous())
|
|
80
100
|
}));
|
|
81
101
|
//#endregion
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { structureKind, Structure } from '../base';
|
|
2
2
|
import { StructureConstraintsValue } from './constraintsValue';
|
|
3
|
+
import { Constraint } from '../../constraint';
|
|
3
4
|
import type * as DKind from '../../../kind';
|
|
4
5
|
export type StructureValue<GenericStructure extends Structure> = DKind.GetValue<typeof structureKind, GenericStructure>;
|
|
5
6
|
export type StructureInitialValue<GenericStructure extends Structure, GenericStructureValue = StructureValue<GenericStructure>> = GenericStructureValue extends unknown ? GenericStructureValue extends (infer InferredInitialValue) & StructureConstraintsValue<GenericStructure["definition"]["constraints"][number]> ? InferredInitialValue : GenericStructureValue : never;
|
|
7
|
+
export type ComputeStructureValue<GenericValue extends unknown, GenericConstraints extends readonly Constraint[]> = Extract<GenericValue & StructureConstraintsValue<GenericConstraints[number]>, any>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Type } from '../base';
|
|
2
2
|
import { BigintLiteralType, BigintType, BooleanLiteralType, BooleanType, DateType, NullType, NumberLiteralType, NumberType, StringLiteralType, StringType, TimeType, UndefinedType } from '../defaults';
|
|
3
3
|
export interface TypesStore {
|
|
4
|
+
base: Type;
|
|
4
5
|
bigint: BigintType;
|
|
5
6
|
bigintLiteral: BigintLiteralType;
|
|
6
7
|
boolean: BooleanType;
|
package/dist/either/index.cjs
CHANGED
|
@@ -4,13 +4,13 @@ const require_create = require("./left/create.cjs");
|
|
|
4
4
|
const require_error = require("./left/error.cjs");
|
|
5
5
|
const require_fail = require("./left/fail.cjs");
|
|
6
6
|
const require_is = require("./left/is.cjs");
|
|
7
|
-
const require_create$1 = require("./right/create.cjs");
|
|
8
7
|
const require_none = require("./left/none.cjs");
|
|
9
8
|
const require_unwrap = require("./left/unwrap.cjs");
|
|
10
9
|
const require_unwrapOrThrow = require("./left/unwrapOrThrow.cjs");
|
|
11
10
|
const require_when = require("./left/when.cjs");
|
|
12
11
|
const require_whenOtherwise = require("./left/whenOtherwise.cjs");
|
|
13
12
|
const require_asyncGroup = require("./right/asyncGroup.cjs");
|
|
13
|
+
const require_create$1 = require("./right/create.cjs");
|
|
14
14
|
const require_success = require("./right/success.cjs");
|
|
15
15
|
const require_is$1 = require("./right/is.cjs");
|
|
16
16
|
const require_asyncPipe = require("./right/asyncPipe.cjs");
|
package/dist/either/index.mjs
CHANGED
|
@@ -4,13 +4,13 @@ import { left, leftKind } from "./left/create.mjs";
|
|
|
4
4
|
import { error, errorKind } from "./left/error.mjs";
|
|
5
5
|
import { fail, failKind } from "./left/fail.mjs";
|
|
6
6
|
import { isLeft } from "./left/is.mjs";
|
|
7
|
-
import { right, rightKind } from "./right/create.mjs";
|
|
8
7
|
import { none, noneKind } from "./left/none.mjs";
|
|
9
8
|
import { unwrapLeft } from "./left/unwrap.mjs";
|
|
10
9
|
import { NotLeftError, unwrapLeftOrThrow } from "./left/unwrapOrThrow.mjs";
|
|
11
10
|
import { whenIsLeft } from "./left/when.mjs";
|
|
12
11
|
import { whenIsLeftOtherwise } from "./left/whenOtherwise.mjs";
|
|
13
12
|
import { asyncGroup } from "./right/asyncGroup.mjs";
|
|
13
|
+
import { right, rightKind } from "./right/create.mjs";
|
|
14
14
|
import { success, successKind } from "./right/success.mjs";
|
|
15
15
|
import { isRight } from "./right/is.mjs";
|
|
16
16
|
import { rightAsyncPipe } from "./right/asyncPipe.mjs";
|
|
@@ -4,5 +4,6 @@ export declare const leftKind: DKind.Handler<DKind.Definition<"@DuplojsLangEithe
|
|
|
4
4
|
type _Left<GenericInformation extends string = string, GenericValue extends unknown = unknown> = (DKind.Kind<typeof leftKind> & DKind.Kind<typeof informationKind, GenericInformation> & DKind.Kind<typeof valueKind, GenericValue>);
|
|
5
5
|
export interface Left<GenericInformation extends string = string, GenericValue extends unknown = unknown> extends _Left<GenericInformation, GenericValue> {
|
|
6
6
|
}
|
|
7
|
-
export declare function left<GenericInformation extends string
|
|
7
|
+
export declare function left<GenericInformation extends string>(information: GenericInformation): Left<GenericInformation, undefined>;
|
|
8
|
+
export declare function left<GenericInformation extends string, const GenericValue extends unknown>(information: GenericInformation, value: GenericValue): Left<GenericInformation, GenericValue>;
|
|
8
9
|
export {};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
const require_kind = require("../kind.cjs");
|
|
2
|
-
const require_create = require("
|
|
2
|
+
const require_create = require("./create.cjs");
|
|
3
3
|
//#region scripts/either/left/none.ts
|
|
4
4
|
const noneKind = require_kind.createKind("none");
|
|
5
5
|
function none() {
|
|
6
6
|
return {
|
|
7
|
-
[require_create.
|
|
7
|
+
[require_create.leftKind.runTimeKey]: null,
|
|
8
8
|
[require_kind.informationKind.runTimeKey]: "none",
|
|
9
9
|
[require_kind.valueKind.runTimeKey]: null,
|
|
10
10
|
[noneKind.runTimeKey]: null
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Left } from './create';
|
|
2
2
|
import type * as DKind from '../../kind';
|
|
3
3
|
import type * as DCommon from '../../common';
|
|
4
4
|
export declare const noneKind: DKind.Handler<DKind.Definition<"@DuplojsLangEither/none", unknown>>;
|
|
5
|
-
export interface None extends DCommon.Forward<DKind.Kind<typeof noneKind> &
|
|
5
|
+
export interface None extends DCommon.Forward<DKind.Kind<typeof noneKind> & Left<"none", null>> {
|
|
6
6
|
}
|
|
7
7
|
export declare function none(): None;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createKind, informationKind, valueKind } from "../kind.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { leftKind } from "./create.mjs";
|
|
3
3
|
//#region scripts/either/left/none.ts
|
|
4
4
|
const noneKind = createKind("none");
|
|
5
5
|
function none() {
|
|
6
6
|
return {
|
|
7
|
-
[
|
|
7
|
+
[leftKind.runTimeKey]: null,
|
|
8
8
|
[informationKind.runTimeKey]: "none",
|
|
9
9
|
[valueKind.runTimeKey]: null,
|
|
10
10
|
[noneKind.runTimeKey]: null
|
|
@@ -4,5 +4,6 @@ export declare const rightKind: DKind.Handler<DKind.Definition<"@DuplojsLangEith
|
|
|
4
4
|
type _Right<GenericInformation extends string = string, GenericValue extends unknown = unknown> = (DKind.Kind<typeof rightKind> & DKind.Kind<typeof informationKind, GenericInformation> & DKind.Kind<typeof valueKind, GenericValue>);
|
|
5
5
|
export interface Right<GenericInformation extends string = string, GenericValue extends unknown = unknown> extends _Right<GenericInformation, GenericValue> {
|
|
6
6
|
}
|
|
7
|
-
export declare function right<GenericInformation extends string
|
|
7
|
+
export declare function right<GenericInformation extends string>(information: GenericInformation): Right<GenericInformation, undefined>;
|
|
8
|
+
export declare function right<GenericInformation extends string, const GenericValue extends unknown>(information: GenericInformation, value: GenericValue): Right<GenericInformation, GenericValue>;
|
|
8
9
|
export {};
|
|
@@ -14,5 +14,5 @@ export interface EvidenceResult<GenericInformation extends string, GenericValue
|
|
|
14
14
|
*/
|
|
15
15
|
export declare function evidenceResult<GenericInformation extends string, GenericValue extends object>(information: GenericInformation): (value: GenericValue) => EvidenceResult<GenericInformation, GenericValue>;
|
|
16
16
|
export declare function evidenceResult<GenericInformation extends string, GenericValue extends object>(information: GenericInformation, value: GenericValue): EvidenceResult<GenericInformation, GenericValue>;
|
|
17
|
-
export type FindEvidence<GenericValue extends unknown> = (GenericValue extends Evidence ? GenericValue : GenericValue extends Promise<unknown> ? FindEvidence<Awaited<GenericValue>> : GenericValue extends DEither.Right | DEither.Left ? FindEvidence<DEither.GetValue<GenericValue>> : never) extends infer InferredResult extends Evidence ? InferredResult : never;
|
|
17
|
+
export type FindEvidence<GenericValue extends unknown> = (GenericValue extends Evidence ? GenericValue : GenericValue extends Promise<unknown> ? FindEvidence<Awaited<GenericValue>> : GenericValue extends DEither.Right | DEither.Left ? FindEvidence<DEither.GetValue<GenericValue>> : GenericValue extends Generator<infer InferredYeldValue, infer InferredResult> ? (FindEvidence<InferredYeldValue> | FindEvidence<InferredResult>) : GenericValue extends AsyncGenerator<infer InferredYeldValue, infer InferredResult> ? (FindEvidence<InferredYeldValue> | FindEvidence<InferredResult>) : never) extends infer InferredResult extends Evidence ? InferredResult : never;
|
|
18
18
|
export type GetEvidenceResult<GenericFunction extends DCommon.AnyFunction, EvidenceName extends Extract<keyof FindEvidence<ReturnType<GenericFunction>>[DCommon.ConstraintSymbol]["evidence"], string>> = Extract<FindEvidence<ReturnType<GenericFunction>>, EvidenceName extends unknown ? Evidence<EvidenceName> : never>;
|
|
@@ -4,14 +4,14 @@ const require_base = require("./controller/base.cjs");
|
|
|
4
4
|
//#region scripts/invocation/flow/base.ts
|
|
5
5
|
function flow(...args) {
|
|
6
6
|
const accumulateFunction = args.reduce((accumulator, currentValue) => {
|
|
7
|
-
if (require_base.flowControllerKind.has(currentValue)) return (
|
|
7
|
+
if (require_base.flowControllerKind.has(currentValue)) return (input, argument) => currentValue.exec(() => accumulator(input, argument));
|
|
8
8
|
else {
|
|
9
|
-
const preparedResultTreatment = (result) => require_base.flowControllerExitKind.has(result) ? result : currentValue(result);
|
|
10
|
-
return (
|
|
9
|
+
const preparedResultTreatment = (result, argument) => require_base.flowControllerExitKind.has(result) ? result : currentValue(result, argument);
|
|
10
|
+
return (input, argument) => require_callThen.callThen(accumulator(input, argument), (result) => preparedResultTreatment(result, argument));
|
|
11
11
|
}
|
|
12
12
|
}, require_forward.forward);
|
|
13
13
|
const preparedResultTreatment = (result) => require_base.flowControllerExitKind.has(result) ? require_base.flowControllerExitKind.getValue(result) : result;
|
|
14
|
-
return (
|
|
14
|
+
return (input) => require_callThen.callThen(accumulateFunction(input, input), preparedResultTreatment);
|
|
15
15
|
}
|
|
16
16
|
//#endregion
|
|
17
17
|
exports.flow = flow;
|
|
@@ -5,7 +5,7 @@ type ComputeLastUsableValue<GenericAccumulator extends DCommon.AnyTuple> = Gener
|
|
|
5
5
|
...infer InferredRest,
|
|
6
6
|
infer InferredLast
|
|
7
7
|
] ? InferredLast extends FlowControllerResult<infer InferredFlowControllerResult> ? Exclude<Awaited<InferredFlowControllerResult>, FlowControllerPreviousFunctionResult | FlowControllerExit> extends infer InferredOutputValue ? DCommon.HasSomething<InferredOutputValue> extends true ? InferredOutputValue : InferredRest extends DCommon.AnyTuple ? ComputeLastUsableValue<InferredRest> : never : never : InferredLast : never;
|
|
8
|
-
type Pipe<GenericAccumulator extends DCommon.AnyTuple, GenericOutput extends unknown> = (this: never, input: Awaited<ComputeLastUsableValue<GenericAccumulator
|
|
8
|
+
type Pipe<GenericAccumulator extends DCommon.AnyTuple, GenericOutput extends unknown> = (this: never, input: Awaited<ComputeLastUsableValue<GenericAccumulator>>, argument: GenericAccumulator[0]) => GenericOutput;
|
|
9
9
|
type IsMaybePromise<GenericAccumulator extends DCommon.AnyTuple> = {
|
|
10
10
|
[Index in keyof GenericAccumulator]: UnwrapFlowControllerResult<GenericAccumulator[Index]> extends infer InferredResult ? DCommon.IsExtends<InferredResult, Promise<unknown>> extends true ? false : DCommon.ContainExtends<InferredResult, Promise<any>> : never;
|
|
11
11
|
}[number] extends false ? false : true;
|
|
@@ -4,14 +4,14 @@ import { flowControllerExitKind, flowControllerKind } from "./controller/base.mj
|
|
|
4
4
|
//#region scripts/invocation/flow/base.ts
|
|
5
5
|
function flow(...args) {
|
|
6
6
|
const accumulateFunction = args.reduce((accumulator, currentValue) => {
|
|
7
|
-
if (flowControllerKind.has(currentValue)) return (
|
|
7
|
+
if (flowControllerKind.has(currentValue)) return (input, argument) => currentValue.exec(() => accumulator(input, argument));
|
|
8
8
|
else {
|
|
9
|
-
const preparedResultTreatment = (result) => flowControllerExitKind.has(result) ? result : currentValue(result);
|
|
10
|
-
return (
|
|
9
|
+
const preparedResultTreatment = (result, argument) => flowControllerExitKind.has(result) ? result : currentValue(result, argument);
|
|
10
|
+
return (input, argument) => callThen(accumulator(input, argument), (result) => preparedResultTreatment(result, argument));
|
|
11
11
|
}
|
|
12
12
|
}, forward);
|
|
13
13
|
const preparedResultTreatment = (result) => flowControllerExitKind.has(result) ? flowControllerExitKind.getValue(result) : result;
|
|
14
|
-
return (
|
|
14
|
+
return (input) => callThen(accumulateFunction(input, input), preparedResultTreatment);
|
|
15
15
|
}
|
|
16
16
|
//#endregion
|
|
17
17
|
export { flow };
|
|
@@ -16,7 +16,7 @@ const debounce = require_base.createFlowController(flowControllerDebounceKind, (
|
|
|
16
16
|
lastEvent?.resolve(false);
|
|
17
17
|
lastEvent = require_externalPromise.createExternalPromise();
|
|
18
18
|
lastTimeout = setTimeout(() => lastEvent?.resolve(true), formattedDebounceTime);
|
|
19
|
-
if (!await lastEvent.promise) return exitFlow(require_create.left("debounce-reject"));
|
|
19
|
+
if (!await lastEvent.promise) return exitFlow(require_create.left("debounce-reject", void 0));
|
|
20
20
|
return result;
|
|
21
21
|
});
|
|
22
22
|
});
|
|
@@ -16,7 +16,7 @@ const debounce = createFlowController(flowControllerDebounceKind, ({ init, exitF
|
|
|
16
16
|
lastEvent?.resolve(false);
|
|
17
17
|
lastEvent = createExternalPromise();
|
|
18
18
|
lastTimeout = setTimeout(() => lastEvent?.resolve(true), formattedDebounceTime);
|
|
19
|
-
if (!await lastEvent.promise) return exitFlow(left("debounce-reject"));
|
|
19
|
+
if (!await lastEvent.promise) return exitFlow(left("debounce-reject", void 0));
|
|
20
20
|
return result;
|
|
21
21
|
});
|
|
22
22
|
});
|
|
@@ -15,7 +15,7 @@ const throttling = require_base.createFlowController(flowControllerThrottlingKin
|
|
|
15
15
|
if (Date.now() - lastTime < formattedThrottlingTime) {
|
|
16
16
|
lastEvent?.resolve(false);
|
|
17
17
|
lastEvent = require_externalPromise.createExternalPromise();
|
|
18
|
-
if (!await lastEvent.promise) return exitFlow(require_create.left("throttling-reject"));
|
|
18
|
+
if (!await lastEvent.promise) return exitFlow(require_create.left("throttling-reject", void 0));
|
|
19
19
|
}
|
|
20
20
|
setTimeout(() => lastEvent?.resolve(true), formattedThrottlingTime);
|
|
21
21
|
lastTime = Date.now();
|
|
@@ -15,7 +15,7 @@ const throttling = createFlowController(flowControllerThrottlingKind, ({ init, e
|
|
|
15
15
|
if (Date.now() - lastTime < formattedThrottlingTime) {
|
|
16
16
|
lastEvent?.resolve(false);
|
|
17
17
|
lastEvent = createExternalPromise();
|
|
18
|
-
if (!await lastEvent.promise) return exitFlow(left("throttling-reject"));
|
|
18
|
+
if (!await lastEvent.promise) return exitFlow(left("throttling-reject", void 0));
|
|
19
19
|
}
|
|
20
20
|
setTimeout(() => lastEvent?.resolve(true), formattedThrottlingTime);
|
|
21
21
|
lastTime = Date.now();
|
|
@@ -11,6 +11,8 @@ const require_timeout = require("./flow/controller/defaults/timeout.cjs");
|
|
|
11
11
|
const require_base$1 = require("./flow/base.cjs");
|
|
12
12
|
const require_port = require("./port.cjs");
|
|
13
13
|
const require_reader = require("./reader.cjs");
|
|
14
|
+
const require_resolver = require("./resolver.cjs");
|
|
15
|
+
const require_signature = require("./signature.cjs");
|
|
14
16
|
//#region scripts/invocation/index.ts
|
|
15
17
|
var invocation_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
16
18
|
AbortErrorFlowController: () => require_aborter.AbortErrorFlowController,
|
|
@@ -20,6 +22,7 @@ var invocation_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
|
20
22
|
createKind: () => require_kind.createKind,
|
|
21
23
|
createPort: () => require_port.createPort,
|
|
22
24
|
createReader: () => require_reader.createReader,
|
|
25
|
+
createResolver: () => require_resolver.createResolver,
|
|
23
26
|
debounce: () => require_debounce.debounce,
|
|
24
27
|
evidenceResult: () => require_evidence.evidenceResult,
|
|
25
28
|
filter: () => require_filter.filter,
|
|
@@ -35,7 +38,10 @@ var invocation_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
|
35
38
|
portHandlerKind: () => require_port.portHandlerKind,
|
|
36
39
|
readerKind: () => require_reader.readerKind,
|
|
37
40
|
resolveReaders: () => require_reader.resolveReaders,
|
|
41
|
+
resolverKind: () => require_resolver.resolverKind,
|
|
38
42
|
retry: () => require_retry.retry,
|
|
43
|
+
signatureKind: () => require_signature.signatureKind,
|
|
44
|
+
signedFunction: () => require_signature.signedFunction,
|
|
39
45
|
throttling: () => require_throttling.throttling,
|
|
40
46
|
timeout: () => require_timeout.timeout
|
|
41
47
|
});
|
|
@@ -47,6 +53,7 @@ exports.createFlowController = require_base.createFlowController;
|
|
|
47
53
|
exports.createKind = require_kind.createKind;
|
|
48
54
|
exports.createPort = require_port.createPort;
|
|
49
55
|
exports.createReader = require_reader.createReader;
|
|
56
|
+
exports.createResolver = require_resolver.createResolver;
|
|
50
57
|
exports.debounce = require_debounce.debounce;
|
|
51
58
|
exports.evidenceResult = require_evidence.evidenceResult;
|
|
52
59
|
exports.filter = require_filter.filter;
|
|
@@ -68,6 +75,9 @@ Object.defineProperty(exports, "invocation_exports", {
|
|
|
68
75
|
exports.portHandlerKind = require_port.portHandlerKind;
|
|
69
76
|
exports.readerKind = require_reader.readerKind;
|
|
70
77
|
exports.resolveReaders = require_reader.resolveReaders;
|
|
78
|
+
exports.resolverKind = require_resolver.resolverKind;
|
|
71
79
|
exports.retry = require_retry.retry;
|
|
80
|
+
exports.signatureKind = require_signature.signatureKind;
|
|
81
|
+
exports.signedFunction = require_signature.signedFunction;
|
|
72
82
|
exports.throttling = require_throttling.throttling;
|
|
73
83
|
exports.timeout = require_timeout.timeout;
|
|
@@ -11,6 +11,8 @@ import { flowControllerTimeoutKind, timeout } from "./flow/controller/defaults/t
|
|
|
11
11
|
import { flow } from "./flow/base.mjs";
|
|
12
12
|
import { createPort, portHandlerKind } from "./port.mjs";
|
|
13
13
|
import { createReader, readerKind, resolveReaders } from "./reader.mjs";
|
|
14
|
+
import { createResolver, resolverKind } from "./resolver.mjs";
|
|
15
|
+
import { signatureKind, signedFunction } from "./signature.mjs";
|
|
14
16
|
//#region scripts/invocation/index.ts
|
|
15
17
|
var invocation_exports = /* @__PURE__ */ __exportAll({
|
|
16
18
|
AbortErrorFlowController: () => AbortErrorFlowController,
|
|
@@ -20,6 +22,7 @@ var invocation_exports = /* @__PURE__ */ __exportAll({
|
|
|
20
22
|
createKind: () => createKind,
|
|
21
23
|
createPort: () => createPort,
|
|
22
24
|
createReader: () => createReader,
|
|
25
|
+
createResolver: () => createResolver,
|
|
23
26
|
debounce: () => debounce,
|
|
24
27
|
evidenceResult: () => evidenceResult,
|
|
25
28
|
filter: () => filter,
|
|
@@ -35,9 +38,12 @@ var invocation_exports = /* @__PURE__ */ __exportAll({
|
|
|
35
38
|
portHandlerKind: () => portHandlerKind,
|
|
36
39
|
readerKind: () => readerKind,
|
|
37
40
|
resolveReaders: () => resolveReaders,
|
|
41
|
+
resolverKind: () => resolverKind,
|
|
38
42
|
retry: () => retry,
|
|
43
|
+
signatureKind: () => signatureKind,
|
|
44
|
+
signedFunction: () => signedFunction,
|
|
39
45
|
throttling: () => throttling,
|
|
40
46
|
timeout: () => timeout
|
|
41
47
|
});
|
|
42
48
|
//#endregion
|
|
43
|
-
export { AbortErrorFlowController, aborter, appendEvidence, createFlowController, createKind, createPort, createReader, debounce, evidenceResult, filter, flow, flowControllerAborterKind, flowControllerDebounceKind, flowControllerExitKind, flowControllerFilterKind, flowControllerKind, flowControllerRetryKind, flowControllerThrottlingKind, flowControllerTimeoutKind, invocation_exports, portHandlerKind, readerKind, resolveReaders, retry, throttling, timeout };
|
|
49
|
+
export { AbortErrorFlowController, aborter, appendEvidence, createFlowController, createKind, createPort, createReader, createResolver, debounce, evidenceResult, filter, flow, flowControllerAborterKind, flowControllerDebounceKind, flowControllerExitKind, flowControllerFilterKind, flowControllerKind, flowControllerRetryKind, flowControllerThrottlingKind, flowControllerTimeoutKind, invocation_exports, portHandlerKind, readerKind, resolveReaders, resolverKind, retry, signatureKind, signedFunction, throttling, timeout };
|
|
@@ -4,14 +4,18 @@ const require_fromEntries = require("../object/fromEntries.cjs");
|
|
|
4
4
|
const require_map = require("../array/map.cjs");
|
|
5
5
|
const require_forward = require("../common/forward.cjs");
|
|
6
6
|
const require_pipe = require("../common/pipe.cjs");
|
|
7
|
+
const require_replace = require("../string/replace.cjs");
|
|
7
8
|
const require_uncapitalize = require("../string/uncapitalize.cjs");
|
|
8
9
|
//#region scripts/invocation/reader.ts
|
|
9
10
|
const readerKind = require("./kind.cjs").createKind("reader");
|
|
11
|
+
function formatPortName(value) {
|
|
12
|
+
return require_pipe.pipe(value, require_uncapitalize.uncapitalize, require_replace.replace(/Port$/, ""));
|
|
13
|
+
}
|
|
10
14
|
function createReader(dependencies, read) {
|
|
11
15
|
return {
|
|
12
16
|
dependencies,
|
|
13
17
|
run: (injectedDependencies) => read(require_pipe.pipe(require_forward.forward(dependencies), require_entries.entries, require_map.map(([key, value]) => {
|
|
14
|
-
const formattedKey = require_uncapitalize.uncapitalize(key);
|
|
18
|
+
const formattedKey = readerKind.has(value) ? require_uncapitalize.uncapitalize(key) : formatPortName(key);
|
|
15
19
|
return require_entry.entry(formattedKey, readerKind.has(value) && !injectedDependencies[formattedKey] ? value.run(injectedDependencies) : injectedDependencies[formattedKey]);
|
|
16
20
|
}), require_fromEntries.fromEntries)),
|
|
17
21
|
[readerKind.runTimeKey]: null
|