@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,18 +1,18 @@
|
|
|
1
1
|
import { EntityStructure, Entity } from '../entity';
|
|
2
|
-
import type * as DCommon from '../../common';
|
|
3
2
|
import type * as DKind from '../../kind';
|
|
4
3
|
import type * as DDataStructure from '../../dataStructure';
|
|
5
4
|
export declare const flagKind: DKind.Handler<DKind.Definition<"@DuplojsLangModeling/flag", Record<string, unknown>>>;
|
|
6
|
-
export interface Flag<GenericName extends string = string
|
|
5
|
+
export interface Flag<GenericName extends Capitalize<string> = Capitalize<string>, GenericPayload extends unknown = unknown> extends DKind.Kind<typeof flagKind, Record<GenericName, GenericPayload>> {
|
|
7
6
|
}
|
|
7
|
+
export type GetFlagName<GenericFlag extends Flag> = GenericFlag extends Flag<infer InferredName extends Capitalize<string>> ? InferredName : never;
|
|
8
|
+
export type GetFlagPayload<GenericFlag extends Flag> = GenericFlag extends Flag<any, infer InferredPayload> ? InferredPayload : never;
|
|
8
9
|
declare const flagHandlerKind: DKind.Handler<DKind.Definition<"@DuplojsLangModeling/flag-handler", unknown>>;
|
|
9
|
-
export interface FlagHandler<GenericName extends string = string
|
|
10
|
+
export interface FlagHandler<GenericName extends Capitalize<string> = Capitalize<string>, GenericEntity extends Entity = Entity, GenericPayload extends unknown = unknown> extends DKind.Kind<typeof flagHandlerKind> {
|
|
10
11
|
readonly name: GenericName;
|
|
11
|
-
append<GenericInputEntity extends GenericEntity, const
|
|
12
|
-
append<GenericInputEntity extends GenericEntity, const
|
|
13
|
-
|
|
12
|
+
append<GenericInputEntity extends GenericEntity, const GenericInputPayload extends GenericPayload>(value: GenericInputPayload): (entity: GenericInputEntity) => (GenericInputEntity & Flag<GenericName, GenericInputPayload>);
|
|
13
|
+
append<GenericInputEntity extends GenericEntity, const GenericInputPayload extends GenericPayload>(entity: GenericInputEntity, value: GenericInputPayload): (GenericInputEntity & Flag<GenericName, GenericInputPayload>);
|
|
14
|
+
getPayload<GenericInputEntity extends GenericEntity & Flag<GenericName, GenericPayload>>(entity: GenericInputEntity): DKind.GetValue<typeof flagKind, GenericInputEntity>[GenericName];
|
|
14
15
|
has<GenericInputEntity extends GenericEntity>(entity: GenericInputEntity): entity is Extract<GenericInputEntity, Flag<GenericName, any>>;
|
|
15
16
|
}
|
|
16
|
-
export declare function createFlag<
|
|
17
|
-
export type GetFlag<GenericHandler extends FlagHandler<any, any, any>> = GenericHandler extends FlagHandler<infer InferredName, any, infer InferredValue> ? Flag<InferredName, InferredValue> : never;
|
|
17
|
+
export declare function createFlag<GenericFLag extends Flag, GenericEntityStructure extends EntityStructure>(name: GetFlagName<GenericFLag>): FlagHandler<GetFlagName<GenericFLag>, DDataStructure.StructureValue<GenericEntityStructure>, GetFlagPayload<GenericFLag>>;
|
|
18
18
|
export {};
|
package/dist/modeling/index.cjs
CHANGED
|
@@ -4,51 +4,50 @@ const require_base = require("./entity/base.cjs");
|
|
|
4
4
|
const require_helper = require("./entity/helper.cjs");
|
|
5
5
|
const require_base$1 = require("./newType/base.cjs");
|
|
6
6
|
const require_helper$1 = require("./newType/helper.cjs");
|
|
7
|
-
const require_base$2 = require("./flag/base.cjs");
|
|
8
7
|
const require_namespace = require("./entity/namespace.cjs");
|
|
9
|
-
const require_base$
|
|
8
|
+
const require_base$2 = require("./fact/base.cjs");
|
|
9
|
+
const require_base$3 = require("./flag/base.cjs");
|
|
10
|
+
const require_base$4 = require("./taggedObject/base.cjs");
|
|
10
11
|
const require_helper$2 = require("./taggedObject/helper.cjs");
|
|
11
12
|
//#region scripts/modeling/index.ts
|
|
12
13
|
var modeling_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
13
|
-
EncodeEntityError: () => require_base.EncodeEntityError,
|
|
14
|
-
EncodeNewTypeError: () => require_base$1.EncodeNewTypeError,
|
|
15
|
-
EncodeTaggedObjectError: () => require_base$3.EncodeTaggedObjectError,
|
|
16
14
|
EntityStructure: () => require_base.EntityStructure,
|
|
17
15
|
NewTypeStructure: () => require_base$1.NewTypeStructure,
|
|
18
|
-
TaggedObjectStructure: () => require_base$
|
|
16
|
+
TaggedObjectStructure: () => require_base$4.TaggedObjectStructure,
|
|
19
17
|
createEntity: () => require_helper.createEntity,
|
|
20
18
|
createEntityNamespace: () => require_namespace.createEntityNamespace,
|
|
21
|
-
|
|
19
|
+
createFact: () => require_base$2.createFact,
|
|
20
|
+
createFlag: () => require_base$3.createFlag,
|
|
22
21
|
createKind: () => require_kind.createKind,
|
|
23
22
|
createNewType: () => require_helper$1.createNewType,
|
|
24
23
|
createTaggedObject: () => require_helper$2.createTaggedObject,
|
|
25
24
|
entityKind: () => require_base.entityKind,
|
|
26
25
|
entityStructureKind: () => require_base.entityStructureKind,
|
|
27
|
-
|
|
26
|
+
factKind: () => require_base$2.factKind,
|
|
27
|
+
flagKind: () => require_base$3.flagKind,
|
|
28
28
|
getTagValue: () => require_helper$2.getTagValue,
|
|
29
29
|
hasTagValue: () => require_helper$2.hasTagValue,
|
|
30
30
|
namespaceKind: () => require_namespace.namespaceKind,
|
|
31
31
|
newTypeStructureKind: () => require_base$1.newTypeStructureKind,
|
|
32
|
-
objectTagKind: () => require_base$
|
|
32
|
+
objectTagKind: () => require_base$4.objectTagKind,
|
|
33
33
|
taggedObject: () => require_helper$2.taggedObject,
|
|
34
|
-
taggedObjectStructureKind: () => require_base$
|
|
34
|
+
taggedObjectStructureKind: () => require_base$4.taggedObjectStructureKind
|
|
35
35
|
});
|
|
36
36
|
//#endregion
|
|
37
|
-
exports.EncodeEntityError = require_base.EncodeEntityError;
|
|
38
|
-
exports.EncodeNewTypeError = require_base$1.EncodeNewTypeError;
|
|
39
|
-
exports.EncodeTaggedObjectError = require_base$3.EncodeTaggedObjectError;
|
|
40
37
|
exports.EntityStructure = require_base.EntityStructure;
|
|
41
38
|
exports.NewTypeStructure = require_base$1.NewTypeStructure;
|
|
42
|
-
exports.TaggedObjectStructure = require_base$
|
|
39
|
+
exports.TaggedObjectStructure = require_base$4.TaggedObjectStructure;
|
|
43
40
|
exports.createEntity = require_helper.createEntity;
|
|
44
41
|
exports.createEntityNamespace = require_namespace.createEntityNamespace;
|
|
45
|
-
exports.
|
|
42
|
+
exports.createFact = require_base$2.createFact;
|
|
43
|
+
exports.createFlag = require_base$3.createFlag;
|
|
46
44
|
exports.createKind = require_kind.createKind;
|
|
47
45
|
exports.createNewType = require_helper$1.createNewType;
|
|
48
46
|
exports.createTaggedObject = require_helper$2.createTaggedObject;
|
|
49
47
|
exports.entityKind = require_base.entityKind;
|
|
50
48
|
exports.entityStructureKind = require_base.entityStructureKind;
|
|
51
|
-
exports.
|
|
49
|
+
exports.factKind = require_base$2.factKind;
|
|
50
|
+
exports.flagKind = require_base$3.flagKind;
|
|
52
51
|
exports.getTagValue = require_helper$2.getTagValue;
|
|
53
52
|
exports.hasTagValue = require_helper$2.hasTagValue;
|
|
54
53
|
Object.defineProperty(exports, "modeling_exports", {
|
|
@@ -59,6 +58,6 @@ Object.defineProperty(exports, "modeling_exports", {
|
|
|
59
58
|
});
|
|
60
59
|
exports.namespaceKind = require_namespace.namespaceKind;
|
|
61
60
|
exports.newTypeStructureKind = require_base$1.newTypeStructureKind;
|
|
62
|
-
exports.objectTagKind = require_base$
|
|
61
|
+
exports.objectTagKind = require_base$4.objectTagKind;
|
|
63
62
|
exports.taggedObject = require_helper$2.taggedObject;
|
|
64
|
-
exports.taggedObjectStructureKind = require_base$
|
|
63
|
+
exports.taggedObjectStructureKind = require_base$4.taggedObjectStructureKind;
|
package/dist/modeling/index.d.ts
CHANGED
package/dist/modeling/index.mjs
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import { __exportAll } from "../_virtual/_rolldown/runtime.mjs";
|
|
2
2
|
import { createKind } from "./kind.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { EntityStructure, entityKind, entityStructureKind } from "./entity/base.mjs";
|
|
4
4
|
import { createEntity } from "./entity/helper.mjs";
|
|
5
|
-
import {
|
|
5
|
+
import { NewTypeStructure, newTypeStructureKind } from "./newType/base.mjs";
|
|
6
6
|
import { createNewType } from "./newType/helper.mjs";
|
|
7
|
-
import { createFlag, flagKind } from "./flag/base.mjs";
|
|
8
7
|
import { createEntityNamespace, namespaceKind } from "./entity/namespace.mjs";
|
|
9
|
-
import {
|
|
8
|
+
import { createFact, factKind } from "./fact/base.mjs";
|
|
9
|
+
import { createFlag, flagKind } from "./flag/base.mjs";
|
|
10
|
+
import { TaggedObjectStructure, objectTagKind, taggedObjectStructureKind } from "./taggedObject/base.mjs";
|
|
10
11
|
import { createTaggedObject, getTagValue, hasTagValue, taggedObject } from "./taggedObject/helper.mjs";
|
|
11
12
|
//#region scripts/modeling/index.ts
|
|
12
13
|
var modeling_exports = /* @__PURE__ */ __exportAll({
|
|
13
|
-
EncodeEntityError: () => EncodeEntityError,
|
|
14
|
-
EncodeNewTypeError: () => EncodeNewTypeError,
|
|
15
|
-
EncodeTaggedObjectError: () => EncodeTaggedObjectError,
|
|
16
14
|
EntityStructure: () => EntityStructure,
|
|
17
15
|
NewTypeStructure: () => NewTypeStructure,
|
|
18
16
|
TaggedObjectStructure: () => TaggedObjectStructure,
|
|
19
17
|
createEntity: () => createEntity,
|
|
20
18
|
createEntityNamespace: () => createEntityNamespace,
|
|
19
|
+
createFact: () => createFact,
|
|
21
20
|
createFlag: () => createFlag,
|
|
22
21
|
createKind: () => createKind,
|
|
23
22
|
createNewType: () => createNewType,
|
|
24
23
|
createTaggedObject: () => createTaggedObject,
|
|
25
24
|
entityKind: () => entityKind,
|
|
26
25
|
entityStructureKind: () => entityStructureKind,
|
|
26
|
+
factKind: () => factKind,
|
|
27
27
|
flagKind: () => flagKind,
|
|
28
28
|
getTagValue: () => getTagValue,
|
|
29
29
|
hasTagValue: () => hasTagValue,
|
|
@@ -34,4 +34,4 @@ var modeling_exports = /* @__PURE__ */ __exportAll({
|
|
|
34
34
|
taggedObjectStructureKind: () => taggedObjectStructureKind
|
|
35
35
|
});
|
|
36
36
|
//#endregion
|
|
37
|
-
export {
|
|
37
|
+
export { EntityStructure, NewTypeStructure, TaggedObjectStructure, createEntity, createEntityNamespace, createFact, createFlag, createKind, createNewType, createTaggedObject, entityKind, entityStructureKind, factKind, flagKind, getTagValue, hasTagValue, modeling_exports, namespaceKind, newTypeStructureKind, objectTagKind, taggedObject, taggedObjectStructureKind };
|
|
@@ -1,28 +1,16 @@
|
|
|
1
|
-
const require_parentClass = require("../../kind/parentClass.cjs");
|
|
2
1
|
const require_callThen = require("../../common/callThen.cjs");
|
|
3
2
|
const require_create = require("../../either/left/create.cjs");
|
|
4
|
-
const require_is = require("../../either/left/is.cjs");
|
|
5
3
|
const require_create$1 = require("../../either/right/create.cjs");
|
|
6
|
-
const require_unwrap = require("../../either/left/unwrap.cjs");
|
|
7
|
-
const require_unwrap$1 = require("../../either/right/unwrap.cjs");
|
|
8
4
|
const require_justExec = require("../../common/justExec.cjs");
|
|
9
5
|
const require_resultSymbol = require("../../dataStructure/common/resultSymbol.cjs");
|
|
10
|
-
const
|
|
11
|
-
const require_base = require("../../dataStructure/structure/base.cjs");
|
|
12
|
-
const require_kind = require("../kind.cjs");
|
|
6
|
+
const require_base = require("../../dataStructure/common/error/base.cjs");
|
|
7
|
+
const require_base$1 = require("../../dataStructure/structure/base.cjs");
|
|
13
8
|
//#region scripts/modeling/newType/base.ts
|
|
14
|
-
const newTypeStructureKind =
|
|
15
|
-
var EncodeNewTypeError = class extends require_parentClass.parentClass(require_kind.createKind("encode-new-type-error"), Error) {
|
|
16
|
-
error;
|
|
17
|
-
constructor(error) {
|
|
18
|
-
super(void 0, "An error occurred while encoding a NewType. This can only happen if you are bypassing the type system.");
|
|
19
|
-
this.error = error;
|
|
20
|
-
}
|
|
21
|
-
};
|
|
9
|
+
const newTypeStructureKind = require("../kind.cjs").createKind("new-type-structure");
|
|
22
10
|
function executeNewTypeConstraints(structure, data, errorHandler) {
|
|
23
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);
|
|
24
12
|
}
|
|
25
|
-
const NewTypeStructure = require_base.createStructure(newTypeStructureKind, ({ init }) => (name, structure, newTypeConstraints) => init({
|
|
13
|
+
const NewTypeStructure = require_base$1.createStructure(newTypeStructureKind, ({ init }) => (name, structure, newTypeConstraints) => init({
|
|
26
14
|
constraints: [],
|
|
27
15
|
newTypeConstraints,
|
|
28
16
|
inner: structure
|
|
@@ -30,6 +18,7 @@ const NewTypeStructure = require_base.createStructure(newTypeStructureKind, ({ i
|
|
|
30
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)),
|
|
31
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))),
|
|
32
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))),
|
|
21
|
+
executeParse: (self, codecContext, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeParse(codecContext, 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))),
|
|
33
22
|
isAsynchronous: (self) => self.definition.inner.isAsynchronous() || self.definition.newTypeConstraints.some((value) => value.isAsynchronous())
|
|
34
23
|
}, {
|
|
35
24
|
name,
|
|
@@ -38,17 +27,17 @@ const NewTypeStructure = require_base.createStructure(newTypeStructureKind, ({ i
|
|
|
38
27
|
const [codecs] = args;
|
|
39
28
|
return (value) => self.decodeMap(codecs, value);
|
|
40
29
|
}
|
|
41
|
-
const errorHandler =
|
|
30
|
+
const errorHandler = require_base.createGetErrorHandler();
|
|
42
31
|
const [codecs, data] = args;
|
|
43
32
|
const result = self.executeDecode(codecs.context.value, data, errorHandler);
|
|
44
|
-
if (result instanceof Promise) return require_create.left("async-error",
|
|
33
|
+
if (result instanceof Promise) return require_create.left("async-error", new require_base.ErrorPromise());
|
|
45
34
|
if (result === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
|
|
46
35
|
return require_create$1.right("map-success", result);
|
|
47
36
|
},
|
|
48
37
|
map: (self, data) => {
|
|
49
|
-
const errorHandler =
|
|
38
|
+
const errorHandler = require_base.createGetErrorHandler();
|
|
50
39
|
const result = self.executeCheck(data, errorHandler);
|
|
51
|
-
if (result instanceof Promise) return require_create.left("async-error",
|
|
40
|
+
if (result instanceof Promise) return require_create.left("async-error", new require_base.ErrorPromise());
|
|
52
41
|
if (result === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
|
|
53
42
|
return require_create$1.right("map-success", data);
|
|
54
43
|
},
|
|
@@ -58,7 +47,7 @@ const NewTypeStructure = require_base.createStructure(newTypeStructureKind, ({ i
|
|
|
58
47
|
return (value) => self.asyncDecodeMap(codecs, value);
|
|
59
48
|
}
|
|
60
49
|
return require_justExec.justExec(async () => {
|
|
61
|
-
const errorHandler =
|
|
50
|
+
const errorHandler = require_base.createGetErrorHandler();
|
|
62
51
|
const [codecs, data] = args;
|
|
63
52
|
const result = await self.executeDecode(codecs.context.value, data, errorHandler);
|
|
64
53
|
if (result === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
|
|
@@ -66,17 +55,11 @@ const NewTypeStructure = require_base.createStructure(newTypeStructureKind, ({ i
|
|
|
66
55
|
});
|
|
67
56
|
},
|
|
68
57
|
asyncMap: async (self, data) => {
|
|
69
|
-
const errorHandler =
|
|
58
|
+
const errorHandler = require_base.createGetErrorHandler();
|
|
70
59
|
if (await self.executeCheck(data, errorHandler) === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
|
|
71
60
|
return require_create$1.right("map-success", data);
|
|
72
|
-
},
|
|
73
|
-
encodeNewType: async (self, codec, data) => {
|
|
74
|
-
const result = await self.asyncEncode(codec, data);
|
|
75
|
-
if (require_is.isLeft(result)) throw new EncodeNewTypeError(require_unwrap.unwrapLeft(result));
|
|
76
|
-
return require_unwrap$1.unwrapRight(result);
|
|
77
61
|
}
|
|
78
62
|
}));
|
|
79
63
|
//#endregion
|
|
80
|
-
exports.EncodeNewTypeError = EncodeNewTypeError;
|
|
81
64
|
exports.NewTypeStructure = NewTypeStructure;
|
|
82
65
|
exports.newTypeStructureKind = newTypeStructureKind;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as DKind from '../../kind';
|
|
1
|
+
import type * as DKind from '../../kind';
|
|
2
2
|
import * as DCommon from '../../common';
|
|
3
3
|
import type * as DArray from '../../array';
|
|
4
4
|
import * as DEither from '../../either';
|
|
@@ -24,21 +24,14 @@ export interface NewTypeStructureDefinition<GenericNewTypeConstraint extends rea
|
|
|
24
24
|
readonly inner: DDataStructure.Structure;
|
|
25
25
|
readonly newTypeConstraints: GenericNewTypeConstraint;
|
|
26
26
|
}
|
|
27
|
-
export type ComputeNewType<GenericName extends string, GenericValue extends unknown, GenericNewTypeConstraint extends readonly DDataStructure.Constraint<GenericValue>[], GenericIntersectionConstraintValue = DDataStructure.ConstraintValue<DArray.Unwrap<GenericNewTypeConstraint>>, GenericClearValue = DCommon.NeverCoalescing<DCommon.RemoveConstraint<GenericIntersectionConstraintValue>, unknown>> =
|
|
27
|
+
export type ComputeNewType<GenericName extends string, GenericValue extends unknown, GenericNewTypeConstraint extends readonly DDataStructure.Constraint<GenericValue>[], GenericIntersectionConstraintValue = DDataStructure.ConstraintValue<DArray.Unwrap<GenericNewTypeConstraint>>, GenericClearValue = DCommon.NeverCoalescing<DCommon.RemoveConstraint<GenericIntersectionConstraintValue>, unknown>> = Extract<GenericValue & GenericClearValue & NewType<GenericName, GenericIntersectionConstraintValue extends (GenericClearValue & infer InferredConstraint extends DCommon.BaseConstraint) ? InferredConstraint : never>, any>;
|
|
28
28
|
export interface NewTypeStructure<out GenericName extends string = string, out GenericValue extends unknown = unknown, out GenericNewTypeConstraint extends readonly DDataStructure.Constraint<GenericValue>[] = readonly DDataStructure.Constraint<GenericValue>[]> extends DCommon.Forward<DDataStructure.Structure<ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>, NewTypeStructureDefinition<GenericNewTypeConstraint>> & DKind.Kind<typeof newTypeStructureKind>> {
|
|
29
29
|
readonly name: GenericName;
|
|
30
|
-
decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<NewTypeMap<
|
|
31
|
-
decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<NewTypeMap<
|
|
32
|
-
map(data: NewTypeMap<
|
|
33
|
-
asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<NewTypeMap<
|
|
34
|
-
asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<NewTypeMap<
|
|
35
|
-
asyncMap(data: NewTypeMap<
|
|
36
|
-
encodeNewType<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.StructureValue<this>): Promise<DDataStructure.EncodedValue<NewTypeMap<DDataStructure.StructureValue<this>>, GenericCodecs>>;
|
|
37
|
-
}
|
|
38
|
-
declare const EncodeNewTypeError_base: DKind.KindClass<DKind.Handler<DKind.Definition<"@DuplojsLangModeling/encode-new-type-error", unknown>>, ErrorConstructor>;
|
|
39
|
-
export declare class EncodeNewTypeError extends EncodeNewTypeError_base {
|
|
40
|
-
error: DDataStructure.Error;
|
|
41
|
-
constructor(error: DDataStructure.Error);
|
|
30
|
+
decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<NewTypeMap<ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>>, GenericCodecs>) => (DEither.Right<"map-success", ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>> | DEither.Left<"async-error", DDataStructure.ErrorPromise> | DEither.Left<"map-error", DDataStructure.Error>);
|
|
31
|
+
decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<NewTypeMap<ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>>, GenericCodecs>): (DEither.Right<"map-success", ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>> | DEither.Left<"async-error", DDataStructure.ErrorPromise> | DEither.Left<"map-error", DDataStructure.Error>);
|
|
32
|
+
map(data: NewTypeMap<ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>>): (DEither.Right<"map-success", ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>> | DEither.Left<"async-error", DDataStructure.ErrorPromise> | DEither.Left<"map-error", DDataStructure.Error>);
|
|
33
|
+
asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<NewTypeMap<ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>>, GenericCodecs>) => Promise<DEither.Right<"map-success", ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>> | DEither.Left<"map-error", DDataStructure.Error>>;
|
|
34
|
+
asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<NewTypeMap<ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>>, GenericCodecs>): Promise<DEither.Right<"map-success", ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>> | DEither.Left<"map-error", DDataStructure.Error>>;
|
|
35
|
+
asyncMap(data: NewTypeMap<ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>>): Promise<DEither.Right<"map-success", ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>> | DEither.Left<"map-error", DDataStructure.Error>>;
|
|
42
36
|
}
|
|
43
37
|
export declare const NewTypeStructure: <GenericName extends string, GenericStructure extends DDataStructure.Structure, const GenericNewTypeConstraint extends readonly DDataStructure.Constraint<DDataStructure.StructureValue<GenericStructure>>[]>(name: GenericName, structure: GenericStructure, newTypeConstraints: GenericNewTypeConstraint) => NewTypeStructure<GenericName, DDataStructure.StructureValue<GenericStructure>, GenericNewTypeConstraint>;
|
|
44
|
-
export {};
|
|
@@ -1,24 +1,13 @@
|
|
|
1
|
-
import { parentClass } from "../../kind/parentClass.mjs";
|
|
2
1
|
import { callThen } from "../../common/callThen.mjs";
|
|
3
2
|
import { left } from "../../either/left/create.mjs";
|
|
4
|
-
import { isLeft } from "../../either/left/is.mjs";
|
|
5
3
|
import { right } from "../../either/right/create.mjs";
|
|
6
|
-
import { unwrapLeft } from "../../either/left/unwrap.mjs";
|
|
7
|
-
import { unwrapRight } from "../../either/right/unwrap.mjs";
|
|
8
4
|
import { justExec } from "../../common/justExec.mjs";
|
|
9
5
|
import { ErrorSymbol, SuccessSymbol } from "../../dataStructure/common/resultSymbol.mjs";
|
|
10
|
-
import { createGetErrorHandler } from "../../dataStructure/common/error.mjs";
|
|
6
|
+
import { ErrorPromise, createGetErrorHandler } from "../../dataStructure/common/error/base.mjs";
|
|
11
7
|
import { createStructure } from "../../dataStructure/structure/base.mjs";
|
|
12
8
|
import { createKind } from "../kind.mjs";
|
|
13
9
|
//#region scripts/modeling/newType/base.ts
|
|
14
10
|
const newTypeStructureKind = createKind("new-type-structure");
|
|
15
|
-
var EncodeNewTypeError = class extends parentClass(createKind("encode-new-type-error"), Error) {
|
|
16
|
-
error;
|
|
17
|
-
constructor(error) {
|
|
18
|
-
super(void 0, "An error occurred while encoding a NewType. This can only happen if you are bypassing the type system.");
|
|
19
|
-
this.error = error;
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
11
|
function executeNewTypeConstraints(structure, data, errorHandler) {
|
|
23
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);
|
|
24
13
|
}
|
|
@@ -30,6 +19,7 @@ const NewTypeStructure = createStructure(newTypeStructureKind, ({ init }) => (na
|
|
|
30
19
|
executeCheck: (self, data, errorHandler) => callThen(self.definition.inner.executeCheck(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : executeNewTypeConstraints(self, data, errorHandler)),
|
|
31
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))),
|
|
32
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))),
|
|
22
|
+
executeParse: (self, codecContext, data, errorHandler) => callThen(self.definition.inner.executeParse(codecContext, 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))),
|
|
33
23
|
isAsynchronous: (self) => self.definition.inner.isAsynchronous() || self.definition.newTypeConstraints.some((value) => value.isAsynchronous())
|
|
34
24
|
}, {
|
|
35
25
|
name,
|
|
@@ -41,14 +31,14 @@ const NewTypeStructure = createStructure(newTypeStructureKind, ({ init }) => (na
|
|
|
41
31
|
const errorHandler = createGetErrorHandler();
|
|
42
32
|
const [codecs, data] = args;
|
|
43
33
|
const result = self.executeDecode(codecs.context.value, data, errorHandler);
|
|
44
|
-
if (result instanceof Promise) return left("async-error",
|
|
34
|
+
if (result instanceof Promise) return left("async-error", new ErrorPromise());
|
|
45
35
|
if (result === ErrorSymbol) return left("map-error", errorHandler().createError());
|
|
46
36
|
return right("map-success", result);
|
|
47
37
|
},
|
|
48
38
|
map: (self, data) => {
|
|
49
39
|
const errorHandler = createGetErrorHandler();
|
|
50
40
|
const result = self.executeCheck(data, errorHandler);
|
|
51
|
-
if (result instanceof Promise) return left("async-error",
|
|
41
|
+
if (result instanceof Promise) return left("async-error", new ErrorPromise());
|
|
52
42
|
if (result === ErrorSymbol) return left("map-error", errorHandler().createError());
|
|
53
43
|
return right("map-success", data);
|
|
54
44
|
},
|
|
@@ -69,12 +59,7 @@ const NewTypeStructure = createStructure(newTypeStructureKind, ({ init }) => (na
|
|
|
69
59
|
const errorHandler = createGetErrorHandler();
|
|
70
60
|
if (await self.executeCheck(data, errorHandler) === ErrorSymbol) return left("map-error", errorHandler().createError());
|
|
71
61
|
return right("map-success", data);
|
|
72
|
-
},
|
|
73
|
-
encodeNewType: async (self, codec, data) => {
|
|
74
|
-
const result = await self.asyncEncode(codec, data);
|
|
75
|
-
if (isLeft(result)) throw new EncodeNewTypeError(unwrapLeft(result));
|
|
76
|
-
return unwrapRight(result);
|
|
77
62
|
}
|
|
78
63
|
}));
|
|
79
64
|
//#endregion
|
|
80
|
-
export {
|
|
65
|
+
export { NewTypeStructure, newTypeStructureKind };
|
|
@@ -1,28 +1,17 @@
|
|
|
1
|
-
const require_parentClass = require("../../kind/parentClass.cjs");
|
|
2
1
|
const require_isSimple = require("../../object/isSimple.cjs");
|
|
3
2
|
const require_create = require("../../either/left/create.cjs");
|
|
4
|
-
const require_is = require("../../either/left/is.cjs");
|
|
5
3
|
const require_create$1 = require("../../either/right/create.cjs");
|
|
6
|
-
const require_unwrap = require("../../either/left/unwrap.cjs");
|
|
7
|
-
const require_unwrap$1 = require("../../either/right/unwrap.cjs");
|
|
8
4
|
const require_justExec = require("../../common/justExec.cjs");
|
|
9
5
|
const require_resultSymbol = require("../../dataStructure/common/resultSymbol.cjs");
|
|
10
|
-
const
|
|
11
|
-
const require_base = require("../../dataStructure/structure/base.cjs");
|
|
6
|
+
const require_base = require("../../dataStructure/common/error/base.cjs");
|
|
7
|
+
const require_base$1 = require("../../dataStructure/structure/base.cjs");
|
|
12
8
|
const require_nonEncodableString = require("../../dataStructure/structure/defaults/nonEncodableString.cjs");
|
|
13
9
|
const require_object = require("../../dataStructure/structure/defaults/object.cjs");
|
|
14
10
|
const require_kind = require("../kind.cjs");
|
|
15
11
|
//#region scripts/modeling/taggedObject/base.ts
|
|
16
12
|
const objectTagKind = require_kind.createKind("object-tag");
|
|
17
13
|
const taggedObjectStructureKind = require_kind.createKind("tagged-object-structure");
|
|
18
|
-
|
|
19
|
-
error;
|
|
20
|
-
constructor(error) {
|
|
21
|
-
super(void 0, "An error occurred while encoding a TaggedObject. This can only happen if you are bypassing the type system.");
|
|
22
|
-
this.error = error;
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
const TaggedObjectStructure = require_base.createStructure(taggedObjectStructureKind, ({ init }) => (name, shape) => init({
|
|
14
|
+
const TaggedObjectStructure = require_base$1.createStructure(taggedObjectStructureKind, ({ init }) => (name, shape) => init({
|
|
26
15
|
inner: require_object.ObjectStructure({
|
|
27
16
|
...shape,
|
|
28
17
|
[objectTagKind.runTimeKey]: require_nonEncodableString.NonEncodableStringStructure(name)
|
|
@@ -32,6 +21,7 @@ const TaggedObjectStructure = require_base.createStructure(taggedObjectStructure
|
|
|
32
21
|
executeCheck: (self, data, errorHandler) => self.definition.inner.executeCheck(data, errorHandler),
|
|
33
22
|
executeEncode: (self, codecContext, data, errorHandler) => self.definition.inner.executeEncode(codecContext, data, errorHandler),
|
|
34
23
|
executeDecode: (self, codecContext, data, errorHandler) => self.definition.inner.executeDecode(codecContext, data, errorHandler),
|
|
24
|
+
executeParse: (self, codecContext, data, errorHandler) => self.definition.inner.executeParse(codecContext, data, errorHandler),
|
|
35
25
|
isAsynchronous: (self) => self.definition.inner.isAsynchronous()
|
|
36
26
|
}, {
|
|
37
27
|
name,
|
|
@@ -44,24 +34,24 @@ const TaggedObjectStructure = require_base.createStructure(taggedObjectStructure
|
|
|
44
34
|
const [codecs] = args;
|
|
45
35
|
return (value) => self.decodeMap(codecs, value);
|
|
46
36
|
}
|
|
47
|
-
const errorHandler =
|
|
37
|
+
const errorHandler = require_base.createGetErrorHandler();
|
|
48
38
|
const [codecs, data] = args;
|
|
49
39
|
const result = self.executeDecode(codecs.context.value, require_isSimple.isSimple(data) ? {
|
|
50
40
|
...data,
|
|
51
41
|
[objectTagKind.runTimeKey]: name
|
|
52
42
|
} : data, errorHandler);
|
|
53
|
-
if (result instanceof Promise) return require_create.left("async-error",
|
|
43
|
+
if (result instanceof Promise) return require_create.left("async-error", new require_base.ErrorPromise());
|
|
54
44
|
if (result === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
|
|
55
45
|
return require_create$1.right("map-success", result);
|
|
56
46
|
},
|
|
57
47
|
map: (self, data) => {
|
|
58
|
-
const errorHandler =
|
|
48
|
+
const errorHandler = require_base.createGetErrorHandler();
|
|
59
49
|
const formattedData = require_isSimple.isSimple(data) ? {
|
|
60
50
|
...data,
|
|
61
51
|
[objectTagKind.runTimeKey]: name
|
|
62
52
|
} : data;
|
|
63
53
|
const result = self.executeCheck(formattedData, errorHandler);
|
|
64
|
-
if (result instanceof Promise) return require_create.left("async-error",
|
|
54
|
+
if (result instanceof Promise) return require_create.left("async-error", new require_base.ErrorPromise());
|
|
65
55
|
if (result === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
|
|
66
56
|
return require_create$1.right("map-success", formattedData);
|
|
67
57
|
},
|
|
@@ -71,7 +61,7 @@ const TaggedObjectStructure = require_base.createStructure(taggedObjectStructure
|
|
|
71
61
|
return (value) => self.asyncDecodeMap(codecs, value);
|
|
72
62
|
}
|
|
73
63
|
return require_justExec.justExec(async () => {
|
|
74
|
-
const errorHandler =
|
|
64
|
+
const errorHandler = require_base.createGetErrorHandler();
|
|
75
65
|
const [codecs, data] = args;
|
|
76
66
|
const result = await self.executeDecode(codecs.context.value, require_isSimple.isSimple(data) ? {
|
|
77
67
|
...data,
|
|
@@ -82,7 +72,7 @@ const TaggedObjectStructure = require_base.createStructure(taggedObjectStructure
|
|
|
82
72
|
});
|
|
83
73
|
},
|
|
84
74
|
asyncMap: async (self, data) => {
|
|
85
|
-
const errorHandler =
|
|
75
|
+
const errorHandler = require_base.createGetErrorHandler();
|
|
86
76
|
const formattedData = require_isSimple.isSimple(data) ? {
|
|
87
77
|
...data,
|
|
88
78
|
[objectTagKind.runTimeKey]: name
|
|
@@ -90,14 +80,18 @@ const TaggedObjectStructure = require_base.createStructure(taggedObjectStructure
|
|
|
90
80
|
if (await self.executeCheck(formattedData, errorHandler) === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
|
|
91
81
|
return require_create$1.right("map-success", formattedData);
|
|
92
82
|
},
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
83
|
+
update: (self, ...args) => {
|
|
84
|
+
if (args.length === 1) {
|
|
85
|
+
const [update] = args;
|
|
86
|
+
return (input) => self.update(input, update);
|
|
87
|
+
}
|
|
88
|
+
const [input, update] = args;
|
|
89
|
+
const updatedTaggedObject = { [objectTagKind.runTimeKey]: name };
|
|
90
|
+
for (const key of self.definition.inner.definition.keys) updatedTaggedObject[key] = update[key] === void 0 ? input[key] : update[key];
|
|
91
|
+
return updatedTaggedObject;
|
|
97
92
|
}
|
|
98
93
|
}));
|
|
99
94
|
//#endregion
|
|
100
|
-
exports.EncodeTaggedObjectError = EncodeTaggedObjectError;
|
|
101
95
|
exports.TaggedObjectStructure = TaggedObjectStructure;
|
|
102
96
|
exports.objectTagKind = objectTagKind;
|
|
103
97
|
exports.taggedObjectStructureKind = taggedObjectStructureKind;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NewType, NewTypeMap } from '../newType';
|
|
2
|
-
import * as DKind from '../../kind';
|
|
2
|
+
import type * as DKind from '../../kind';
|
|
3
3
|
import * as DCommon from '../../common';
|
|
4
4
|
import * as DEither from '../../either';
|
|
5
5
|
import * as DDataStructure from '../../dataStructure';
|
|
@@ -36,21 +36,19 @@ export type TaggedObjectMap<GenericValue extends unknown, GenericRawValue = DCom
|
|
|
36
36
|
]> extends true ? {
|
|
37
37
|
[Prop in keyof GenericRawValue]: TaggedObjectMap<GenericRawValue[Prop]>;
|
|
38
38
|
} : GenericRawValue : GenericRawValue;
|
|
39
|
+
export type TaggedObjectUpdate<GenericTaggedObject extends ObjectTag, GenericNewProperties extends object> = Extract<(ObjectTag<GetTagValue<GenericTaggedObject>> & DCommon.SimplifyTopLevel<DKind.Remove<GenericTaggedObject> extends infer InferredProperties ? {
|
|
40
|
+
[Prop in keyof InferredProperties]: Prop extends keyof GenericNewProperties ? GenericNewProperties[Prop] extends infer InferredNewValue ? InferredNewValue extends undefined ? InferredProperties[Prop] : InferredNewValue : never : InferredProperties[Prop];
|
|
41
|
+
} : never>), any>;
|
|
39
42
|
export interface TaggedObjectStructure<out GenericTaggedObject extends ObjectTag = ObjectTag> extends DCommon.Forward<DDataStructure.Structure<GenericTaggedObject, TaggedObjectStructureDefinition> & DKind.Kind<typeof taggedObjectStructureKind>> {
|
|
40
43
|
readonly name: GetTagValue<GenericTaggedObject>;
|
|
41
44
|
"new"(properties: DCommon.SimplifyTopLevel<DKind.Remove<GenericTaggedObject>>): GenericTaggedObject;
|
|
42
|
-
decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<
|
|
43
|
-
decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<
|
|
44
|
-
map(data: TaggedObjectMap<DKind.Remove<
|
|
45
|
-
asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<
|
|
46
|
-
asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<
|
|
47
|
-
asyncMap(data: TaggedObjectMap<DKind.Remove<
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
declare const EncodeTaggedObjectError_base: DKind.KindClass<DKind.Handler<DKind.Definition<"@DuplojsLangModeling/encode-tagged-object-error", unknown>>, ErrorConstructor>;
|
|
51
|
-
export declare class EncodeTaggedObjectError extends EncodeTaggedObjectError_base {
|
|
52
|
-
error: DDataStructure.Error;
|
|
53
|
-
constructor(error: DDataStructure.Error);
|
|
45
|
+
decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<GenericTaggedObject>>, GenericCodecs>) => (DEither.Right<"map-success", GenericTaggedObject> | DEither.Left<"async-error", DDataStructure.ErrorPromise> | DEither.Left<"map-error", DDataStructure.Error>);
|
|
46
|
+
decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<GenericTaggedObject>>, GenericCodecs>): (DEither.Right<"map-success", GenericTaggedObject> | DEither.Left<"async-error", DDataStructure.ErrorPromise> | DEither.Left<"map-error", DDataStructure.Error>);
|
|
47
|
+
map(data: TaggedObjectMap<DKind.Remove<GenericTaggedObject>>): (DEither.Right<"map-success", GenericTaggedObject> | DEither.Left<"async-error", DDataStructure.ErrorPromise> | DEither.Left<"map-error", DDataStructure.Error>);
|
|
48
|
+
asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<GenericTaggedObject>>, GenericCodecs>) => Promise<DEither.Right<"map-success", GenericTaggedObject> | DEither.Left<"map-error", DDataStructure.Error>>;
|
|
49
|
+
asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<GenericTaggedObject>>, GenericCodecs>): Promise<DEither.Right<"map-success", GenericTaggedObject> | DEither.Left<"map-error", DDataStructure.Error>>;
|
|
50
|
+
asyncMap(data: TaggedObjectMap<DKind.Remove<GenericTaggedObject>>): Promise<DEither.Right<"map-success", GenericTaggedObject> | DEither.Left<"map-error", DDataStructure.Error>>;
|
|
51
|
+
update<GenericInput extends GenericTaggedObject, const GenericPayload extends Partial<DKind.Remove<GenericTaggedObject>>>(update: GenericPayload): (input: GenericInput) => TaggedObjectUpdate<GenericInput, GenericPayload>;
|
|
52
|
+
update<GenericInput extends GenericTaggedObject, const GenericPayload extends Partial<DKind.Remove<GenericTaggedObject>>>(input: GenericInput, update: GenericPayload): TaggedObjectUpdate<GenericInput, GenericPayload>;
|
|
54
53
|
}
|
|
55
54
|
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>;
|
|
56
|
-
export {};
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import { parentClass } from "../../kind/parentClass.mjs";
|
|
2
1
|
import { isSimple } from "../../object/isSimple.mjs";
|
|
3
2
|
import { left } from "../../either/left/create.mjs";
|
|
4
|
-
import { isLeft } from "../../either/left/is.mjs";
|
|
5
3
|
import { right } from "../../either/right/create.mjs";
|
|
6
|
-
import { unwrapLeft } from "../../either/left/unwrap.mjs";
|
|
7
|
-
import { unwrapRight } from "../../either/right/unwrap.mjs";
|
|
8
4
|
import { justExec } from "../../common/justExec.mjs";
|
|
9
5
|
import { ErrorSymbol } from "../../dataStructure/common/resultSymbol.mjs";
|
|
10
|
-
import { createGetErrorHandler } from "../../dataStructure/common/error.mjs";
|
|
6
|
+
import { ErrorPromise, createGetErrorHandler } from "../../dataStructure/common/error/base.mjs";
|
|
11
7
|
import { createStructure } from "../../dataStructure/structure/base.mjs";
|
|
12
8
|
import { NonEncodableStringStructure } from "../../dataStructure/structure/defaults/nonEncodableString.mjs";
|
|
13
9
|
import { ObjectStructure } from "../../dataStructure/structure/defaults/object.mjs";
|
|
@@ -15,13 +11,6 @@ import { createKind } from "../kind.mjs";
|
|
|
15
11
|
//#region scripts/modeling/taggedObject/base.ts
|
|
16
12
|
const objectTagKind = createKind("object-tag");
|
|
17
13
|
const taggedObjectStructureKind = createKind("tagged-object-structure");
|
|
18
|
-
var EncodeTaggedObjectError = class extends parentClass(createKind("encode-tagged-object-error"), Error) {
|
|
19
|
-
error;
|
|
20
|
-
constructor(error) {
|
|
21
|
-
super(void 0, "An error occurred while encoding a TaggedObject. This can only happen if you are bypassing the type system.");
|
|
22
|
-
this.error = error;
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
14
|
const TaggedObjectStructure = createStructure(taggedObjectStructureKind, ({ init }) => (name, shape) => init({
|
|
26
15
|
inner: ObjectStructure({
|
|
27
16
|
...shape,
|
|
@@ -32,6 +21,7 @@ const TaggedObjectStructure = createStructure(taggedObjectStructureKind, ({ init
|
|
|
32
21
|
executeCheck: (self, data, errorHandler) => self.definition.inner.executeCheck(data, errorHandler),
|
|
33
22
|
executeEncode: (self, codecContext, data, errorHandler) => self.definition.inner.executeEncode(codecContext, data, errorHandler),
|
|
34
23
|
executeDecode: (self, codecContext, data, errorHandler) => self.definition.inner.executeDecode(codecContext, data, errorHandler),
|
|
24
|
+
executeParse: (self, codecContext, data, errorHandler) => self.definition.inner.executeParse(codecContext, data, errorHandler),
|
|
35
25
|
isAsynchronous: (self) => self.definition.inner.isAsynchronous()
|
|
36
26
|
}, {
|
|
37
27
|
name,
|
|
@@ -50,7 +40,7 @@ const TaggedObjectStructure = createStructure(taggedObjectStructureKind, ({ init
|
|
|
50
40
|
...data,
|
|
51
41
|
[objectTagKind.runTimeKey]: name
|
|
52
42
|
} : data, errorHandler);
|
|
53
|
-
if (result instanceof Promise) return left("async-error",
|
|
43
|
+
if (result instanceof Promise) return left("async-error", new ErrorPromise());
|
|
54
44
|
if (result === ErrorSymbol) return left("map-error", errorHandler().createError());
|
|
55
45
|
return right("map-success", result);
|
|
56
46
|
},
|
|
@@ -61,7 +51,7 @@ const TaggedObjectStructure = createStructure(taggedObjectStructureKind, ({ init
|
|
|
61
51
|
[objectTagKind.runTimeKey]: name
|
|
62
52
|
} : data;
|
|
63
53
|
const result = self.executeCheck(formattedData, errorHandler);
|
|
64
|
-
if (result instanceof Promise) return left("async-error",
|
|
54
|
+
if (result instanceof Promise) return left("async-error", new ErrorPromise());
|
|
65
55
|
if (result === ErrorSymbol) return left("map-error", errorHandler().createError());
|
|
66
56
|
return right("map-success", formattedData);
|
|
67
57
|
},
|
|
@@ -90,11 +80,16 @@ const TaggedObjectStructure = createStructure(taggedObjectStructureKind, ({ init
|
|
|
90
80
|
if (await self.executeCheck(formattedData, errorHandler) === ErrorSymbol) return left("map-error", errorHandler().createError());
|
|
91
81
|
return right("map-success", formattedData);
|
|
92
82
|
},
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
83
|
+
update: (self, ...args) => {
|
|
84
|
+
if (args.length === 1) {
|
|
85
|
+
const [update] = args;
|
|
86
|
+
return (input) => self.update(input, update);
|
|
87
|
+
}
|
|
88
|
+
const [input, update] = args;
|
|
89
|
+
const updatedTaggedObject = { [objectTagKind.runTimeKey]: name };
|
|
90
|
+
for (const key of self.definition.inner.definition.keys) updatedTaggedObject[key] = update[key] === void 0 ? input[key] : update[key];
|
|
91
|
+
return updatedTaggedObject;
|
|
97
92
|
}
|
|
98
93
|
}));
|
|
99
94
|
//#endregion
|
|
100
|
-
export {
|
|
95
|
+
export { TaggedObjectStructure, objectTagKind, taggedObjectStructureKind };
|