@duplojs/lang 0.0.1-beta.1 → 0.0.1-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/array/at/default.d.ts +1 -1
- package/dist/array/chunk.d.ts +3 -2
- package/dist/array/concat.d.ts +1 -1
- package/dist/array/copyWithin.d.ts +1 -1
- package/dist/array/fill/all.d.ts +1 -1
- package/dist/array/fill/default.d.ts +3 -3
- package/dist/array/filter.d.ts +1 -1
- package/dist/array/findAndReplace.d.ts +1 -1
- package/dist/array/findAndSplice/delete.d.ts +1 -1
- package/dist/array/findAndSplice/insert.d.ts +1 -1
- package/dist/array/insert.d.ts +3 -3
- package/dist/array/length.d.ts +1 -1
- package/dist/array/lengthEqual.d.ts +1 -1
- package/dist/array/map.d.ts +1 -1
- package/dist/array/maxElements.d.ts +1 -1
- package/dist/array/minElements.d.ts +1 -1
- package/dist/array/pop.d.ts +1 -1
- package/dist/array/prepend.d.ts +1 -1
- package/dist/array/push.d.ts +3 -3
- package/dist/array/reverse.d.ts +1 -1
- package/dist/array/shift.d.ts +1 -1
- package/dist/array/sort.d.ts +1 -1
- package/dist/array/splice/delete.d.ts +1 -1
- package/dist/array/splice/insert.d.ts +1 -1
- package/dist/array/unshift.d.ts +3 -3
- package/dist/common/types/index.d.ts +1 -0
- package/dist/common/types/splitPromise.d.ts +1 -0
- package/dist/dataStructure/common/codec.cjs +5 -4
- package/dist/dataStructure/common/codec.d.ts +2 -2
- package/dist/dataStructure/common/codec.mjs +5 -4
- package/dist/dataStructure/common/error.cjs +34 -16
- package/dist/dataStructure/common/error.d.ts +29 -11
- package/dist/dataStructure/common/error.mjs +32 -17
- package/dist/dataStructure/common/errorInterpreter.cjs +45 -0
- package/dist/dataStructure/common/errorInterpreter.d.ts +32 -0
- package/dist/dataStructure/common/errorInterpreter.mjs +45 -0
- package/dist/dataStructure/common/index.d.ts +1 -0
- package/dist/dataStructure/constraint/base.cjs +16 -3
- package/dist/dataStructure/constraint/base.d.ts +8 -4
- package/dist/dataStructure/constraint/base.mjs +16 -3
- package/dist/dataStructure/constraint/defaults/allowedCharacters.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/allowedCharacters.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/arrayLengthEqual.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/arrayLengthEqual.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/betweenThan.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/betweenThan.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/email.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/email.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/even.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/even.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/greaterThan.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/greaterThan.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/index.d.ts +1 -0
- package/dist/dataStructure/constraint/defaults/integer.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/integer.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/lessThan.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/lessThan.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/lessThanOrEqual.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/lessThanOrEqual.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/maxCharacters.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/maxCharacters.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/maxElements.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/maxElements.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/minCharacters.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/minCharacters.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/minElements.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/minElements.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/multipleOf.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/multipleOf.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/negative.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/negative.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/notEmpty.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/notEmpty.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/notZero.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/notZero.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/odd.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/odd.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/positive.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/positive.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/refine.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/refine.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/safe.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/safe.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/strictNegative.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/strictNegative.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/strictPositive.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/strictPositive.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/stringLengthEqual.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/stringLengthEqual.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/trimmed.cjs +13 -0
- package/dist/dataStructure/constraint/defaults/trimmed.d.ts +10 -0
- package/dist/dataStructure/constraint/defaults/trimmed.mjs +12 -0
- package/dist/dataStructure/constraint/defaults/url.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/url.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/uuid.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/uuid.mjs +1 -1
- package/dist/dataStructure/fundamentalType/base.cjs +3 -3
- package/dist/dataStructure/fundamentalType/base.d.ts +4 -5
- package/dist/dataStructure/fundamentalType/base.mjs +3 -3
- package/dist/dataStructure/fundamentalType/defaults/bigint.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/bigint.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/bigint.mjs +5 -2
- package/dist/dataStructure/fundamentalType/defaults/boolean.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/boolean.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/boolean.mjs +5 -2
- package/dist/dataStructure/fundamentalType/defaults/date.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/date.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/date.mjs +5 -2
- package/dist/dataStructure/fundamentalType/defaults/null.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/null.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/null.mjs +5 -2
- package/dist/dataStructure/fundamentalType/defaults/number.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/number.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/number.mjs +5 -2
- package/dist/dataStructure/fundamentalType/defaults/string.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/string.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/string.mjs +5 -2
- package/dist/dataStructure/fundamentalType/defaults/time.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/time.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/time.mjs +5 -2
- package/dist/dataStructure/fundamentalType/defaults/undefined.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/undefined.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/undefined.mjs +5 -2
- package/dist/dataStructure/fundamentalType/identifier.d.ts +2 -2
- package/dist/dataStructure/helpers/array.d.ts +1 -1
- package/dist/dataStructure/helpers/bigint.d.ts +1 -1
- package/dist/dataStructure/helpers/boolean.d.ts +1 -1
- package/dist/dataStructure/helpers/date.d.ts +1 -1
- package/dist/dataStructure/helpers/index.d.ts +1 -0
- package/dist/dataStructure/helpers/lazy.d.ts +1 -1
- package/dist/dataStructure/helpers/null.d.ts +1 -1
- package/dist/dataStructure/helpers/number.d.ts +1 -1
- package/dist/dataStructure/helpers/object.d.ts +1 -1
- package/dist/dataStructure/helpers/record.d.ts +1 -1
- package/dist/dataStructure/helpers/string.d.ts +1 -1
- package/dist/dataStructure/helpers/time.d.ts +1 -1
- package/dist/dataStructure/helpers/trimmed.cjs +7 -0
- package/dist/dataStructure/helpers/trimmed.d.ts +2 -0
- package/dist/dataStructure/helpers/trimmed.mjs +7 -0
- package/dist/dataStructure/helpers/undefined.d.ts +1 -1
- package/dist/dataStructure/helpers/union.d.ts +1 -1
- package/dist/dataStructure/index.cjs +38 -0
- package/dist/dataStructure/index.mjs +31 -10
- package/dist/dataStructure/structure/base.cjs +15 -5
- package/dist/dataStructure/structure/base.d.ts +7 -4
- package/dist/dataStructure/structure/base.mjs +15 -5
- package/dist/dataStructure/structure/defaults/array.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/index.d.ts +1 -0
- package/dist/dataStructure/structure/defaults/lazy.cjs +4 -2
- package/dist/dataStructure/structure/defaults/lazy.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/lazy.mjs +4 -2
- package/dist/dataStructure/structure/defaults/nonEncodableString.cjs +17 -0
- package/dist/dataStructure/structure/defaults/nonEncodableString.d.ts +10 -0
- package/dist/dataStructure/structure/defaults/nonEncodableString.mjs +16 -0
- package/dist/dataStructure/structure/defaults/object.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/record.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/type.cjs +1 -1
- package/dist/dataStructure/structure/defaults/type.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/type.mjs +2 -2
- package/dist/dataStructure/structure/defaults/union.cjs +9 -9
- package/dist/dataStructure/structure/defaults/union.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/union.mjs +9 -9
- package/dist/dataStructure/structure/identifier.d.ts +2 -2
- package/dist/dataStructure/structure/types/constraintsValue.d.ts +1 -1
- package/dist/dataStructure/structure/types/structures.d.ts +2 -1
- package/dist/dataStructure/structure/types/value.d.ts +1 -1
- package/dist/dataStructure/type/base.cjs +17 -4
- package/dist/dataStructure/type/base.d.ts +7 -3
- package/dist/dataStructure/type/base.mjs +17 -4
- package/dist/dataStructure/type/defaults/bigintLiteral.cjs +1 -1
- package/dist/dataStructure/type/defaults/bigintLiteral.mjs +1 -1
- package/dist/dataStructure/type/defaults/booleanLiteral.cjs +1 -1
- package/dist/dataStructure/type/defaults/booleanLiteral.mjs +1 -1
- package/dist/dataStructure/type/defaults/numberLiteral.cjs +1 -1
- package/dist/dataStructure/type/defaults/numberLiteral.mjs +1 -1
- package/dist/dataStructure/type/defaults/stringLiteral.cjs +1 -1
- package/dist/dataStructure/type/defaults/stringLiteral.mjs +1 -1
- package/dist/dataStructure/type/identifier.d.ts +2 -2
- package/dist/generator/asyncChunk.d.ts +3 -2
- package/dist/generator/chunk.d.ts +3 -2
- package/dist/generator/types/flat.d.ts +2 -2
- package/dist/invocation/flow/base.d.ts +7 -2
- package/dist/invocation/flow/controller/base.d.ts +1 -0
- package/dist/invocation/flow/controller/defaults/aborter.cjs +35 -0
- package/dist/invocation/flow/controller/defaults/aborter.d.ts +14 -0
- package/dist/invocation/flow/controller/defaults/aborter.mjs +33 -0
- package/dist/invocation/flow/controller/defaults/filter.cjs +5 -3
- package/dist/invocation/flow/controller/defaults/filter.d.ts +1 -1
- package/dist/invocation/flow/controller/defaults/filter.mjs +5 -3
- package/dist/invocation/flow/controller/defaults/index.d.ts +1 -0
- package/dist/invocation/index.cjs +7 -0
- package/dist/invocation/index.mjs +5 -1
- package/dist/kind/types/getName.d.ts +2 -0
- package/dist/kind/types/getNamespaceName.d.ts +3 -0
- package/dist/kind/types/index.d.ts +2 -0
- package/dist/kind/types/remove.d.ts +2 -2
- package/dist/modeling/entity/base.cjs +2 -2
- package/dist/modeling/entity/base.d.ts +14 -10
- package/dist/modeling/entity/base.mjs +2 -2
- package/dist/modeling/entity/index.d.ts +0 -1
- package/dist/modeling/index.cjs +17 -6
- package/dist/modeling/index.d.ts +1 -0
- package/dist/modeling/index.mjs +11 -5
- package/dist/modeling/newType/base.cjs +6 -3
- package/dist/modeling/newType/base.mjs +6 -3
- package/dist/modeling/taggedObject/base.cjs +23 -0
- package/dist/modeling/taggedObject/base.d.ts +32 -0
- package/dist/modeling/taggedObject/base.mjs +21 -0
- package/dist/modeling/taggedObject/helper.cjs +29 -0
- package/dist/modeling/taggedObject/helper.d.ts +14 -0
- package/dist/modeling/taggedObject/helper.mjs +26 -0
- package/dist/modeling/taggedObject/index.d.ts +2 -0
- package/dist/number/betweenThan.d.ts +2 -2
- package/dist/number/betweenThanOrEqual.d.ts +2 -2
- package/dist/number/greaterThan.d.ts +1 -1
- package/dist/number/greaterThanOrEqual.d.ts +1 -1
- package/dist/number/lessThan.d.ts +1 -1
- package/dist/number/lessThanOrEqual.d.ts +1 -1
- package/dist/number/sort.d.ts +1 -1
- package/dist/pattern/index.cjs +12 -0
- package/dist/pattern/index.d.ts +4 -0
- package/dist/pattern/index.mjs +9 -1
- package/dist/pattern/matchWithEntity.cjs +12 -0
- package/dist/pattern/matchWithEntity.d.ts +12 -0
- package/dist/pattern/matchWithEntity.mjs +12 -0
- package/dist/pattern/matchWithEntityOtherwise.cjs +13 -0
- package/dist/pattern/matchWithEntityOtherwise.d.ts +14 -0
- package/dist/pattern/matchWithEntityOtherwise.mjs +13 -0
- package/dist/pattern/matchWithNumberOtherwise.cjs +2 -6
- package/dist/pattern/matchWithNumberOtherwise.mjs +2 -6
- package/dist/pattern/matchWithStringOtherwise.cjs +2 -6
- package/dist/pattern/matchWithStringOtherwise.d.ts +1 -1
- package/dist/pattern/matchWithStringOtherwise.mjs +2 -6
- package/dist/pattern/matchWithTaggedObject.cjs +12 -0
- package/dist/pattern/matchWithTaggedObject.d.ts +12 -0
- package/dist/pattern/matchWithTaggedObject.mjs +12 -0
- package/dist/pattern/matchWithTaggedObjectOtherwise.cjs +13 -0
- package/dist/pattern/matchWithTaggedObjectOtherwise.d.ts +14 -0
- package/dist/pattern/matchWithTaggedObjectOtherwise.mjs +13 -0
- package/dist/string/at.d.ts +2 -2
- package/dist/string/first.d.ts +1 -1
- package/dist/string/index.cjs +3 -0
- package/dist/string/index.mjs +3 -1
- package/dist/string/last.d.ts +1 -1
- package/dist/string/lengthEqual.d.ts +1 -1
- package/dist/string/maxCharacters.d.ts +1 -1
- package/dist/string/minCharacters.d.ts +1 -1
- package/dist/string/padEnd.d.ts +1 -1
- package/dist/string/padStart.d.ts +1 -1
- package/dist/string/pop.d.ts +1 -1
- package/dist/string/shift.d.ts +1 -1
- package/dist/string/slice.d.ts +1 -1
- package/dist/string/substring.d.ts +1 -1
- package/dist/string/trim/default.d.ts +1 -1
- package/dist/string/trim/end.d.ts +1 -1
- package/dist/string/trim/index.d.ts +1 -0
- package/dist/string/trim/is.cjs +6 -0
- package/dist/string/trim/is.d.ts +2 -0
- package/dist/string/trim/is.mjs +6 -0
- package/dist/string/trim/start.d.ts +1 -1
- package/package.json +1 -1
- package/dist/modeling/entity/entityName.cjs +0 -13
- package/dist/modeling/entity/entityName.d.ts +0 -13
- package/dist/modeling/entity/entityName.mjs +0 -13
package/dist/modeling/index.cjs
CHANGED
|
@@ -1,42 +1,50 @@
|
|
|
1
1
|
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
2
2
|
const require_kind = require("./kind.cjs");
|
|
3
|
-
const require_entityName = require("./entity/entityName.cjs");
|
|
4
3
|
const require_base = require("./entity/base.cjs");
|
|
5
4
|
const require_helper = require("./entity/helper.cjs");
|
|
6
5
|
const require_base$1 = require("./newType/base.cjs");
|
|
7
6
|
const require_helper$1 = require("./newType/helper.cjs");
|
|
8
7
|
const require_base$2 = require("./flag/base.cjs");
|
|
9
8
|
const require_namespace = require("./entity/namespace.cjs");
|
|
9
|
+
const require_base$3 = require("./taggedObject/base.cjs");
|
|
10
|
+
const require_helper$2 = require("./taggedObject/helper.cjs");
|
|
10
11
|
//#region scripts/modeling/index.ts
|
|
11
12
|
var modeling_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
12
|
-
EntityNameStructure: () => require_entityName.EntityNameStructure,
|
|
13
13
|
EntityStructure: () => require_base.EntityStructure,
|
|
14
14
|
NewTypeStructure: () => require_base$1.NewTypeStructure,
|
|
15
|
+
TaggedObjectStructure: () => require_base$3.TaggedObjectStructure,
|
|
15
16
|
createEntity: () => require_helper.createEntity,
|
|
16
17
|
createEntityNamespace: () => require_namespace.createEntityNamespace,
|
|
17
18
|
createFlag: () => require_base$2.createFlag,
|
|
18
19
|
createKind: () => require_kind.createKind,
|
|
19
20
|
createNewEntity: () => require_helper$1.createNewEntity,
|
|
21
|
+
createTaggedObject: () => require_helper$2.createTaggedObject,
|
|
20
22
|
entityKind: () => require_base.entityKind,
|
|
21
|
-
entityNameStructureKind: () => require_entityName.entityNameStructureKind,
|
|
22
23
|
entityStructureKind: () => require_base.entityStructureKind,
|
|
23
24
|
flagKind: () => require_base$2.flagKind,
|
|
25
|
+
getTagValue: () => require_helper$2.getTagValue,
|
|
26
|
+
hasTagValue: () => require_helper$2.hasTagValue,
|
|
24
27
|
namespaceKind: () => require_namespace.namespaceKind,
|
|
25
|
-
newTypeStructureKind: () => require_base$1.newTypeStructureKind
|
|
28
|
+
newTypeStructureKind: () => require_base$1.newTypeStructureKind,
|
|
29
|
+
objectTagKind: () => require_base$3.objectTagKind,
|
|
30
|
+
taggedObject: () => require_helper$2.taggedObject,
|
|
31
|
+
taggedObjectStructureKind: () => require_base$3.taggedObjectStructureKind
|
|
26
32
|
});
|
|
27
33
|
//#endregion
|
|
28
|
-
exports.EntityNameStructure = require_entityName.EntityNameStructure;
|
|
29
34
|
exports.EntityStructure = require_base.EntityStructure;
|
|
30
35
|
exports.NewTypeStructure = require_base$1.NewTypeStructure;
|
|
36
|
+
exports.TaggedObjectStructure = require_base$3.TaggedObjectStructure;
|
|
31
37
|
exports.createEntity = require_helper.createEntity;
|
|
32
38
|
exports.createEntityNamespace = require_namespace.createEntityNamespace;
|
|
33
39
|
exports.createFlag = require_base$2.createFlag;
|
|
34
40
|
exports.createKind = require_kind.createKind;
|
|
35
41
|
exports.createNewEntity = require_helper$1.createNewEntity;
|
|
42
|
+
exports.createTaggedObject = require_helper$2.createTaggedObject;
|
|
36
43
|
exports.entityKind = require_base.entityKind;
|
|
37
|
-
exports.entityNameStructureKind = require_entityName.entityNameStructureKind;
|
|
38
44
|
exports.entityStructureKind = require_base.entityStructureKind;
|
|
39
45
|
exports.flagKind = require_base$2.flagKind;
|
|
46
|
+
exports.getTagValue = require_helper$2.getTagValue;
|
|
47
|
+
exports.hasTagValue = require_helper$2.hasTagValue;
|
|
40
48
|
Object.defineProperty(exports, "modeling_exports", {
|
|
41
49
|
enumerable: true,
|
|
42
50
|
get: function() {
|
|
@@ -45,3 +53,6 @@ Object.defineProperty(exports, "modeling_exports", {
|
|
|
45
53
|
});
|
|
46
54
|
exports.namespaceKind = require_namespace.namespaceKind;
|
|
47
55
|
exports.newTypeStructureKind = require_base$1.newTypeStructureKind;
|
|
56
|
+
exports.objectTagKind = require_base$3.objectTagKind;
|
|
57
|
+
exports.taggedObject = require_helper$2.taggedObject;
|
|
58
|
+
exports.taggedObjectStructureKind = require_base$3.taggedObjectStructureKind;
|
package/dist/modeling/index.d.ts
CHANGED
package/dist/modeling/index.mjs
CHANGED
|
@@ -1,28 +1,34 @@
|
|
|
1
1
|
import { __exportAll } from "../_virtual/_rolldown/runtime.mjs";
|
|
2
2
|
import { createKind } from "./kind.mjs";
|
|
3
|
-
import { EntityNameStructure, entityNameStructureKind } from "./entity/entityName.mjs";
|
|
4
3
|
import { EntityStructure, entityKind, entityStructureKind } from "./entity/base.mjs";
|
|
5
4
|
import { createEntity } from "./entity/helper.mjs";
|
|
6
5
|
import { NewTypeStructure, newTypeStructureKind } from "./newType/base.mjs";
|
|
7
6
|
import { createNewEntity } from "./newType/helper.mjs";
|
|
8
7
|
import { createFlag, flagKind } from "./flag/base.mjs";
|
|
9
8
|
import { createEntityNamespace, namespaceKind } from "./entity/namespace.mjs";
|
|
9
|
+
import { TaggedObjectStructure, objectTagKind, taggedObjectStructureKind } from "./taggedObject/base.mjs";
|
|
10
|
+
import { createTaggedObject, getTagValue, hasTagValue, taggedObject } from "./taggedObject/helper.mjs";
|
|
10
11
|
//#region scripts/modeling/index.ts
|
|
11
12
|
var modeling_exports = /* @__PURE__ */ __exportAll({
|
|
12
|
-
EntityNameStructure: () => EntityNameStructure,
|
|
13
13
|
EntityStructure: () => EntityStructure,
|
|
14
14
|
NewTypeStructure: () => NewTypeStructure,
|
|
15
|
+
TaggedObjectStructure: () => TaggedObjectStructure,
|
|
15
16
|
createEntity: () => createEntity,
|
|
16
17
|
createEntityNamespace: () => createEntityNamespace,
|
|
17
18
|
createFlag: () => createFlag,
|
|
18
19
|
createKind: () => createKind,
|
|
19
20
|
createNewEntity: () => createNewEntity,
|
|
21
|
+
createTaggedObject: () => createTaggedObject,
|
|
20
22
|
entityKind: () => entityKind,
|
|
21
|
-
entityNameStructureKind: () => entityNameStructureKind,
|
|
22
23
|
entityStructureKind: () => entityStructureKind,
|
|
23
24
|
flagKind: () => flagKind,
|
|
25
|
+
getTagValue: () => getTagValue,
|
|
26
|
+
hasTagValue: () => hasTagValue,
|
|
24
27
|
namespaceKind: () => namespaceKind,
|
|
25
|
-
newTypeStructureKind: () => newTypeStructureKind
|
|
28
|
+
newTypeStructureKind: () => newTypeStructureKind,
|
|
29
|
+
objectTagKind: () => objectTagKind,
|
|
30
|
+
taggedObject: () => taggedObject,
|
|
31
|
+
taggedObjectStructureKind: () => taggedObjectStructureKind
|
|
26
32
|
});
|
|
27
33
|
//#endregion
|
|
28
|
-
export {
|
|
34
|
+
export { EntityStructure, NewTypeStructure, TaggedObjectStructure, createEntity, createEntityNamespace, createFlag, createKind, createNewEntity, createTaggedObject, entityKind, entityStructureKind, flagKind, getTagValue, hasTagValue, modeling_exports, namespaceKind, newTypeStructureKind, objectTagKind, taggedObject, taggedObjectStructureKind };
|
|
@@ -7,14 +7,17 @@ const require_error = require("../../dataStructure/common/error.cjs");
|
|
|
7
7
|
const require_base = require("../../dataStructure/structure/base.cjs");
|
|
8
8
|
//#region scripts/modeling/newType/base.ts
|
|
9
9
|
const newTypeStructureKind = require("../kind.cjs").createKind("new-type-structure");
|
|
10
|
+
function executeNewTypeConstraints(structure, data, errorHandler) {
|
|
11
|
+
return structure.definition.newTypeConstraints.reduce((accumulator, constraint) => require_callThen.callThen(accumulator, (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(constraint.executeCheck(data), (constraintResult) => constraintResult === require_resultSymbol.ErrorSymbol ? errorHandler?.().addIssue(structure, data, constraint) ?? require_resultSymbol.ErrorSymbol : require_resultSymbol.SuccessSymbol)), require_resultSymbol.SuccessSymbol);
|
|
12
|
+
}
|
|
10
13
|
const NewTypeStructure = require_base.createStructure(newTypeStructureKind, ({ init }) => (name, structure, newTypeConstraints) => init({
|
|
11
14
|
constraints: [],
|
|
12
15
|
newTypeConstraints,
|
|
13
16
|
inner: structure
|
|
14
17
|
}, {
|
|
15
|
-
executeCheck: (self, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeCheck(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : self
|
|
16
|
-
executeEncode: (self, codec, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeEncode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self
|
|
17
|
-
executeDecode: (self, codec, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeDecode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self
|
|
18
|
+
executeCheck: (self, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeCheck(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : executeNewTypeConstraints(self, data, errorHandler)),
|
|
19
|
+
executeEncode: (self, codec, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeEncode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(executeNewTypeConstraints(self, data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedInnerResult))),
|
|
20
|
+
executeDecode: (self, codec, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeDecode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(executeNewTypeConstraints(self, awaitedInnerResult, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(awaitedInnerResult, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedInnerResult))),
|
|
18
21
|
isAsynchronous: (self) => self.definition.inner.isAsynchronous() || self.definition.newTypeConstraints.some((value) => value.isAsynchronous())
|
|
19
22
|
}, {
|
|
20
23
|
name,
|
|
@@ -8,14 +8,17 @@ import { createStructure } from "../../dataStructure/structure/base.mjs";
|
|
|
8
8
|
import { createKind } from "../kind.mjs";
|
|
9
9
|
//#region scripts/modeling/newType/base.ts
|
|
10
10
|
const newTypeStructureKind = createKind("new-type-structure");
|
|
11
|
+
function executeNewTypeConstraints(structure, data, errorHandler) {
|
|
12
|
+
return structure.definition.newTypeConstraints.reduce((accumulator, constraint) => callThen(accumulator, (result) => result === ErrorSymbol ? ErrorSymbol : callThen(constraint.executeCheck(data), (constraintResult) => constraintResult === ErrorSymbol ? errorHandler?.().addIssue(structure, data, constraint) ?? ErrorSymbol : SuccessSymbol)), SuccessSymbol);
|
|
13
|
+
}
|
|
11
14
|
const NewTypeStructure = createStructure(newTypeStructureKind, ({ init }) => (name, structure, newTypeConstraints) => init({
|
|
12
15
|
constraints: [],
|
|
13
16
|
newTypeConstraints,
|
|
14
17
|
inner: structure
|
|
15
18
|
}, {
|
|
16
|
-
executeCheck: (self, data, errorHandler) => callThen(self.definition.inner.executeCheck(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : self
|
|
17
|
-
executeEncode: (self, codec, data, errorHandler) => callThen(self.definition.inner.executeEncode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === ErrorSymbol ? ErrorSymbol : callThen(self
|
|
18
|
-
executeDecode: (self, codec, data, errorHandler) => callThen(self.definition.inner.executeDecode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === ErrorSymbol ? ErrorSymbol : callThen(self
|
|
19
|
+
executeCheck: (self, data, errorHandler) => callThen(self.definition.inner.executeCheck(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : executeNewTypeConstraints(self, data, errorHandler)),
|
|
20
|
+
executeEncode: (self, codec, data, errorHandler) => callThen(self.definition.inner.executeEncode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === ErrorSymbol ? ErrorSymbol : callThen(executeNewTypeConstraints(self, data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedInnerResult))),
|
|
21
|
+
executeDecode: (self, codec, data, errorHandler) => callThen(self.definition.inner.executeDecode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === ErrorSymbol ? ErrorSymbol : callThen(executeNewTypeConstraints(self, awaitedInnerResult, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedInnerResult, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedInnerResult))),
|
|
19
22
|
isAsynchronous: (self) => self.definition.inner.isAsynchronous() || self.definition.newTypeConstraints.some((value) => value.isAsynchronous())
|
|
20
23
|
}, {
|
|
21
24
|
name,
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const require_base = require("../../dataStructure/structure/base.cjs");
|
|
2
|
+
const require_nonEncodableString = require("../../dataStructure/structure/defaults/nonEncodableString.cjs");
|
|
3
|
+
const require_object = require("../../dataStructure/structure/defaults/object.cjs");
|
|
4
|
+
const require_kind = require("../kind.cjs");
|
|
5
|
+
//#region scripts/modeling/taggedObject/base.ts
|
|
6
|
+
const objectTagKind = require_kind.createKind("object-tag");
|
|
7
|
+
const taggedObjectStructureKind = require_kind.createKind("tagged-object-structure");
|
|
8
|
+
const TaggedObjectStructure = require_base.createStructure(taggedObjectStructureKind, ({ init }) => (name, shape) => init({
|
|
9
|
+
inner: require_object.ObjectStructure({
|
|
10
|
+
...shape,
|
|
11
|
+
[objectTagKind.runTimeKey]: require_nonEncodableString.NonEncodableStringStructure(name)
|
|
12
|
+
}, []),
|
|
13
|
+
constraints: []
|
|
14
|
+
}, {
|
|
15
|
+
executeCheck: (self, data, errorHandler) => self.definition.inner.executeCheck(data, errorHandler),
|
|
16
|
+
executeEncode: (self, codecContext, data, errorHandler) => self.definition.inner.executeEncode(codecContext, data, errorHandler),
|
|
17
|
+
executeDecode: (self, codecContext, data, errorHandler) => self.definition.inner.executeDecode(codecContext, data, errorHandler),
|
|
18
|
+
isAsynchronous: (self) => self.definition.inner.isAsynchronous()
|
|
19
|
+
}, { name }));
|
|
20
|
+
//#endregion
|
|
21
|
+
exports.TaggedObjectStructure = TaggedObjectStructure;
|
|
22
|
+
exports.objectTagKind = objectTagKind;
|
|
23
|
+
exports.taggedObjectStructureKind = taggedObjectStructureKind;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Codecs, EncodedValue } from '../../dataStructure/common';
|
|
2
|
+
import type * as DKind from '../../kind';
|
|
3
|
+
import type * as DCommon from '../../common';
|
|
4
|
+
import * as DDataStructure from '../../dataStructure';
|
|
5
|
+
declare module '../../dataStructure' {
|
|
6
|
+
interface StructuresStore {
|
|
7
|
+
taggedObject: TaggedObjectStructure;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
declare module '../../dataStructure/common' {
|
|
11
|
+
interface EncodeStructure<GenericValue extends unknown, GenericCodecs extends Codecs> {
|
|
12
|
+
taggedObject: GenericValue extends ObjectTag<infer InferredName> ? (ObjectTag<InferredName> & {
|
|
13
|
+
[Prop in Exclude<keyof GenericValue, DKind.KeySymbol>]: EncodedValue<GenericValue[Prop], GenericCodecs>;
|
|
14
|
+
}) : never;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export declare const objectTagKind: DKind.Handler<DKind.Definition<"@DuplojsLangModeling/object-tag", string>>;
|
|
18
|
+
export interface ObjectTag<GenericValue extends string = string> extends DKind.Kind<typeof objectTagKind, GenericValue> {
|
|
19
|
+
}
|
|
20
|
+
export type GetTagValue<GenericTaggedObject extends ObjectTag> = DKind.GetValue<typeof objectTagKind, GenericTaggedObject>;
|
|
21
|
+
export type ExtractByTagValue<GenericValue extends unknown, GenericTagValue extends string> = GenericValue extends ObjectTag<GenericTagValue> ? GenericValue : never;
|
|
22
|
+
export type ShapeTaggedObjectStructure<GenericTaggedObject extends ObjectTag = ObjectTag> = {
|
|
23
|
+
[Prop in Extract<keyof GenericTaggedObject, string>]: DDataStructure.Structure<GenericTaggedObject[Prop]>;
|
|
24
|
+
};
|
|
25
|
+
export declare const taggedObjectStructureKind: DKind.Handler<DKind.Definition<"@DuplojsLangModeling/tagged-object-structure", unknown>>;
|
|
26
|
+
export interface TaggedObjectStructureDefinition extends DDataStructure.StructureDefinition<readonly []> {
|
|
27
|
+
readonly inner: DDataStructure.ObjectStructure;
|
|
28
|
+
}
|
|
29
|
+
export interface TaggedObjectStructure<GenericTaggedObject extends ObjectTag = ObjectTag> extends DCommon.UnionToIntersection<DDataStructure.Structure<GenericTaggedObject, TaggedObjectStructureDefinition> & DKind.Kind<typeof taggedObjectStructureKind>> {
|
|
30
|
+
readonly name: GetTagValue<GenericTaggedObject>;
|
|
31
|
+
}
|
|
32
|
+
export declare const TaggedObjectStructure: <GenericTaggedObject extends ObjectTag, GenericName extends string = never, GenericShape extends DDataStructure.ShapeObjectStructure = never>(name: GetTagValue<GenericTaggedObject> | GenericName, shape: ShapeTaggedObjectStructure<GenericTaggedObject> | GenericShape) => TaggedObjectStructure<ObjectTag extends GenericTaggedObject ? (ObjectTag<GenericName> & DDataStructure.ShapeObjectStructureValue<GenericShape>) : GenericTaggedObject>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { createStructure } from "../../dataStructure/structure/base.mjs";
|
|
2
|
+
import { NonEncodableStringStructure } from "../../dataStructure/structure/defaults/nonEncodableString.mjs";
|
|
3
|
+
import { ObjectStructure } from "../../dataStructure/structure/defaults/object.mjs";
|
|
4
|
+
import { createKind } from "../kind.mjs";
|
|
5
|
+
//#region scripts/modeling/taggedObject/base.ts
|
|
6
|
+
const objectTagKind = createKind("object-tag");
|
|
7
|
+
const taggedObjectStructureKind = createKind("tagged-object-structure");
|
|
8
|
+
const TaggedObjectStructure = createStructure(taggedObjectStructureKind, ({ init }) => (name, shape) => init({
|
|
9
|
+
inner: ObjectStructure({
|
|
10
|
+
...shape,
|
|
11
|
+
[objectTagKind.runTimeKey]: NonEncodableStringStructure(name)
|
|
12
|
+
}, []),
|
|
13
|
+
constraints: []
|
|
14
|
+
}, {
|
|
15
|
+
executeCheck: (self, data, errorHandler) => self.definition.inner.executeCheck(data, errorHandler),
|
|
16
|
+
executeEncode: (self, codecContext, data, errorHandler) => self.definition.inner.executeEncode(codecContext, data, errorHandler),
|
|
17
|
+
executeDecode: (self, codecContext, data, errorHandler) => self.definition.inner.executeDecode(codecContext, data, errorHandler),
|
|
18
|
+
isAsynchronous: (self) => self.definition.inner.isAsynchronous()
|
|
19
|
+
}, { name }));
|
|
20
|
+
//#endregion
|
|
21
|
+
export { TaggedObjectStructure, objectTagKind, taggedObjectStructureKind };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const require_base = require("./base.cjs");
|
|
2
|
+
//#region scripts/modeling/taggedObject/helper.ts
|
|
3
|
+
function getTagValue(objectTag) {
|
|
4
|
+
return require_base.objectTagKind.getValue(objectTag);
|
|
5
|
+
}
|
|
6
|
+
function hasTagValue(...args) {
|
|
7
|
+
if (args.length === 1) {
|
|
8
|
+
const [value] = args;
|
|
9
|
+
return (input) => hasTagValue(input, value);
|
|
10
|
+
}
|
|
11
|
+
const [input, value] = args;
|
|
12
|
+
if (!require_base.objectTagKind.has(input)) return false;
|
|
13
|
+
const tagValue = require_base.objectTagKind.getValue(input);
|
|
14
|
+
return Array.isArray(value) ? value.includes(tagValue) : tagValue === value;
|
|
15
|
+
}
|
|
16
|
+
function taggedObject(tag, props) {
|
|
17
|
+
return {
|
|
18
|
+
...props,
|
|
19
|
+
[require_base.objectTagKind.runTimeKey]: tag
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function createTaggedObject(name) {
|
|
23
|
+
return (shape) => require_base.TaggedObjectStructure(name, shape);
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
exports.createTaggedObject = createTaggedObject;
|
|
27
|
+
exports.getTagValue = getTagValue;
|
|
28
|
+
exports.hasTagValue = hasTagValue;
|
|
29
|
+
exports.taggedObject = taggedObject;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ExtractByTagValue, GetTagValue, ShapeTaggedObjectStructure, TaggedObjectStructure, ObjectTag } from './base';
|
|
2
|
+
import type * as DKind from '../../kind';
|
|
3
|
+
import type * as DCommon from '../../common';
|
|
4
|
+
import type * as DDataStructure from '../../dataStructure';
|
|
5
|
+
import type * as DObject from '../../object';
|
|
6
|
+
export declare function getTagValue<GenericObjectTag extends ObjectTag>(objectTag: GenericObjectTag): GetTagValue<GenericObjectTag>;
|
|
7
|
+
export declare function hasTagValue<GenericInput extends unknown, GenericTagValue extends (GenericInput extends ObjectTag ? GetTagValue<GenericInput> : never)>(value: DCommon.MaybeArray<GenericTagValue>): (input: GenericInput) => input is ExtractByTagValue<GenericInput, GenericTagValue>;
|
|
8
|
+
export declare function hasTagValue<GenericInput extends unknown, GenericTagValue extends (GenericInput extends ObjectTag ? GetTagValue<GenericInput> : never)>(input: GenericInput, value: DCommon.MaybeArray<GenericTagValue>): input is ExtractByTagValue<GenericInput, GenericTagValue>;
|
|
9
|
+
export declare function taggedObject<GenericTaggedObject extends ObjectTag>(...args: GenericTaggedObject extends unknown ? [
|
|
10
|
+
tag: NoInfer<GetTagValue<GenericTaggedObject>>,
|
|
11
|
+
props: NoInfer<DCommon.SimplifyTopLevel<DKind.Remove<ExtractByTagValue<GenericTaggedObject, GetTagValue<GenericTaggedObject>>>>>
|
|
12
|
+
] : never): GenericTaggedObject;
|
|
13
|
+
export type RequireTaggedObjectSameShape<GenericTaggedObject extends ObjectTag, GenericTaggedObjectShape extends ShapeTaggedObjectStructure> = DCommon.IsEqual<DCommon.SimplifyTopLevel<DObject.DeepReadonly<DKind.Remove<GenericTaggedObject>>>, DCommon.SimplifyTopLevel<DObject.DeepReadonly<DDataStructure.ShapeObjectStructureValue<GenericTaggedObjectShape>>>> extends true ? unknown : DCommon.ComputedTypeError<"Shape do not match.">;
|
|
14
|
+
export declare function createTaggedObject<GenericTaggedObject extends ObjectTag>(name: GetTagValue<GenericTaggedObject>): <GenericShape extends ShapeTaggedObjectStructure<GenericTaggedObject>>(shape: (GenericShape & RequireTaggedObjectSameShape<GenericTaggedObject, GenericShape>)) => TaggedObjectStructure<GenericTaggedObject>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { TaggedObjectStructure, objectTagKind } from "./base.mjs";
|
|
2
|
+
//#region scripts/modeling/taggedObject/helper.ts
|
|
3
|
+
function getTagValue(objectTag) {
|
|
4
|
+
return objectTagKind.getValue(objectTag);
|
|
5
|
+
}
|
|
6
|
+
function hasTagValue(...args) {
|
|
7
|
+
if (args.length === 1) {
|
|
8
|
+
const [value] = args;
|
|
9
|
+
return (input) => hasTagValue(input, value);
|
|
10
|
+
}
|
|
11
|
+
const [input, value] = args;
|
|
12
|
+
if (!objectTagKind.has(input)) return false;
|
|
13
|
+
const tagValue = objectTagKind.getValue(input);
|
|
14
|
+
return Array.isArray(value) ? value.includes(tagValue) : tagValue === value;
|
|
15
|
+
}
|
|
16
|
+
function taggedObject(tag, props) {
|
|
17
|
+
return {
|
|
18
|
+
...props,
|
|
19
|
+
[objectTagKind.runTimeKey]: tag
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function createTaggedObject(name) {
|
|
23
|
+
return (shape) => TaggedObjectStructure(name, shape);
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { createTaggedObject, getTagValue, hasTagValue, taggedObject };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ComputeGreaterThanCompatibility, ComputeLessThanCompatibility, GreaterThan, IsImpossibleToApplyGreaterThan, IsImpossibleToApplyLessThan, LessThan } from './constraints';
|
|
2
2
|
import { RequireSimpleLiteral } from './types';
|
|
3
3
|
import type * as DCommon from '../common';
|
|
4
|
-
type ApplyGreaterThan<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThan<GenericValue, GreaterThan<GenericThreshold>> extends true ? never : ComputeGreaterThanCompatibility<GenericValue, GreaterThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult
|
|
5
|
-
type ApplyLessThan<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThan<GenericValue, LessThan<GenericThreshold>> extends true ? never : ComputeLessThanCompatibility<GenericValue, LessThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult
|
|
4
|
+
type ApplyGreaterThan<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThan<GenericValue, GreaterThan<GenericThreshold>> extends true ? never : ComputeGreaterThanCompatibility<GenericValue, GreaterThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & GreaterThan<GenericThreshold> : never : never;
|
|
5
|
+
type ApplyLessThan<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThan<GenericValue, LessThan<GenericThreshold>> extends true ? never : ComputeLessThanCompatibility<GenericValue, LessThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & LessThan<GenericThreshold> : never : never;
|
|
6
6
|
type BetweenThanOutput<GenericValue extends number, GenericGreater extends number, GenericLess extends number> = ApplyLessThan<ApplyGreaterThan<GenericValue, GenericGreater>, GenericLess>;
|
|
7
7
|
type RequireApplyBetweenThan<GenericNumber extends number> = RequireSimpleLiteral<GenericNumber>;
|
|
8
8
|
type RequireApplyBetweenThanBoolean<GenericNumber extends number> = DCommon.IsEqual<GenericNumber, number> extends true ? unknown : RequireApplyBetweenThan<GenericNumber>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ComputeGreaterThanOrEqualCompatibility, ComputeLessThanOrEqualCompatibility, GreaterThanOrEqual, IsImpossibleToApplyGreaterThanOrEqual, IsImpossibleToApplyLessThanOrEqual, LessThanOrEqual } from './constraints';
|
|
2
2
|
import { RequireSimpleLiteral } from './types';
|
|
3
3
|
import type * as DCommon from '../common';
|
|
4
|
-
type ApplyGreaterThanOrEqual<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThanOrEqual<GenericValue, GreaterThanOrEqual<GenericThreshold>> extends true ? never : ComputeGreaterThanOrEqualCompatibility<GenericValue, GreaterThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult
|
|
5
|
-
type ApplyLessThanOrEqual<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThanOrEqual<GenericValue, LessThanOrEqual<GenericThreshold>> extends true ? never : ComputeLessThanOrEqualCompatibility<GenericValue, LessThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult
|
|
4
|
+
type ApplyGreaterThanOrEqual<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThanOrEqual<GenericValue, GreaterThanOrEqual<GenericThreshold>> extends true ? never : ComputeGreaterThanOrEqualCompatibility<GenericValue, GreaterThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & GreaterThanOrEqual<GenericThreshold> : never : never;
|
|
5
|
+
type ApplyLessThanOrEqual<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThanOrEqual<GenericValue, LessThanOrEqual<GenericThreshold>> extends true ? never : ComputeLessThanOrEqualCompatibility<GenericValue, LessThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & LessThanOrEqual<GenericThreshold> : never : never;
|
|
6
6
|
type BetweenThanOrEqualOutput<GenericValue extends number, GenericGreater extends number, GenericLess extends number> = ApplyLessThanOrEqual<ApplyGreaterThanOrEqual<GenericValue, GenericGreater>, GenericLess>;
|
|
7
7
|
type RequireApplyBetweenThanOrEqual<GenericNumber extends number> = RequireSimpleLiteral<GenericNumber>;
|
|
8
8
|
type RequireApplyBetweenThanOrEqualBoolean<GenericNumber extends number> = DCommon.IsEqual<GenericNumber, number> extends true ? unknown : RequireApplyBetweenThanOrEqual<GenericNumber>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ComputeGreaterThanCompatibility, GreaterThan, IsImpossibleToApplyGreaterThan } from './constraints';
|
|
2
2
|
import { RequireSimpleLiteral } from './types';
|
|
3
3
|
import type * as DCommon from '../common';
|
|
4
|
-
type GreaterThanOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThan<GenericValue, GreaterThan<GenericThreshold>> extends true ? never : ComputeGreaterThanCompatibility<GenericValue, GreaterThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult
|
|
4
|
+
type GreaterThanOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThan<GenericValue, GreaterThan<GenericThreshold>> extends true ? never : ComputeGreaterThanCompatibility<GenericValue, GreaterThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & GreaterThan<GenericThreshold> : never : never;
|
|
5
5
|
type RequireApplyGreaterThan<GenericThreshold extends number> = RequireSimpleLiteral<GenericThreshold>;
|
|
6
6
|
type RequireApplyGreaterThanBoolean<GenericThreshold extends number> = DCommon.IsEqual<GenericThreshold, number> extends true ? unknown : RequireApplyGreaterThan<GenericThreshold>;
|
|
7
7
|
export declare function greaterThan<GenericValue extends number, const GenericThreshold extends number>(threshold: GenericThreshold & RequireApplyGreaterThan<GenericThreshold>): (value: GenericValue) => value is GreaterThanOutput<GenericValue, GenericThreshold>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ComputeGreaterThanOrEqualCompatibility, GreaterThanOrEqual, IsImpossibleToApplyGreaterThanOrEqual } from './constraints';
|
|
2
2
|
import { RequireSimpleLiteral } from './types';
|
|
3
3
|
import type * as DCommon from '../common';
|
|
4
|
-
type GreaterThanOrEqualOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThanOrEqual<GenericValue, GreaterThanOrEqual<GenericThreshold>> extends true ? never : ComputeGreaterThanOrEqualCompatibility<GenericValue, GreaterThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult
|
|
4
|
+
type GreaterThanOrEqualOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThanOrEqual<GenericValue, GreaterThanOrEqual<GenericThreshold>> extends true ? never : ComputeGreaterThanOrEqualCompatibility<GenericValue, GreaterThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & GreaterThanOrEqual<GenericThreshold> : never : never;
|
|
5
5
|
type RequireApplyGreaterThanOrEqual<GenericThreshold extends number> = RequireSimpleLiteral<GenericThreshold>;
|
|
6
6
|
type RequireApplyGreaterThanOrEqualBoolean<GenericThreshold extends number> = DCommon.IsEqual<GenericThreshold, number> extends true ? unknown : RequireApplyGreaterThanOrEqual<GenericThreshold>;
|
|
7
7
|
export declare function greaterThanOrEqual<GenericValue extends number, const GenericThreshold extends number>(threshold: GenericThreshold & RequireApplyGreaterThanOrEqual<GenericThreshold>): (value: GenericValue) => value is GreaterThanOrEqualOutput<GenericValue, GenericThreshold>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ComputeLessThanCompatibility, IsImpossibleToApplyLessThan, LessThan } from './constraints';
|
|
2
2
|
import { RequireSimpleLiteral } from './types';
|
|
3
3
|
import type * as DCommon from '../common';
|
|
4
|
-
type LessThanOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThan<GenericValue, LessThan<GenericThreshold>> extends true ? never : ComputeLessThanCompatibility<GenericValue, LessThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult
|
|
4
|
+
type LessThanOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThan<GenericValue, LessThan<GenericThreshold>> extends true ? never : ComputeLessThanCompatibility<GenericValue, LessThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & LessThan<GenericThreshold> : never : never;
|
|
5
5
|
type RequireApplyLessThan<GenericThreshold extends number> = RequireSimpleLiteral<GenericThreshold>;
|
|
6
6
|
type RequireApplyLessThanBoolean<GenericThreshold extends number> = DCommon.IsEqual<GenericThreshold, number> extends true ? unknown : RequireApplyLessThan<GenericThreshold>;
|
|
7
7
|
export declare function lessThan<GenericValue extends number, const GenericThreshold extends number>(threshold: GenericThreshold & RequireApplyLessThan<GenericThreshold>): (value: GenericValue) => value is LessThanOutput<GenericValue, GenericThreshold>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ComputeLessThanOrEqualCompatibility, IsImpossibleToApplyLessThanOrEqual, LessThanOrEqual } from './constraints';
|
|
2
2
|
import { RequireSimpleLiteral } from './types';
|
|
3
3
|
import type * as DCommon from '../common';
|
|
4
|
-
type LessThanOrEqualOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThanOrEqual<GenericValue, LessThanOrEqual<GenericThreshold>> extends true ? never : ComputeLessThanOrEqualCompatibility<GenericValue, LessThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult
|
|
4
|
+
type LessThanOrEqualOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThanOrEqual<GenericValue, LessThanOrEqual<GenericThreshold>> extends true ? never : ComputeLessThanOrEqualCompatibility<GenericValue, LessThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & LessThanOrEqual<GenericThreshold> : never : never;
|
|
5
5
|
type RequireApplyLessThanOrEqual<GenericThreshold extends number> = RequireSimpleLiteral<GenericThreshold>;
|
|
6
6
|
type RequireApplyLessThanOrEqualBoolean<GenericThreshold extends number> = DCommon.IsEqual<GenericThreshold, number> extends true ? unknown : RequireApplyLessThanOrEqual<GenericThreshold>;
|
|
7
7
|
export declare function lessThanOrEqual<GenericValue extends number, const GenericThreshold extends number>(threshold: GenericThreshold & RequireApplyLessThanOrEqual<GenericThreshold>): (value: GenericValue) => value is LessThanOrEqualOutput<GenericValue, GenericThreshold>;
|
package/dist/number/sort.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type * as DArray from '../array';
|
|
2
2
|
import type * as DCommon from '../common';
|
|
3
|
-
type SortOutput<GenericArray extends readonly number[]> = DArray.ReapplyCompatiblesConstraints<GenericArray, readonly GenericArray[number][]
|
|
3
|
+
type SortOutput<GenericArray extends readonly number[]> = GenericArray extends unknown ? DArray.ReapplyCompatiblesConstraints<GenericArray, readonly GenericArray[number][]> : never;
|
|
4
4
|
export declare function sort<GenericArray extends readonly number[]>(type: DCommon.SortType): (array: GenericArray) => SortOutput<GenericArray>;
|
|
5
5
|
export declare function sort<GenericArray extends readonly number[]>(array: GenericArray, type: DCommon.SortType): SortOutput<GenericArray>;
|
|
6
6
|
export {};
|
package/dist/pattern/index.cjs
CHANGED
|
@@ -12,6 +12,10 @@ const require_matchWithString = require("./matchWithString.cjs");
|
|
|
12
12
|
const require_matchWithNumber = require("./matchWithNumber.cjs");
|
|
13
13
|
const require_matchWithStringOtherwise = require("./matchWithStringOtherwise.cjs");
|
|
14
14
|
const require_matchWithNumberOtherwise = require("./matchWithNumberOtherwise.cjs");
|
|
15
|
+
const require_matchWithTaggedObject = require("./matchWithTaggedObject.cjs");
|
|
16
|
+
const require_matchWithTaggedObjectOtherwise = require("./matchWithTaggedObjectOtherwise.cjs");
|
|
17
|
+
const require_matchWithEntity = require("./matchWithEntity.cjs");
|
|
18
|
+
const require_matchWithEntityOtherwise = require("./matchWithEntityOtherwise.cjs");
|
|
15
19
|
//#region scripts/pattern/index.ts
|
|
16
20
|
var pattern_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
17
21
|
InvalidExhaustivePatternError: () => require_builder.InvalidExhaustivePatternError,
|
|
@@ -20,10 +24,14 @@ var pattern_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
|
20
24
|
isResult: () => require_result.isResult,
|
|
21
25
|
match: () => require_index.match,
|
|
22
26
|
matchBuilder: () => require_builder.matchBuilder,
|
|
27
|
+
matchWithEntity: () => require_matchWithEntity.matchWithEntity,
|
|
28
|
+
matchWithEntityOtherwise: () => require_matchWithEntityOtherwise.matchWithEntityOtherwise,
|
|
23
29
|
matchWithNumber: () => require_matchWithNumber.matchWithNumber,
|
|
24
30
|
matchWithNumberOtherwise: () => require_matchWithNumberOtherwise.matchWithNumberOtherwise,
|
|
25
31
|
matchWithString: () => require_matchWithString.matchWithString,
|
|
26
32
|
matchWithStringOtherwise: () => require_matchWithStringOtherwise.matchWithStringOtherwise,
|
|
33
|
+
matchWithTaggedObject: () => require_matchWithTaggedObject.matchWithTaggedObject,
|
|
34
|
+
matchWithTaggedObjectOtherwise: () => require_matchWithTaggedObjectOtherwise.matchWithTaggedObjectOtherwise,
|
|
27
35
|
otherwise: () => require_otherwise.otherwise,
|
|
28
36
|
result: () => require_result.result,
|
|
29
37
|
union: () => require_union.union,
|
|
@@ -37,10 +45,14 @@ exports.isMatch = require_isMatch.isMatch;
|
|
|
37
45
|
exports.isResult = require_result.isResult;
|
|
38
46
|
exports.match = require_index.match;
|
|
39
47
|
exports.matchBuilder = require_builder.matchBuilder;
|
|
48
|
+
exports.matchWithEntity = require_matchWithEntity.matchWithEntity;
|
|
49
|
+
exports.matchWithEntityOtherwise = require_matchWithEntityOtherwise.matchWithEntityOtherwise;
|
|
40
50
|
exports.matchWithNumber = require_matchWithNumber.matchWithNumber;
|
|
41
51
|
exports.matchWithNumberOtherwise = require_matchWithNumberOtherwise.matchWithNumberOtherwise;
|
|
42
52
|
exports.matchWithString = require_matchWithString.matchWithString;
|
|
43
53
|
exports.matchWithStringOtherwise = require_matchWithStringOtherwise.matchWithStringOtherwise;
|
|
54
|
+
exports.matchWithTaggedObject = require_matchWithTaggedObject.matchWithTaggedObject;
|
|
55
|
+
exports.matchWithTaggedObjectOtherwise = require_matchWithTaggedObjectOtherwise.matchWithTaggedObjectOtherwise;
|
|
44
56
|
exports.otherwise = require_otherwise.otherwise;
|
|
45
57
|
Object.defineProperty(exports, "pattern_exports", {
|
|
46
58
|
enumerable: true,
|
package/dist/pattern/index.d.ts
CHANGED
|
@@ -11,3 +11,7 @@ export * from './matchWithString';
|
|
|
11
11
|
export * from './matchWithNumber';
|
|
12
12
|
export * from './matchWithStringOtherwise';
|
|
13
13
|
export * from './matchWithNumberOtherwise';
|
|
14
|
+
export * from './matchWithTaggedObject';
|
|
15
|
+
export * from './matchWithTaggedObjectOtherwise';
|
|
16
|
+
export * from './matchWithEntity';
|
|
17
|
+
export * from './matchWithEntityOtherwise';
|
package/dist/pattern/index.mjs
CHANGED
|
@@ -12,6 +12,10 @@ import { matchWithString } from "./matchWithString.mjs";
|
|
|
12
12
|
import { matchWithNumber } from "./matchWithNumber.mjs";
|
|
13
13
|
import { matchWithStringOtherwise } from "./matchWithStringOtherwise.mjs";
|
|
14
14
|
import { matchWithNumberOtherwise } from "./matchWithNumberOtherwise.mjs";
|
|
15
|
+
import { matchWithTaggedObject } from "./matchWithTaggedObject.mjs";
|
|
16
|
+
import { matchWithTaggedObjectOtherwise } from "./matchWithTaggedObjectOtherwise.mjs";
|
|
17
|
+
import { matchWithEntity } from "./matchWithEntity.mjs";
|
|
18
|
+
import { matchWithEntityOtherwise } from "./matchWithEntityOtherwise.mjs";
|
|
15
19
|
//#region scripts/pattern/index.ts
|
|
16
20
|
var pattern_exports = /* @__PURE__ */ __exportAll({
|
|
17
21
|
InvalidExhaustivePatternError: () => InvalidExhaustivePatternError,
|
|
@@ -20,10 +24,14 @@ var pattern_exports = /* @__PURE__ */ __exportAll({
|
|
|
20
24
|
isResult: () => isResult,
|
|
21
25
|
match: () => match,
|
|
22
26
|
matchBuilder: () => matchBuilder,
|
|
27
|
+
matchWithEntity: () => matchWithEntity,
|
|
28
|
+
matchWithEntityOtherwise: () => matchWithEntityOtherwise,
|
|
23
29
|
matchWithNumber: () => matchWithNumber,
|
|
24
30
|
matchWithNumberOtherwise: () => matchWithNumberOtherwise,
|
|
25
31
|
matchWithString: () => matchWithString,
|
|
26
32
|
matchWithStringOtherwise: () => matchWithStringOtherwise,
|
|
33
|
+
matchWithTaggedObject: () => matchWithTaggedObject,
|
|
34
|
+
matchWithTaggedObjectOtherwise: () => matchWithTaggedObjectOtherwise,
|
|
27
35
|
otherwise: () => otherwise,
|
|
28
36
|
result: () => result,
|
|
29
37
|
union: () => union,
|
|
@@ -31,4 +39,4 @@ var pattern_exports = /* @__PURE__ */ __exportAll({
|
|
|
31
39
|
whenNot: () => whenNot
|
|
32
40
|
});
|
|
33
41
|
//#endregion
|
|
34
|
-
export { InvalidExhaustivePatternError, exhaustive, isMatch, isResult, match, matchBuilder, matchWithNumber, matchWithNumberOtherwise, matchWithString, matchWithStringOtherwise, otherwise, pattern_exports, result, union, when, whenNot };
|
|
42
|
+
export { InvalidExhaustivePatternError, exhaustive, isMatch, isResult, match, matchBuilder, matchWithEntity, matchWithEntityOtherwise, matchWithNumber, matchWithNumberOtherwise, matchWithString, matchWithStringOtherwise, matchWithTaggedObject, matchWithTaggedObjectOtherwise, otherwise, pattern_exports, result, union, when, whenNot };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
const require_base = require("../modeling/entity/base.cjs");
|
|
2
|
+
//#region scripts/pattern/matchWithEntity.ts
|
|
3
|
+
function matchWithEntity(...args) {
|
|
4
|
+
if (args.length === 1) {
|
|
5
|
+
const [matcher] = args;
|
|
6
|
+
return (input) => matcher[require_base.entityKind.getValue(input)](input);
|
|
7
|
+
}
|
|
8
|
+
const [input, matcher] = args;
|
|
9
|
+
return matcher[require_base.entityKind.getValue(input)](input);
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
exports.matchWithEntity = matchWithEntity;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type * as DCommon from '../common';
|
|
2
|
+
import * as DModeling from '../modeling';
|
|
3
|
+
import type * as DObject from '../object';
|
|
4
|
+
import type * as DString from '../string';
|
|
5
|
+
type ComputeMatcher<GenericEntity extends DModeling.Entity> = {
|
|
6
|
+
[Entity in GenericEntity as DModeling.GetEntityName<Entity>]: (value: Entity) => unknown;
|
|
7
|
+
};
|
|
8
|
+
type ForbiddenMoreKey<GenericEntity extends DModeling.Entity, GenericMatcher extends ComputeMatcher<GenericEntity>> = DObject.ForbiddenKey<GenericMatcher, Extract<Exclude<keyof GenericMatcher, DModeling.GetEntityName<GenericEntity>>, string>>;
|
|
9
|
+
type RequireSimpleName<GenericEntity extends DModeling.Entity> = DString.RequireSimpleLiteral<DModeling.GetEntityName<GenericEntity>>;
|
|
10
|
+
export declare function matchWithEntity<GenericEntity extends DModeling.Entity, GenericMatcher extends ComputeMatcher<GenericEntity>>(matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericEntity>, GenericMatcher> & ForbiddenMoreKey<NoInfer<GenericEntity>, GenericMatcher>)): (input: GenericEntity & RequireSimpleName<GenericEntity>) => ReturnType<Extract<NoInfer<GenericMatcher>[keyof GenericMatcher], DCommon.AnyFunction>>;
|
|
11
|
+
export declare function matchWithEntity<GenericEntity extends DModeling.Entity, GenericMatcher extends ComputeMatcher<GenericEntity>>(input: GenericEntity & RequireSimpleName<GenericEntity>, matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericEntity>, GenericMatcher> & ForbiddenMoreKey<GenericEntity, GenericMatcher>)): ReturnType<Extract<GenericMatcher[keyof GenericMatcher], DCommon.AnyFunction>>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { entityKind } from "../modeling/entity/base.mjs";
|
|
2
|
+
//#region scripts/pattern/matchWithEntity.ts
|
|
3
|
+
function matchWithEntity(...args) {
|
|
4
|
+
if (args.length === 1) {
|
|
5
|
+
const [matcher] = args;
|
|
6
|
+
return (input) => matcher[entityKind.getValue(input)](input);
|
|
7
|
+
}
|
|
8
|
+
const [input, matcher] = args;
|
|
9
|
+
return matcher[entityKind.getValue(input)](input);
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { matchWithEntity };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const require_base = require("../modeling/entity/base.cjs");
|
|
2
|
+
//#region scripts/pattern/matchWithEntityOtherwise.ts
|
|
3
|
+
function matchWithEntityOtherwise(...args) {
|
|
4
|
+
if (args.length === 2) {
|
|
5
|
+
const [matcher, otherwise] = args;
|
|
6
|
+
return (input) => matchWithEntityOtherwise(input, matcher, otherwise);
|
|
7
|
+
}
|
|
8
|
+
const [input, matcher, otherwise] = args;
|
|
9
|
+
const entityName = require_base.entityKind.getValue(input);
|
|
10
|
+
return matcher[entityName] === void 0 ? otherwise(input) : matcher[entityName](input);
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
exports.matchWithEntityOtherwise = matchWithEntityOtherwise;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type * as DCommon from '../common';
|
|
2
|
+
import * as DModeling from '../modeling';
|
|
3
|
+
import type * as DObject from '../object';
|
|
4
|
+
import type * as DString from '../string';
|
|
5
|
+
type ComputeMatcher<GenericEntity extends DModeling.Entity> = {
|
|
6
|
+
[Entity in GenericEntity as DModeling.GetEntityName<Entity>]?: (value: Entity) => unknown;
|
|
7
|
+
};
|
|
8
|
+
type ForbiddenMoreKey<GenericEntity extends DModeling.Entity, GenericMatcher extends ComputeMatcher<GenericEntity>> = DObject.ForbiddenKey<GenericMatcher, Extract<Exclude<keyof GenericMatcher, DModeling.GetEntityName<GenericEntity>>, string>>;
|
|
9
|
+
type HandledKeys<GenericMatcher extends object> = Extract<DObject.GetPropsWithValueExtends<GenericMatcher, DCommon.AnyFunction>, string>;
|
|
10
|
+
type UnhandledEntity<GenericEntity extends DModeling.Entity, GenericMatcher extends object> = Exclude<GenericEntity, DModeling.ExtractByEntityName<GenericEntity, HandledKeys<GenericMatcher>>>;
|
|
11
|
+
type RequireSimpleName<GenericEntity extends DModeling.Entity> = DString.RequireSimpleLiteral<DModeling.GetEntityName<GenericEntity>>;
|
|
12
|
+
export declare function matchWithEntityOtherwise<GenericEntity extends DModeling.Entity, GenericMatcher extends ComputeMatcher<GenericEntity>, GenericOutput>(matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericEntity>, GenericMatcher> & ForbiddenMoreKey<NoInfer<GenericEntity>, GenericMatcher>), otherwise: (value: UnhandledEntity<GenericEntity, GenericMatcher>) => GenericOutput): (input: GenericEntity & RequireSimpleName<GenericEntity>) => (ReturnType<Extract<NoInfer<GenericMatcher>[keyof GenericMatcher], DCommon.AnyFunction>> | GenericOutput);
|
|
13
|
+
export declare function matchWithEntityOtherwise<GenericEntity extends DModeling.Entity, GenericMatcher extends ComputeMatcher<GenericEntity>, GenericOutput>(input: GenericEntity & RequireSimpleName<GenericEntity>, matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericEntity>, GenericMatcher> & ForbiddenMoreKey<GenericEntity, GenericMatcher>), otherwise: (value: UnhandledEntity<GenericEntity, GenericMatcher>) => GenericOutput): (ReturnType<Extract<GenericMatcher[keyof GenericMatcher], DCommon.AnyFunction>> | GenericOutput);
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { entityKind } from "../modeling/entity/base.mjs";
|
|
2
|
+
//#region scripts/pattern/matchWithEntityOtherwise.ts
|
|
3
|
+
function matchWithEntityOtherwise(...args) {
|
|
4
|
+
if (args.length === 2) {
|
|
5
|
+
const [matcher, otherwise] = args;
|
|
6
|
+
return (input) => matchWithEntityOtherwise(input, matcher, otherwise);
|
|
7
|
+
}
|
|
8
|
+
const [input, matcher, otherwise] = args;
|
|
9
|
+
const entityName = entityKind.getValue(input);
|
|
10
|
+
return matcher[entityName] === void 0 ? otherwise(input) : matcher[entityName](input);
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { matchWithEntityOtherwise };
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
//#region scripts/pattern/matchWithNumberOtherwise.ts
|
|
2
|
-
function execute(input, matcher, otherwise) {
|
|
3
|
-
const callback = matcher[input];
|
|
4
|
-
return callback === void 0 ? otherwise(input) : callback(input);
|
|
5
|
-
}
|
|
6
2
|
function matchWithNumberOtherwise(...args) {
|
|
7
3
|
if (args.length === 2) {
|
|
8
4
|
const [matcher, otherwise] = args;
|
|
9
|
-
return (input) =>
|
|
5
|
+
return (input) => matchWithNumberOtherwise(input, matcher, otherwise);
|
|
10
6
|
}
|
|
11
7
|
const [input, matcher, otherwise] = args;
|
|
12
|
-
return
|
|
8
|
+
return matcher[input] === void 0 ? otherwise(input) : matcher[input](input);
|
|
13
9
|
}
|
|
14
10
|
//#endregion
|
|
15
11
|
exports.matchWithNumberOtherwise = matchWithNumberOtherwise;
|