@jbrowse/mobx-state-tree 5.7.1 → 5.8.7
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/README.md +0 -10
- package/dist/index.d.ts +2135 -2
- package/dist/mobx-state-tree.cjs +6894 -0
- package/dist/mobx-state-tree.cjs.map +1 -0
- package/dist/mobx-state-tree.mjs +6814 -0
- package/dist/mobx-state-tree.mjs.map +1 -0
- package/package.json +30 -26
- package/dist/core/action.d.ts +0 -87
- package/dist/core/action.js +0 -228
- package/dist/core/action.js.map +0 -1
- package/dist/core/actionContext.d.ts +0 -27
- package/dist/core/actionContext.js +0 -42
- package/dist/core/actionContext.js.map +0 -1
- package/dist/core/flow.d.ts +0 -69
- package/dist/core/flow.js +0 -180
- package/dist/core/flow.js.map +0 -1
- package/dist/core/json-patch.d.ts +0 -46
- package/dist/core/json-patch.js +0 -133
- package/dist/core/json-patch.js.map +0 -1
- package/dist/core/mst-operations.d.ts +0 -459
- package/dist/core/mst-operations.js +0 -885
- package/dist/core/mst-operations.js.map +0 -1
- package/dist/core/node/BaseNode.d.ts +0 -62
- package/dist/core/node/BaseNode.js +0 -152
- package/dist/core/node/BaseNode.js.map +0 -1
- package/dist/core/node/Hook.d.ts +0 -17
- package/dist/core/node/Hook.js +0 -15
- package/dist/core/node/Hook.js.map +0 -1
- package/dist/core/node/create-node.d.ts +0 -16
- package/dist/core/node/create-node.js +0 -41
- package/dist/core/node/create-node.js.map +0 -1
- package/dist/core/node/identifier-cache.d.ts +0 -19
- package/dist/core/node/identifier-cache.js +0 -115
- package/dist/core/node/identifier-cache.js.map +0 -1
- package/dist/core/node/livelinessChecking.d.ts +0 -37
- package/dist/core/node/livelinessChecking.js +0 -38
- package/dist/core/node/livelinessChecking.js.map +0 -1
- package/dist/core/node/node-utils.d.ts +0 -83
- package/dist/core/node/node-utils.js +0 -165
- package/dist/core/node/node-utils.js.map +0 -1
- package/dist/core/node/object-node.d.ts +0 -101
- package/dist/core/node/object-node.js +0 -546
- package/dist/core/node/object-node.js.map +0 -1
- package/dist/core/node/scalar-node.d.ts +0 -21
- package/dist/core/node/scalar-node.js +0 -90
- package/dist/core/node/scalar-node.js.map +0 -1
- package/dist/core/process.d.ts +0 -50
- package/dist/core/process.js +0 -39
- package/dist/core/process.js.map +0 -1
- package/dist/core/type/type-checker.d.ts +0 -69
- package/dist/core/type/type-checker.js +0 -154
- package/dist/core/type/type-checker.js.map +0 -1
- package/dist/core/type/type.d.ts +0 -317
- package/dist/core/type/type.js +0 -251
- package/dist/core/type/type.js.map +0 -1
- package/dist/index.js +0 -85
- package/dist/index.js.map +0 -1
- package/dist/internal.d.ts +0 -39
- package/dist/internal.js +0 -60
- package/dist/internal.js.map +0 -1
- package/dist/middlewares/create-action-tracking-middleware.d.ts +0 -24
- package/dist/middlewares/create-action-tracking-middleware.js +0 -81
- package/dist/middlewares/create-action-tracking-middleware.js.map +0 -1
- package/dist/middlewares/createActionTrackingMiddleware2.d.ts +0 -34
- package/dist/middlewares/createActionTrackingMiddleware2.js +0 -133
- package/dist/middlewares/createActionTrackingMiddleware2.js.map +0 -1
- package/dist/middlewares/on-action.d.ts +0 -87
- package/dist/middlewares/on-action.js +0 -215
- package/dist/middlewares/on-action.js.map +0 -1
- package/dist/package.json +0 -1
- package/dist/types/complex-types/array.d.ts +0 -81
- package/dist/types/complex-types/array.js +0 -353
- package/dist/types/complex-types/array.js.map +0 -1
- package/dist/types/complex-types/map.d.ts +0 -111
- package/dist/types/complex-types/map.js +0 -362
- package/dist/types/complex-types/map.js.map +0 -1
- package/dist/types/complex-types/model.d.ts +0 -193
- package/dist/types/complex-types/model.js +0 -478
- package/dist/types/complex-types/model.js.map +0 -1
- package/dist/types/index.d.ts +0 -33
- package/dist/types/index.js +0 -38
- package/dist/types/index.js.map +0 -1
- package/dist/types/primitives.d.ts +0 -125
- package/dist/types/primitives.js +0 -183
- package/dist/types/primitives.js.map +0 -1
- package/dist/types/utility-types/custom.d.ts +0 -75
- package/dist/types/utility-types/custom.js +0 -111
- package/dist/types/utility-types/custom.js.map +0 -1
- package/dist/types/utility-types/enumeration.d.ts +0 -5
- package/dist/types/utility-types/enumeration.js +0 -34
- package/dist/types/utility-types/enumeration.js.map +0 -1
- package/dist/types/utility-types/frozen.d.ts +0 -24
- package/dist/types/utility-types/frozen.js +0 -98
- package/dist/types/utility-types/frozen.js.map +0 -1
- package/dist/types/utility-types/identifier.d.ts +0 -87
- package/dist/types/utility-types/identifier.js +0 -130
- package/dist/types/utility-types/identifier.js.map +0 -1
- package/dist/types/utility-types/late.d.ts +0 -10
- package/dist/types/utility-types/late.js +0 -110
- package/dist/types/utility-types/late.js.map +0 -1
- package/dist/types/utility-types/lazy.d.ts +0 -23
- package/dist/types/utility-types/lazy.js +0 -77
- package/dist/types/utility-types/lazy.js.map +0 -1
- package/dist/types/utility-types/literal.d.ts +0 -38
- package/dist/types/utility-types/literal.js +0 -64
- package/dist/types/utility-types/literal.js.map +0 -1
- package/dist/types/utility-types/maybe.d.ts +0 -26
- package/dist/types/utility-types/maybe.js +0 -30
- package/dist/types/utility-types/maybe.js.map +0 -1
- package/dist/types/utility-types/optional.d.ts +0 -42
- package/dist/types/utility-types/optional.js +0 -141
- package/dist/types/utility-types/optional.js.map +0 -1
- package/dist/types/utility-types/reference.d.ts +0 -90
- package/dist/types/utility-types/reference.js +0 -393
- package/dist/types/utility-types/reference.js.map +0 -1
- package/dist/types/utility-types/refinement.d.ts +0 -10
- package/dist/types/utility-types/refinement.js +0 -86
- package/dist/types/utility-types/refinement.js.map +0 -1
- package/dist/types/utility-types/resilient.d.ts +0 -18
- package/dist/types/utility-types/resilient.js +0 -121
- package/dist/types/utility-types/resilient.js.map +0 -1
- package/dist/types/utility-types/snapshotProcessor.d.ts +0 -63
- package/dist/types/utility-types/snapshotProcessor.js +0 -162
- package/dist/types/utility-types/snapshotProcessor.js.map +0 -1
- package/dist/types/utility-types/union.d.ts +0 -78
- package/dist/types/utility-types/union.js +0 -246
- package/dist/types/utility-types/union.js.map +0 -1
- package/dist/utils.d.ts +0 -230
- package/dist/utils.js +0 -483
- package/dist/utils.js.map +0 -1
- package/esm/core/action.d.ts +0 -87
- package/esm/core/action.js +0 -219
- package/esm/core/action.js.map +0 -1
- package/esm/core/actionContext.d.ts +0 -27
- package/esm/core/actionContext.js +0 -37
- package/esm/core/actionContext.js.map +0 -1
- package/esm/core/flow.d.ts +0 -69
- package/esm/core/flow.js +0 -173
- package/esm/core/flow.js.map +0 -1
- package/esm/core/json-patch.d.ts +0 -46
- package/esm/core/json-patch.js +0 -125
- package/esm/core/json-patch.js.map +0 -1
- package/esm/core/mst-operations.d.ts +0 -459
- package/esm/core/mst-operations.js +0 -844
- package/esm/core/mst-operations.js.map +0 -1
- package/esm/core/node/BaseNode.d.ts +0 -62
- package/esm/core/node/BaseNode.js +0 -148
- package/esm/core/node/BaseNode.js.map +0 -1
- package/esm/core/node/Hook.d.ts +0 -17
- package/esm/core/node/Hook.js +0 -12
- package/esm/core/node/Hook.js.map +0 -1
- package/esm/core/node/create-node.d.ts +0 -16
- package/esm/core/node/create-node.js +0 -36
- package/esm/core/node/create-node.js.map +0 -1
- package/esm/core/node/identifier-cache.d.ts +0 -19
- package/esm/core/node/identifier-cache.js +0 -111
- package/esm/core/node/identifier-cache.js.map +0 -1
- package/esm/core/node/livelinessChecking.d.ts +0 -37
- package/esm/core/node/livelinessChecking.js +0 -33
- package/esm/core/node/livelinessChecking.js.map +0 -1
- package/esm/core/node/node-utils.d.ts +0 -83
- package/esm/core/node/node-utils.js +0 -153
- package/esm/core/node/node-utils.js.map +0 -1
- package/esm/core/node/object-node.d.ts +0 -101
- package/esm/core/node/object-node.js +0 -542
- package/esm/core/node/object-node.js.map +0 -1
- package/esm/core/node/scalar-node.d.ts +0 -21
- package/esm/core/node/scalar-node.js +0 -86
- package/esm/core/node/scalar-node.js.map +0 -1
- package/esm/core/process.d.ts +0 -50
- package/esm/core/process.js +0 -35
- package/esm/core/process.js.map +0 -1
- package/esm/core/type/type-checker.d.ts +0 -69
- package/esm/core/type/type-checker.js +0 -144
- package/esm/core/type/type-checker.js.map +0 -1
- package/esm/core/type/type.d.ts +0 -317
- package/esm/core/type/type.js +0 -243
- package/esm/core/type/type.js.map +0 -1
- package/esm/index.d.ts +0 -2
- package/esm/index.js +0 -2
- package/esm/index.js.map +0 -1
- package/esm/internal.d.ts +0 -39
- package/esm/internal.js +0 -44
- package/esm/internal.js.map +0 -1
- package/esm/middlewares/create-action-tracking-middleware.d.ts +0 -24
- package/esm/middlewares/create-action-tracking-middleware.js +0 -78
- package/esm/middlewares/create-action-tracking-middleware.js.map +0 -1
- package/esm/middlewares/createActionTrackingMiddleware2.d.ts +0 -34
- package/esm/middlewares/createActionTrackingMiddleware2.js +0 -130
- package/esm/middlewares/createActionTrackingMiddleware2.js.map +0 -1
- package/esm/middlewares/on-action.d.ts +0 -87
- package/esm/middlewares/on-action.js +0 -210
- package/esm/middlewares/on-action.js.map +0 -1
- package/esm/types/complex-types/array.d.ts +0 -81
- package/esm/types/complex-types/array.js +0 -347
- package/esm/types/complex-types/array.js.map +0 -1
- package/esm/types/complex-types/map.d.ts +0 -111
- package/esm/types/complex-types/map.js +0 -356
- package/esm/types/complex-types/map.js.map +0 -1
- package/esm/types/complex-types/model.d.ts +0 -193
- package/esm/types/complex-types/model.js +0 -471
- package/esm/types/complex-types/model.js.map +0 -1
- package/esm/types/index.d.ts +0 -33
- package/esm/types/index.js +0 -35
- package/esm/types/index.js.map +0 -1
- package/esm/types/primitives.d.ts +0 -125
- package/esm/types/primitives.js +0 -177
- package/esm/types/primitives.js.map +0 -1
- package/esm/types/utility-types/custom.d.ts +0 -75
- package/esm/types/utility-types/custom.js +0 -106
- package/esm/types/utility-types/custom.js.map +0 -1
- package/esm/types/utility-types/enumeration.d.ts +0 -5
- package/esm/types/utility-types/enumeration.js +0 -31
- package/esm/types/utility-types/enumeration.js.map +0 -1
- package/esm/types/utility-types/frozen.d.ts +0 -24
- package/esm/types/utility-types/frozen.js +0 -92
- package/esm/types/utility-types/frozen.js.map +0 -1
- package/esm/types/utility-types/identifier.d.ts +0 -87
- package/esm/types/utility-types/identifier.js +0 -121
- package/esm/types/utility-types/identifier.js.map +0 -1
- package/esm/types/utility-types/late.d.ts +0 -10
- package/esm/types/utility-types/late.js +0 -106
- package/esm/types/utility-types/late.js.map +0 -1
- package/esm/types/utility-types/lazy.d.ts +0 -23
- package/esm/types/utility-types/lazy.js +0 -72
- package/esm/types/utility-types/lazy.js.map +0 -1
- package/esm/types/utility-types/literal.d.ts +0 -38
- package/esm/types/utility-types/literal.js +0 -58
- package/esm/types/utility-types/literal.js.map +0 -1
- package/esm/types/utility-types/maybe.d.ts +0 -26
- package/esm/types/utility-types/maybe.js +0 -26
- package/esm/types/utility-types/maybe.js.map +0 -1
- package/esm/types/utility-types/optional.d.ts +0 -42
- package/esm/types/utility-types/optional.js +0 -135
- package/esm/types/utility-types/optional.js.map +0 -1
- package/esm/types/utility-types/reference.d.ts +0 -90
- package/esm/types/utility-types/reference.js +0 -383
- package/esm/types/utility-types/reference.js.map +0 -1
- package/esm/types/utility-types/refinement.d.ts +0 -10
- package/esm/types/utility-types/refinement.js +0 -82
- package/esm/types/utility-types/refinement.js.map +0 -1
- package/esm/types/utility-types/resilient.d.ts +0 -18
- package/esm/types/utility-types/resilient.js +0 -118
- package/esm/types/utility-types/resilient.js.map +0 -1
- package/esm/types/utility-types/snapshotProcessor.d.ts +0 -63
- package/esm/types/utility-types/snapshotProcessor.js +0 -159
- package/esm/types/utility-types/snapshotProcessor.js.map +0 -1
- package/esm/types/utility-types/union.d.ts +0 -78
- package/esm/types/utility-types/union.js +0 -240
- package/esm/types/utility-types/union.js.map +0 -1
- package/esm/utils.d.ts +0 -230
- package/esm/utils.js +0 -449
- package/esm/utils.js.map +0 -1
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { BaseType } from "../../core/type/type.js";
|
|
2
|
-
import { assertIsType, fail, isStateTreeNode, isType, typeCheckSuccess } from "../../internal.js";
|
|
3
|
-
class Resilient extends BaseType {
|
|
4
|
-
_subtype;
|
|
5
|
-
_fallbackType;
|
|
6
|
-
_createFallbackSnapshot;
|
|
7
|
-
get flags() {
|
|
8
|
-
return this._subtype.flags;
|
|
9
|
-
}
|
|
10
|
-
constructor(_subtype, _fallbackType, _createFallbackSnapshot) {
|
|
11
|
-
super(`resilient(${_subtype.name})`);
|
|
12
|
-
this._subtype = _subtype;
|
|
13
|
-
this._fallbackType = _fallbackType;
|
|
14
|
-
this._createFallbackSnapshot = _createFallbackSnapshot;
|
|
15
|
-
}
|
|
16
|
-
describe() {
|
|
17
|
-
return `resilient(${this._subtype.describe()})`;
|
|
18
|
-
}
|
|
19
|
-
_instantiateFallback(parent, subpath, environment, originalSnapshot, originalError) {
|
|
20
|
-
let fallbackSnapshot;
|
|
21
|
-
try {
|
|
22
|
-
fallbackSnapshot = this._createFallbackSnapshot(originalError, originalSnapshot);
|
|
23
|
-
}
|
|
24
|
-
catch (e) {
|
|
25
|
-
throw fail(`resilient: createFallbackSnapshot threw while handling error for '${this._subtype.name}': ${originalError}. createFallbackSnapshot error: ${e}`);
|
|
26
|
-
}
|
|
27
|
-
try {
|
|
28
|
-
return this._fallbackType.instantiate(parent, subpath, environment, fallbackSnapshot);
|
|
29
|
-
}
|
|
30
|
-
catch (e) {
|
|
31
|
-
throw fail(`resilient: fallback type '${this._fallbackType.name}' failed to instantiate while handling error for '${this._subtype.name}': ${originalError}. Fallback error: ${e}`);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
instantiate(parent, subpath, environment, initialValue) {
|
|
35
|
-
if (isStateTreeNode(initialValue)) {
|
|
36
|
-
return this._subtype.instantiate(parent, subpath, environment, initialValue);
|
|
37
|
-
}
|
|
38
|
-
try {
|
|
39
|
-
return this._subtype.instantiate(parent, subpath, environment, initialValue);
|
|
40
|
-
}
|
|
41
|
-
catch (e) {
|
|
42
|
-
return this._instantiateFallback(parent, subpath, environment, initialValue, e);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
reconcile(current, newValue, parent, subpath) {
|
|
46
|
-
if (isStateTreeNode(newValue)) {
|
|
47
|
-
return this._subtype.reconcile(current, newValue, parent, subpath);
|
|
48
|
-
}
|
|
49
|
-
if (this._fallbackType.isAssignableFrom(current.type)) {
|
|
50
|
-
try {
|
|
51
|
-
return this._subtype.instantiate(parent, subpath, undefined, newValue);
|
|
52
|
-
}
|
|
53
|
-
catch (e) {
|
|
54
|
-
return this._fallbackType.reconcile(current, this._createFallbackSnapshot(e, newValue), parent, subpath);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
try {
|
|
58
|
-
return this._subtype.reconcile(current, newValue, parent, subpath);
|
|
59
|
-
}
|
|
60
|
-
catch (e) {
|
|
61
|
-
current.die();
|
|
62
|
-
return this._instantiateFallback(parent, subpath, undefined, newValue, e);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
isValidSnapshot(_value, _context) {
|
|
66
|
-
return typeCheckSuccess();
|
|
67
|
-
}
|
|
68
|
-
is(thing) {
|
|
69
|
-
if (isType(thing)) {
|
|
70
|
-
return (this._subtype.isAssignableFrom(thing) ||
|
|
71
|
-
this._fallbackType.isAssignableFrom(thing));
|
|
72
|
-
}
|
|
73
|
-
try {
|
|
74
|
-
if (this._subtype.is(thing)) {
|
|
75
|
-
return true;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
catch (_e) {
|
|
79
|
-
// subtype.is() may throw (e.g. union dispatcher)
|
|
80
|
-
}
|
|
81
|
-
try {
|
|
82
|
-
return this._fallbackType.is(thing);
|
|
83
|
-
}
|
|
84
|
-
catch (_e) {
|
|
85
|
-
return false;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
isAssignableFrom(type) {
|
|
89
|
-
return (this._subtype.isAssignableFrom(type) ||
|
|
90
|
-
this._fallbackType.isAssignableFrom(type));
|
|
91
|
-
}
|
|
92
|
-
getSubTypes() {
|
|
93
|
-
return [this._subtype, this._fallbackType];
|
|
94
|
-
}
|
|
95
|
-
getSnapshot(node) {
|
|
96
|
-
return node.snapshot;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* `types.resilient` - Wraps a type so that instantiation errors are caught
|
|
101
|
-
* and a fallback type is used instead. This is useful for loading data that
|
|
102
|
-
* may contain unknown or invalid subtrees (e.g., plugin types that are not
|
|
103
|
-
* installed) without crashing the entire state tree.
|
|
104
|
-
*
|
|
105
|
-
* The `createFallbackSnapshot` callback receives the caught error and the
|
|
106
|
-
* original snapshot, and must return a valid snapshot for the fallback type.
|
|
107
|
-
*
|
|
108
|
-
* @param type The type to wrap.
|
|
109
|
-
* @param fallbackType The fallback type to use when instantiation fails.
|
|
110
|
-
* @param createFallbackSnapshot Callback that produces a fallback snapshot from the error and original snapshot.
|
|
111
|
-
* @returns A resilient type.
|
|
112
|
-
*/
|
|
113
|
-
export function resilient(type, fallbackType, createFallbackSnapshot) {
|
|
114
|
-
assertIsType(type, 1);
|
|
115
|
-
assertIsType(fallbackType, 2);
|
|
116
|
-
return new Resilient(type, fallbackType, createFallbackSnapshot);
|
|
117
|
-
}
|
|
118
|
-
//# sourceMappingURL=resilient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resilient.js","sourceRoot":"","sources":["../../../src/types/utility-types/resilient.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseType } from \"../../core/type/type.ts\"\nimport {\n type AnyObjectNode,\n type ExtractNodeType,\n type IAnyType,\n type IType,\n type IValidationContext,\n type IValidationResult,\n assertIsType,\n fail,\n isStateTreeNode,\n isType,\n typeCheckSuccess\n} from \"../../internal.ts\"\n\nclass Resilient<IT extends IAnyType, FT extends IAnyType> extends BaseType<\n IT[\"CreationType\"] | FT[\"CreationType\"],\n IT[\"SnapshotType\"] | FT[\"SnapshotType\"],\n IT[\"TypeWithoutSTN\"] | FT[\"TypeWithoutSTN\"],\n ExtractNodeType<IT> | ExtractNodeType<FT>\n> {\n get flags() {\n return this._subtype.flags\n }\n\n constructor(\n private readonly _subtype: IT,\n private readonly _fallbackType: FT,\n private readonly _createFallbackSnapshot: (\n error: unknown,\n snapshot: any\n ) => FT[\"CreationType\"]\n ) {\n super(`resilient(${_subtype.name})`)\n }\n\n describe() {\n return `resilient(${this._subtype.describe()})`\n }\n\n private _instantiateFallback(\n parent: AnyObjectNode | null,\n subpath: string,\n environment: any,\n originalSnapshot: any,\n originalError: unknown\n ): this[\"N\"] {\n let fallbackSnapshot: FT[\"CreationType\"]\n try {\n fallbackSnapshot = this._createFallbackSnapshot(\n originalError,\n originalSnapshot\n )\n } catch (e) {\n throw fail(\n `resilient: createFallbackSnapshot threw while handling error for '${this._subtype.name}': ${originalError}. createFallbackSnapshot error: ${e}`\n )\n }\n try {\n return this._fallbackType.instantiate(\n parent,\n subpath,\n environment,\n fallbackSnapshot\n ) as this[\"N\"]\n } catch (e) {\n throw fail(\n `resilient: fallback type '${this._fallbackType.name}' failed to instantiate while handling error for '${this._subtype.name}': ${originalError}. Fallback error: ${e}`\n )\n }\n }\n\n instantiate(\n parent: AnyObjectNode | null,\n subpath: string,\n environment: any,\n initialValue: this[\"C\"] | this[\"T\"]\n ): this[\"N\"] {\n if (isStateTreeNode(initialValue)) {\n return this._subtype.instantiate(\n parent,\n subpath,\n environment,\n initialValue\n ) as this[\"N\"]\n }\n try {\n return this._subtype.instantiate(\n parent,\n subpath,\n environment,\n initialValue\n ) as this[\"N\"]\n } catch (e) {\n return this._instantiateFallback(\n parent,\n subpath,\n environment,\n initialValue,\n e\n )\n }\n }\n\n reconcile(\n current: this[\"N\"],\n newValue: this[\"C\"] | this[\"T\"],\n parent: AnyObjectNode,\n subpath: string\n ): this[\"N\"] {\n if (isStateTreeNode(newValue)) {\n return this._subtype.reconcile(\n current,\n newValue,\n parent,\n subpath\n ) as this[\"N\"]\n }\n if (this._fallbackType.isAssignableFrom(current.type)) {\n try {\n return this._subtype.instantiate(\n parent,\n subpath,\n undefined,\n newValue\n ) as this[\"N\"]\n } catch (e) {\n return this._fallbackType.reconcile(\n current,\n this._createFallbackSnapshot(e, newValue),\n parent,\n subpath\n ) as this[\"N\"]\n }\n }\n try {\n return this._subtype.reconcile(\n current,\n newValue,\n parent,\n subpath\n ) as this[\"N\"]\n } catch (e) {\n current.die()\n return this._instantiateFallback(parent, subpath, undefined, newValue, e)\n }\n }\n\n isValidSnapshot(\n _value: this[\"C\"],\n _context: IValidationContext\n ): IValidationResult {\n return typeCheckSuccess()\n }\n\n is(thing: any): thing is any {\n if (isType(thing)) {\n return (\n this._subtype.isAssignableFrom(thing) ||\n this._fallbackType.isAssignableFrom(thing)\n )\n }\n try {\n if (this._subtype.is(thing)) {\n return true\n }\n } catch (_e) {\n // subtype.is() may throw (e.g. union dispatcher)\n }\n try {\n return this._fallbackType.is(thing)\n } catch (_e) {\n return false\n }\n }\n\n isAssignableFrom(type: IAnyType) {\n return (\n this._subtype.isAssignableFrom(type) ||\n this._fallbackType.isAssignableFrom(type)\n )\n }\n\n getSubTypes() {\n return [this._subtype, this._fallbackType]\n }\n\n getSnapshot(node: this[\"N\"]): this[\"S\"] {\n return node.snapshot\n }\n}\n\nexport interface IResilientType<\n IT extends IAnyType,\n FT extends IAnyType\n> extends IType<\n IT[\"CreationType\"] | FT[\"CreationType\"],\n IT[\"SnapshotType\"] | FT[\"SnapshotType\"],\n IT[\"TypeWithoutSTN\"] | FT[\"TypeWithoutSTN\"]\n> {}\n\n/**\n * `types.resilient` - Wraps a type so that instantiation errors are caught\n * and a fallback type is used instead. This is useful for loading data that\n * may contain unknown or invalid subtrees (e.g., plugin types that are not\n * installed) without crashing the entire state tree.\n *\n * The `createFallbackSnapshot` callback receives the caught error and the\n * original snapshot, and must return a valid snapshot for the fallback type.\n *\n * @param type The type to wrap.\n * @param fallbackType The fallback type to use when instantiation fails.\n * @param createFallbackSnapshot Callback that produces a fallback snapshot from the error and original snapshot.\n * @returns A resilient type.\n */\nexport function resilient<IT extends IAnyType, FT extends IAnyType>(\n type: IT,\n fallbackType: FT,\n createFallbackSnapshot: (error: unknown, snapshot: any) => FT[\"CreationType\"]\n): IResilientType<IT, FT> {\n assertIsType(type, 1)\n assertIsType(fallbackType, 2)\n return new Resilient(type, fallbackType, createFallbackSnapshot)\n}\n"]}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { type IAnyType, type Instance, type IType } from "../../internal.ts";
|
|
2
|
-
/** @hidden */
|
|
3
|
-
declare const $mstNotCustomized: unique symbol;
|
|
4
|
-
/** @hidden */
|
|
5
|
-
export interface _NotCustomized {
|
|
6
|
-
readonly [$mstNotCustomized]: undefined;
|
|
7
|
-
}
|
|
8
|
-
/** @hidden */
|
|
9
|
-
export type _CustomOrOther<Custom, Other> = Custom extends _NotCustomized ? Other : Custom;
|
|
10
|
-
/**
|
|
11
|
-
* A type that has its snapshots processed.
|
|
12
|
-
*/
|
|
13
|
-
export interface ISnapshotProcessor<IT extends IAnyType, CustomC, CustomS> extends IType<_CustomOrOther<CustomC, IT["CreationType"]>, _CustomOrOther<CustomS, IT["SnapshotType"]>, IT["TypeWithoutSTN"]> {
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Snapshot processors.
|
|
17
|
-
*/
|
|
18
|
-
export interface ISnapshotProcessors<IT extends IAnyType, CustomC, CustomS> {
|
|
19
|
-
/**
|
|
20
|
-
* Function that transforms an input snapshot.
|
|
21
|
-
*/
|
|
22
|
-
preProcessor?(snapshot: CustomC): IT["CreationType"];
|
|
23
|
-
/**
|
|
24
|
-
* Function that transforms an output snapshot.
|
|
25
|
-
* @param snapshot
|
|
26
|
-
*/
|
|
27
|
-
postProcessor?(snapshot: IT["SnapshotType"], node: Instance<IT>): CustomS;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* `types.snapshotProcessor` - Runs a pre/post snapshot processor before/after serializing a given type.
|
|
31
|
-
*
|
|
32
|
-
* Example:
|
|
33
|
-
* ```ts
|
|
34
|
-
* const Todo1 = types.model({ text: types.string })
|
|
35
|
-
* // in the backend the text type must be null when empty
|
|
36
|
-
* interface BackendTodo {
|
|
37
|
-
* text: string | null
|
|
38
|
-
* }
|
|
39
|
-
*
|
|
40
|
-
* const Todo2 = types.snapshotProcessor(Todo1, {
|
|
41
|
-
* // from snapshot to instance
|
|
42
|
-
* preProcessor(snapshot: BackendTodo) {
|
|
43
|
-
* return {
|
|
44
|
-
* text: sn.text || "";
|
|
45
|
-
* }
|
|
46
|
-
* },
|
|
47
|
-
*
|
|
48
|
-
* // from instance to snapshot
|
|
49
|
-
* postProcessor(snapshot, node): BackendTodo {
|
|
50
|
-
* return {
|
|
51
|
-
* text: !sn.text ? null : sn.text
|
|
52
|
-
* }
|
|
53
|
-
* }
|
|
54
|
-
* })
|
|
55
|
-
* ```
|
|
56
|
-
*
|
|
57
|
-
* @param type Type to run the processors over.
|
|
58
|
-
* @param processors Processors to run.
|
|
59
|
-
* @param name Type name, or undefined to inherit the inner type one.
|
|
60
|
-
* @returns
|
|
61
|
-
*/
|
|
62
|
-
export declare function snapshotProcessor<IT extends IAnyType, CustomC = _NotCustomized, CustomS = _NotCustomized>(type: IT, processors: ISnapshotProcessors<IT, CustomC, CustomS>, name?: string): ISnapshotProcessor<IT, CustomC, CustomS>;
|
|
63
|
-
export {};
|
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
import { BaseType, ComplexType } from "../../core/type/type.js";
|
|
2
|
-
import { ObjectNode, TypeFlags, assertIsType, devMode, fail, getSnapshot, isStateTreeNode, isType, isUnionType, typeCheckFailure } from "../../internal.js";
|
|
3
|
-
/** @hidden */
|
|
4
|
-
const $preProcessorFailed = Symbol("$preProcessorFailed");
|
|
5
|
-
class SnapshotProcessor extends BaseType {
|
|
6
|
-
_subtype;
|
|
7
|
-
_processors;
|
|
8
|
-
get flags() {
|
|
9
|
-
return this._subtype.flags | TypeFlags.SnapshotProcessor;
|
|
10
|
-
}
|
|
11
|
-
constructor(_subtype, _processors, name) {
|
|
12
|
-
super(name || _subtype.name);
|
|
13
|
-
this._subtype = _subtype;
|
|
14
|
-
this._processors = _processors;
|
|
15
|
-
}
|
|
16
|
-
describe() {
|
|
17
|
-
return `snapshotProcessor(${this._subtype.describe()})`;
|
|
18
|
-
}
|
|
19
|
-
preProcessSnapshot(sn) {
|
|
20
|
-
if (this._processors.preProcessor) {
|
|
21
|
-
return this._processors.preProcessor.call(null, sn);
|
|
22
|
-
}
|
|
23
|
-
return sn;
|
|
24
|
-
}
|
|
25
|
-
preProcessSnapshotSafe(sn) {
|
|
26
|
-
try {
|
|
27
|
-
return this.preProcessSnapshot(sn);
|
|
28
|
-
}
|
|
29
|
-
catch (_e) {
|
|
30
|
-
return $preProcessorFailed;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
postProcessSnapshot(sn, node) {
|
|
34
|
-
if (this._processors.postProcessor) {
|
|
35
|
-
return this._processors.postProcessor.call(null, sn, node.storedValue);
|
|
36
|
-
}
|
|
37
|
-
return sn;
|
|
38
|
-
}
|
|
39
|
-
_fixNode(node) {
|
|
40
|
-
// the node has to use these methods rather than the original type ones
|
|
41
|
-
proxyNodeTypeMethods(node.type, this, "create");
|
|
42
|
-
if (node instanceof ObjectNode) {
|
|
43
|
-
node.hasSnapshotPostProcessor = !!this._processors.postProcessor;
|
|
44
|
-
}
|
|
45
|
-
const oldGetSnapshot = node.getSnapshot;
|
|
46
|
-
node.getSnapshot = () => this.postProcessSnapshot(oldGetSnapshot.call(node), node);
|
|
47
|
-
if (!isUnionType(this._subtype)) {
|
|
48
|
-
node.getReconciliationType = () => {
|
|
49
|
-
return this;
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
instantiate(parent, subpath, environment, initialValue) {
|
|
54
|
-
const processedInitialValue = isStateTreeNode(initialValue)
|
|
55
|
-
? initialValue
|
|
56
|
-
: this.preProcessSnapshot(initialValue);
|
|
57
|
-
const node = this._subtype.instantiate(parent, subpath, environment, processedInitialValue);
|
|
58
|
-
this._fixNode(node);
|
|
59
|
-
return node;
|
|
60
|
-
}
|
|
61
|
-
reconcile(current, newValue, parent, subpath) {
|
|
62
|
-
const node = this._subtype.reconcile(current, isStateTreeNode(newValue) ? newValue : this.preProcessSnapshot(newValue), parent, subpath);
|
|
63
|
-
if (node !== current) {
|
|
64
|
-
this._fixNode(node);
|
|
65
|
-
}
|
|
66
|
-
return node;
|
|
67
|
-
}
|
|
68
|
-
getSnapshot(node, applyPostProcess = true) {
|
|
69
|
-
const sn = this._subtype.getSnapshot(node);
|
|
70
|
-
return applyPostProcess ? this.postProcessSnapshot(sn, node) : sn;
|
|
71
|
-
}
|
|
72
|
-
isValidSnapshot(value, context) {
|
|
73
|
-
const processedSn = this.preProcessSnapshotSafe(value);
|
|
74
|
-
if (processedSn === $preProcessorFailed) {
|
|
75
|
-
return typeCheckFailure(context, value, "Failed to preprocess value");
|
|
76
|
-
}
|
|
77
|
-
return this._subtype.validate(processedSn, context);
|
|
78
|
-
}
|
|
79
|
-
getSubTypes() {
|
|
80
|
-
return this._subtype;
|
|
81
|
-
}
|
|
82
|
-
is(thing) {
|
|
83
|
-
const value = isType(thing)
|
|
84
|
-
? this._subtype
|
|
85
|
-
: isStateTreeNode(thing)
|
|
86
|
-
? getSnapshot(thing, false)
|
|
87
|
-
: this.preProcessSnapshotSafe(thing);
|
|
88
|
-
if (value === $preProcessorFailed) {
|
|
89
|
-
return false;
|
|
90
|
-
}
|
|
91
|
-
return (this._subtype.validate(value, [{ path: "", type: this._subtype }])
|
|
92
|
-
.length === 0);
|
|
93
|
-
}
|
|
94
|
-
isAssignableFrom(type) {
|
|
95
|
-
return this._subtype.isAssignableFrom(type);
|
|
96
|
-
}
|
|
97
|
-
isMatchingSnapshotId(current, snapshot) {
|
|
98
|
-
if (!(this._subtype instanceof ComplexType)) {
|
|
99
|
-
return false;
|
|
100
|
-
}
|
|
101
|
-
const processedSn = this.preProcessSnapshot(snapshot);
|
|
102
|
-
return this._subtype.isMatchingSnapshotId(current, processedSn);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
function proxyNodeTypeMethods(nodeType, snapshotProcessorType, ...methods) {
|
|
106
|
-
for (const method of methods) {
|
|
107
|
-
nodeType[method] = snapshotProcessorType[method].bind(snapshotProcessorType);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* `types.snapshotProcessor` - Runs a pre/post snapshot processor before/after serializing a given type.
|
|
112
|
-
*
|
|
113
|
-
* Example:
|
|
114
|
-
* ```ts
|
|
115
|
-
* const Todo1 = types.model({ text: types.string })
|
|
116
|
-
* // in the backend the text type must be null when empty
|
|
117
|
-
* interface BackendTodo {
|
|
118
|
-
* text: string | null
|
|
119
|
-
* }
|
|
120
|
-
*
|
|
121
|
-
* const Todo2 = types.snapshotProcessor(Todo1, {
|
|
122
|
-
* // from snapshot to instance
|
|
123
|
-
* preProcessor(snapshot: BackendTodo) {
|
|
124
|
-
* return {
|
|
125
|
-
* text: sn.text || "";
|
|
126
|
-
* }
|
|
127
|
-
* },
|
|
128
|
-
*
|
|
129
|
-
* // from instance to snapshot
|
|
130
|
-
* postProcessor(snapshot, node): BackendTodo {
|
|
131
|
-
* return {
|
|
132
|
-
* text: !sn.text ? null : sn.text
|
|
133
|
-
* }
|
|
134
|
-
* }
|
|
135
|
-
* })
|
|
136
|
-
* ```
|
|
137
|
-
*
|
|
138
|
-
* @param type Type to run the processors over.
|
|
139
|
-
* @param processors Processors to run.
|
|
140
|
-
* @param name Type name, or undefined to inherit the inner type one.
|
|
141
|
-
* @returns
|
|
142
|
-
*/
|
|
143
|
-
export function snapshotProcessor(type, processors, name) {
|
|
144
|
-
assertIsType(type, 1);
|
|
145
|
-
if (devMode()) {
|
|
146
|
-
if (processors.postProcessor &&
|
|
147
|
-
typeof processors.postProcessor !== "function") {
|
|
148
|
-
// istanbul ignore next
|
|
149
|
-
throw fail("postSnapshotProcessor must be a function");
|
|
150
|
-
}
|
|
151
|
-
if (processors.preProcessor &&
|
|
152
|
-
typeof processors.preProcessor !== "function") {
|
|
153
|
-
// istanbul ignore next
|
|
154
|
-
throw fail("preSnapshotProcessor must be a function");
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return new SnapshotProcessor(type, processors, name);
|
|
158
|
-
}
|
|
159
|
-
//# sourceMappingURL=snapshotProcessor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"snapshotProcessor.js","sourceRoot":"","sources":["../../../src/types/utility-types/snapshotProcessor.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseType, ComplexType } from \"../../core/type/type.ts\"\nimport {\n type AnyObjectNode,\n type ExtractNodeType,\n type IAnyType,\n type Instance,\n type IType,\n type IValidationContext,\n type IValidationResult,\n ObjectNode,\n TypeFlags,\n assertIsType,\n devMode,\n fail,\n getSnapshot,\n isStateTreeNode,\n isType,\n isUnionType,\n typeCheckFailure\n} from \"../../internal.ts\"\n\n/** @hidden */\ndeclare const $mstNotCustomized: unique symbol\n\n/** @hidden */\nconst $preProcessorFailed: unique symbol = Symbol(\"$preProcessorFailed\")\n\n/** @hidden */\n// tslint:disable-next-line:class-name\nexport interface _NotCustomized {\n // only for typings\n readonly [$mstNotCustomized]: undefined\n}\n/** @hidden */\nexport type _CustomOrOther<Custom, Other> = Custom extends _NotCustomized\n ? Other\n : Custom\n\nclass SnapshotProcessor<IT extends IAnyType, CustomC, CustomS> extends BaseType<\n _CustomOrOther<CustomC, IT[\"CreationType\"]>,\n _CustomOrOther<CustomS, IT[\"SnapshotType\"]>,\n IT[\"TypeWithoutSTN\"],\n ExtractNodeType<IT>\n> {\n get flags() {\n return this._subtype.flags | TypeFlags.SnapshotProcessor\n }\n\n constructor(\n private readonly _subtype: IT,\n private readonly _processors: ISnapshotProcessors<IT, CustomC, CustomS>,\n name?: string\n ) {\n super(name || _subtype.name)\n }\n\n describe() {\n return `snapshotProcessor(${this._subtype.describe()})`\n }\n\n private preProcessSnapshot(sn: this[\"C\"]): IT[\"CreationType\"] {\n if (this._processors.preProcessor) {\n return this._processors.preProcessor.call(null, sn)\n }\n return sn as any\n }\n\n private preProcessSnapshotSafe(\n sn: this[\"C\"]\n ): IT[\"CreationType\"] | typeof $preProcessorFailed {\n try {\n return this.preProcessSnapshot(sn)\n } catch (_e) {\n return $preProcessorFailed\n }\n }\n\n private postProcessSnapshot(\n sn: IT[\"SnapshotType\"],\n node: this[\"N\"]\n ): this[\"S\"] {\n if (this._processors.postProcessor) {\n return this._processors.postProcessor!.call(\n null,\n sn,\n node.storedValue\n ) as any\n }\n return sn\n }\n\n private _fixNode(node: this[\"N\"]): void {\n // the node has to use these methods rather than the original type ones\n proxyNodeTypeMethods(node.type, this, \"create\")\n\n if (node instanceof ObjectNode) {\n node.hasSnapshotPostProcessor = !!this._processors.postProcessor\n }\n const oldGetSnapshot = node.getSnapshot\n node.getSnapshot = () =>\n this.postProcessSnapshot(oldGetSnapshot.call(node), node) as any\n if (!isUnionType(this._subtype)) {\n node.getReconciliationType = () => {\n return this\n }\n }\n }\n\n instantiate(\n parent: AnyObjectNode | null,\n subpath: string,\n environment: any,\n initialValue: this[\"C\"] | this[\"T\"]\n ): this[\"N\"] {\n const processedInitialValue = isStateTreeNode(initialValue)\n ? initialValue\n : this.preProcessSnapshot(initialValue)\n const node = this._subtype.instantiate(\n parent,\n subpath,\n environment,\n processedInitialValue\n ) as any\n this._fixNode(node)\n return node\n }\n\n reconcile(\n current: this[\"N\"],\n newValue: this[\"C\"] | this[\"T\"],\n parent: AnyObjectNode,\n subpath: string\n ): this[\"N\"] {\n const node = this._subtype.reconcile(\n current,\n isStateTreeNode(newValue) ? newValue : this.preProcessSnapshot(newValue),\n parent,\n subpath\n ) as any\n if (node !== current) {\n this._fixNode(node)\n }\n return node\n }\n\n getSnapshot(node: this[\"N\"], applyPostProcess: boolean = true): this[\"S\"] {\n const sn = this._subtype.getSnapshot(node)\n return applyPostProcess ? this.postProcessSnapshot(sn, node) : sn\n }\n\n isValidSnapshot(\n value: this[\"C\"],\n context: IValidationContext\n ): IValidationResult {\n const processedSn = this.preProcessSnapshotSafe(value)\n if (processedSn === $preProcessorFailed) {\n return typeCheckFailure(context, value, \"Failed to preprocess value\")\n }\n return this._subtype.validate(processedSn, context)\n }\n\n getSubTypes() {\n return this._subtype\n }\n\n is(thing: any): thing is any {\n const value = isType(thing)\n ? this._subtype\n : isStateTreeNode(thing)\n ? getSnapshot(thing, false)\n : this.preProcessSnapshotSafe(thing)\n if (value === $preProcessorFailed) {\n return false\n }\n return (\n this._subtype.validate(value, [{ path: \"\", type: this._subtype }])\n .length === 0\n )\n }\n\n isAssignableFrom(type: IAnyType): boolean {\n return this._subtype.isAssignableFrom(type)\n }\n\n isMatchingSnapshotId(current: this[\"N\"], snapshot: this[\"C\"]): boolean {\n if (!(this._subtype instanceof ComplexType)) {\n return false\n }\n const processedSn = this.preProcessSnapshot(snapshot)\n return this._subtype.isMatchingSnapshotId(current as any, processedSn)\n }\n}\n\nfunction proxyNodeTypeMethods(\n nodeType: any,\n snapshotProcessorType: any,\n ...methods: (keyof SnapshotProcessor<any, any, any>)[]\n) {\n for (const method of methods) {\n nodeType[method] = snapshotProcessorType[method].bind(snapshotProcessorType)\n }\n}\n\n// public API\n\n/**\n * A type that has its snapshots processed.\n */\nexport interface ISnapshotProcessor<\n IT extends IAnyType,\n CustomC,\n CustomS\n> extends IType<\n _CustomOrOther<CustomC, IT[\"CreationType\"]>,\n _CustomOrOther<CustomS, IT[\"SnapshotType\"]>,\n IT[\"TypeWithoutSTN\"]\n> {}\n\n/**\n * Snapshot processors.\n */\nexport interface ISnapshotProcessors<IT extends IAnyType, CustomC, CustomS> {\n /**\n * Function that transforms an input snapshot.\n */\n preProcessor?(snapshot: CustomC): IT[\"CreationType\"]\n /**\n * Function that transforms an output snapshot.\n * @param snapshot\n */\n postProcessor?(snapshot: IT[\"SnapshotType\"], node: Instance<IT>): CustomS\n}\n\n/**\n * `types.snapshotProcessor` - Runs a pre/post snapshot processor before/after serializing a given type.\n *\n * Example:\n * ```ts\n * const Todo1 = types.model({ text: types.string })\n * // in the backend the text type must be null when empty\n * interface BackendTodo {\n * text: string | null\n * }\n *\n * const Todo2 = types.snapshotProcessor(Todo1, {\n * // from snapshot to instance\n * preProcessor(snapshot: BackendTodo) {\n * return {\n * text: sn.text || \"\";\n * }\n * },\n *\n * // from instance to snapshot\n * postProcessor(snapshot, node): BackendTodo {\n * return {\n * text: !sn.text ? null : sn.text\n * }\n * }\n * })\n * ```\n *\n * @param type Type to run the processors over.\n * @param processors Processors to run.\n * @param name Type name, or undefined to inherit the inner type one.\n * @returns\n */\nexport function snapshotProcessor<\n IT extends IAnyType,\n CustomC = _NotCustomized,\n CustomS = _NotCustomized\n>(\n type: IT,\n processors: ISnapshotProcessors<IT, CustomC, CustomS>,\n name?: string\n): ISnapshotProcessor<IT, CustomC, CustomS> {\n assertIsType(type, 1)\n if (devMode()) {\n if (\n processors.postProcessor &&\n typeof processors.postProcessor !== \"function\"\n ) {\n // istanbul ignore next\n throw fail(\"postSnapshotProcessor must be a function\")\n }\n if (\n processors.preProcessor &&\n typeof processors.preProcessor !== \"function\"\n ) {\n // istanbul ignore next\n throw fail(\"preSnapshotProcessor must be a function\")\n }\n }\n\n return new SnapshotProcessor(type, processors, name)\n}\n"]}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { BaseType } from "../../core/type/type.ts";
|
|
2
|
-
import { type AnyObjectNode, type IAnyType, type IModelType, type IType, type IValidationContext, type IValidationResult, type ModelCreationType2, type ModelInstanceType, type ModelProperties, type ModelSnapshotType2, TypeFlags, type _NotCustomized } from "../../internal.ts";
|
|
3
|
-
export type ITypeDispatcher = (snapshot: any) => IAnyType;
|
|
4
|
-
export interface UnionOptions {
|
|
5
|
-
eager?: boolean;
|
|
6
|
-
dispatcher?: ITypeDispatcher;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* @internal
|
|
10
|
-
* @hidden
|
|
11
|
-
*/
|
|
12
|
-
export declare class Union extends BaseType<any, any, any> {
|
|
13
|
-
private readonly _types;
|
|
14
|
-
private readonly _dispatcher?;
|
|
15
|
-
private readonly _eager;
|
|
16
|
-
get flags(): TypeFlags.Union;
|
|
17
|
-
constructor(name: string, _types: IAnyType[], options?: UnionOptions);
|
|
18
|
-
isAssignableFrom(type: IAnyType): boolean;
|
|
19
|
-
describe(): string;
|
|
20
|
-
instantiate(parent: AnyObjectNode | null, subpath: string, environment: any, initialValue: this["C"] | this["T"]): this["N"];
|
|
21
|
-
reconcile(current: this["N"], newValue: this["C"] | this["T"], parent: AnyObjectNode, subpath: string): this["N"];
|
|
22
|
-
private noMatchMessage;
|
|
23
|
-
determineType(value: this["C"] | this["T"], reconcileCurrentType: IAnyType | undefined): IAnyType | undefined;
|
|
24
|
-
private tryQuickMatch;
|
|
25
|
-
private tryMatchPrimitive;
|
|
26
|
-
private snapshotLooksLikeType;
|
|
27
|
-
isValidSnapshot(value: this["C"], context: IValidationContext): IValidationResult;
|
|
28
|
-
getSubTypes(): IAnyType[];
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Transform _NotCustomized | _NotCustomized... to _NotCustomized, _NotCustomized | A | B to A | B
|
|
32
|
-
* @hidden
|
|
33
|
-
*/
|
|
34
|
-
export type _CustomCSProcessor<T> = Exclude<T, _NotCustomized> extends never ? _NotCustomized : Exclude<T, _NotCustomized>;
|
|
35
|
-
/** @hidden */
|
|
36
|
-
export interface ITypeUnion<C, S, T> extends IType<_CustomCSProcessor<C>, _CustomCSProcessor<S>, T> {
|
|
37
|
-
}
|
|
38
|
-
export declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB>>;
|
|
39
|
-
export declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB>>;
|
|
40
|
-
export declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC>>;
|
|
41
|
-
export declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC>>;
|
|
42
|
-
export declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD>>;
|
|
43
|
-
export declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD>>;
|
|
44
|
-
export declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD, PE extends ModelProperties, OE, FCE, FSE>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE>>;
|
|
45
|
-
export declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD, PE extends ModelProperties, OE, FCE, FSE>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE>>;
|
|
46
|
-
export declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF>>;
|
|
47
|
-
export declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF>>;
|
|
48
|
-
export declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF, PG extends ModelProperties, OG, FCG, FSG>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>, G: IModelType<PG, OG, FCG, FSG>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF> | ModelCreationType2<PG, FCG>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF> | ModelSnapshotType2<PG, FSG>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF> | ModelInstanceType<PG, OG>>;
|
|
49
|
-
export declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF, PG extends ModelProperties, OG, FCG, FSG>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>, G: IModelType<PG, OG, FCG, FSG>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF> | ModelCreationType2<PG, FCG>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF> | ModelSnapshotType2<PG, FSG>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF> | ModelInstanceType<PG, OG>>;
|
|
50
|
-
export declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF, PG extends ModelProperties, OG, FCG, FSG, PH extends ModelProperties, OH, FCH, FSH>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>, G: IModelType<PG, OG, FCG, FSG>, H: IModelType<PH, OH, FCH, FSH>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF> | ModelCreationType2<PG, FCG> | ModelCreationType2<PH, FCH>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF> | ModelSnapshotType2<PG, FSG> | ModelSnapshotType2<PH, FSH>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF> | ModelInstanceType<PG, OG> | ModelInstanceType<PH, OH>>;
|
|
51
|
-
export declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF, PG extends ModelProperties, OG, FCG, FSG, PH extends ModelProperties, OH, FCH, FSH>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>, G: IModelType<PG, OG, FCG, FSG>, H: IModelType<PH, OH, FCH, FSH>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF> | ModelCreationType2<PG, FCG> | ModelCreationType2<PH, FCH>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF> | ModelSnapshotType2<PG, FSG> | ModelSnapshotType2<PH, FSH>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF> | ModelInstanceType<PG, OG> | ModelInstanceType<PH, OH>>;
|
|
52
|
-
export declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF, PG extends ModelProperties, OG, FCG, FSG, PH extends ModelProperties, OH, FCH, FSH, PI extends ModelProperties, OI, FCI, FSI>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>, G: IModelType<PG, OG, FCG, FSG>, H: IModelType<PH, OH, FCH, FSH>, I: IModelType<PI, OI, FCI, FSI>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF> | ModelCreationType2<PG, FCG> | ModelCreationType2<PH, FCH> | ModelCreationType2<PI, FCI>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF> | ModelSnapshotType2<PG, FSG> | ModelSnapshotType2<PH, FSH> | ModelSnapshotType2<PI, FSI>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF> | ModelInstanceType<PG, OG> | ModelInstanceType<PH, OH> | ModelInstanceType<PI, OI>>;
|
|
53
|
-
export declare function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD, FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF, PG extends ModelProperties, OG, FCG, FSG, PH extends ModelProperties, OH, FCH, FSH, PI extends ModelProperties, OI, FCI, FSI>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>, G: IModelType<PG, OG, FCG, FSG>, H: IModelType<PH, OH, FCH, FSH>, I: IModelType<PI, OI, FCI, FSI>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF> | ModelCreationType2<PG, FCG> | ModelCreationType2<PH, FCH> | ModelCreationType2<PI, FCI>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF> | ModelSnapshotType2<PG, FSG> | ModelSnapshotType2<PH, FSH> | ModelSnapshotType2<PI, FSI>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF> | ModelInstanceType<PG, OG> | ModelInstanceType<PH, OH> | ModelInstanceType<PI, OI>>;
|
|
54
|
-
export declare function union<CA, SA, TA, CB, SB, TB>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>): ITypeUnion<CA | CB, SA | SB, TA | TB>;
|
|
55
|
-
export declare function union<CA, SA, TA, CB, SB, TB>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>): ITypeUnion<CA | CB, SA | SB, TA | TB>;
|
|
56
|
-
export declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>): ITypeUnion<CA | CB | CC, SA | SB | SC, TA | TB | TC>;
|
|
57
|
-
export declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>): ITypeUnion<CA | CB | CC, SA | SB | SC, TA | TB | TC>;
|
|
58
|
-
export declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>): ITypeUnion<CA | CB | CC | CD, SA | SB | SC | SD, TA | TB | TC | TD>;
|
|
59
|
-
export declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>): ITypeUnion<CA | CB | CC | CD, SA | SB | SC | SD, TA | TB | TC | TD>;
|
|
60
|
-
export declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>): ITypeUnion<CA | CB | CC | CD | CE, SA | SB | SC | SD | SE, TA | TB | TC | TD | TE>;
|
|
61
|
-
export declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>): ITypeUnion<CA | CB | CC | CD | CE, SA | SB | SC | SD | SE, TA | TB | TC | TD | TE>;
|
|
62
|
-
export declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>): ITypeUnion<CA | CB | CC | CD | CE | CF, SA | SB | SC | SD | SE | SF, TA | TB | TC | TD | TE | TF>;
|
|
63
|
-
export declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>): ITypeUnion<CA | CB | CC | CD | CE | CF, SA | SB | SC | SD | SE | SF, TA | TB | TC | TD | TE | TF>;
|
|
64
|
-
export declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF, CG, SG, TG>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>, G: IType<CG, SG, TG>): ITypeUnion<CA | CB | CC | CD | CE | CF | CG, SA | SB | SC | SD | SE | SF | SG, TA | TB | TC | TD | TE | TF | TG>;
|
|
65
|
-
export declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF, CG, SG, TG>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>, G: IType<CG, SG, TG>): ITypeUnion<CA | CB | CC | CD | CE | CF | CG, SA | SB | SC | SD | SE | SF | SG, TA | TB | TC | TD | TE | TF | TG>;
|
|
66
|
-
export declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF, CG, SG, TG, CH, SH, TH>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>, G: IType<CG, SG, TG>, H: IType<CH, SH, TH>): ITypeUnion<CA | CB | CC | CD | CE | CF | CG | CH, SA | SB | SC | SD | SE | SF | SG | SH, TA | TB | TC | TD | TE | TF | TG | TH>;
|
|
67
|
-
export declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF, CG, SG, TG, CH, SH, TH>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>, G: IType<CG, SG, TG>, H: IType<CH, SH, TH>): ITypeUnion<CA | CB | CC | CD | CE | CF | CG | CH, SA | SB | SC | SD | SE | SF | SG | SH, TA | TB | TC | TD | TE | TF | TG | TH>;
|
|
68
|
-
export declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF, CG, SG, TG, CH, SH, TH, CI, SI, TI>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>, G: IType<CG, SG, TG>, H: IType<CH, SH, TH>, I: IType<CI, SI, TI>): ITypeUnion<CA | CB | CC | CD | CE | CF | CG | CH | CI, SA | SB | SC | SD | SE | SF | SG | SH | SI, TA | TB | TC | TD | TE | TF | TG | TH | TI>;
|
|
69
|
-
export declare function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF, CG, SG, TG, CH, SH, TH, CI, SI, TI>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>, G: IType<CG, SG, TG>, H: IType<CH, SH, TH>, I: IType<CI, SI, TI>): ITypeUnion<CA | CB | CC | CD | CE | CF | CG | CH | CI, SA | SB | SC | SD | SE | SF | SG | SH | SI, TA | TB | TC | TD | TE | TF | TG | TH | TI>;
|
|
70
|
-
export declare function union(...types: IAnyType[]): IAnyType;
|
|
71
|
-
export declare function union(dispatchOrType: UnionOptions | IAnyType, ...otherTypes: IAnyType[]): IAnyType;
|
|
72
|
-
/**
|
|
73
|
-
* Returns if a given value represents a union type.
|
|
74
|
-
*
|
|
75
|
-
* @param type
|
|
76
|
-
* @returns
|
|
77
|
-
*/
|
|
78
|
-
export declare function isUnionType<IT extends IAnyType>(type: IT): type is IT;
|