@jbrowse/mobx-state-tree 5.6.0 → 5.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/README.md +18 -0
  2. package/dist/core/action.d.ts +1 -1
  3. package/dist/core/action.js +228 -0
  4. package/dist/core/action.js.map +1 -1
  5. package/dist/core/actionContext.js +42 -0
  6. package/dist/core/actionContext.js.map +1 -1
  7. package/dist/core/flow.d.ts +1 -1
  8. package/dist/core/flow.js +180 -0
  9. package/dist/core/flow.js.map +1 -1
  10. package/dist/core/json-patch.js +133 -0
  11. package/dist/core/json-patch.js.map +1 -1
  12. package/dist/core/mst-operations.js +885 -0
  13. package/dist/core/mst-operations.js.map +1 -1
  14. package/dist/core/node/BaseNode.js +152 -0
  15. package/dist/core/node/BaseNode.js.map +1 -1
  16. package/dist/core/node/Hook.js +15 -0
  17. package/dist/core/node/Hook.js.map +1 -1
  18. package/dist/core/node/create-node.js +41 -0
  19. package/dist/core/node/create-node.js.map +1 -1
  20. package/dist/core/node/identifier-cache.js +115 -0
  21. package/dist/core/node/identifier-cache.js.map +1 -1
  22. package/dist/core/node/livelinessChecking.js +38 -0
  23. package/dist/core/node/livelinessChecking.js.map +1 -1
  24. package/dist/core/node/node-utils.js +165 -0
  25. package/dist/core/node/node-utils.js.map +1 -1
  26. package/dist/core/node/object-node.js +545 -0
  27. package/dist/core/node/object-node.js.map +1 -1
  28. package/dist/core/node/scalar-node.js +89 -0
  29. package/dist/core/node/scalar-node.js.map +1 -1
  30. package/dist/core/process.d.ts +1 -1
  31. package/dist/core/process.js +39 -0
  32. package/dist/core/process.js.map +1 -1
  33. package/dist/core/type/type-checker.js +154 -0
  34. package/dist/core/type/type-checker.js.map +1 -1
  35. package/dist/core/type/type.d.ts +1 -1
  36. package/dist/core/type/type.js +251 -0
  37. package/dist/core/type/type.js.map +1 -1
  38. package/dist/index.js +85 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/internal.js +60 -0
  41. package/dist/internal.js.map +1 -1
  42. package/dist/middlewares/create-action-tracking-middleware.js +81 -0
  43. package/dist/middlewares/create-action-tracking-middleware.js.map +1 -1
  44. package/dist/middlewares/createActionTrackingMiddleware2.js +133 -0
  45. package/dist/middlewares/createActionTrackingMiddleware2.js.map +1 -1
  46. package/dist/middlewares/on-action.js +215 -0
  47. package/dist/middlewares/on-action.js.map +1 -1
  48. package/dist/mobx-state-tree.js +83 -6867
  49. package/dist/mobx-state-tree.module.js +83 -6789
  50. package/dist/types/complex-types/array.d.ts +1 -1
  51. package/dist/types/complex-types/array.js +352 -0
  52. package/dist/types/complex-types/array.js.map +1 -1
  53. package/dist/types/complex-types/map.d.ts +1 -1
  54. package/dist/types/complex-types/map.js +361 -0
  55. package/dist/types/complex-types/map.js.map +1 -1
  56. package/dist/types/complex-types/model.js +477 -0
  57. package/dist/types/complex-types/model.js.map +1 -1
  58. package/dist/types/index.js +38 -0
  59. package/dist/types/index.js.map +1 -1
  60. package/dist/types/primitives.js +182 -0
  61. package/dist/types/primitives.js.map +1 -1
  62. package/dist/types/utility-types/custom.js +110 -0
  63. package/dist/types/utility-types/custom.js.map +1 -1
  64. package/dist/types/utility-types/enumeration.js +34 -0
  65. package/dist/types/utility-types/enumeration.js.map +1 -1
  66. package/dist/types/utility-types/frozen.js +97 -0
  67. package/dist/types/utility-types/frozen.js.map +1 -1
  68. package/dist/types/utility-types/identifier.js +129 -0
  69. package/dist/types/utility-types/identifier.js.map +1 -1
  70. package/dist/types/utility-types/late.js +109 -0
  71. package/dist/types/utility-types/late.js.map +1 -1
  72. package/dist/types/utility-types/lazy.js +76 -0
  73. package/dist/types/utility-types/lazy.js.map +1 -1
  74. package/dist/types/utility-types/literal.js +63 -0
  75. package/dist/types/utility-types/literal.js.map +1 -1
  76. package/dist/types/utility-types/maybe.js +30 -0
  77. package/dist/types/utility-types/maybe.js.map +1 -1
  78. package/dist/types/utility-types/optional.js +140 -0
  79. package/dist/types/utility-types/optional.js.map +1 -1
  80. package/dist/types/utility-types/reference.d.ts +2 -2
  81. package/dist/types/utility-types/reference.js +392 -0
  82. package/dist/types/utility-types/reference.js.map +1 -1
  83. package/dist/types/utility-types/refinement.js +85 -0
  84. package/dist/types/utility-types/refinement.js.map +1 -1
  85. package/dist/types/utility-types/resilient.js +120 -0
  86. package/dist/types/utility-types/resilient.js.map +1 -1
  87. package/dist/types/utility-types/snapshotProcessor.js +161 -0
  88. package/dist/types/utility-types/snapshotProcessor.js.map +1 -1
  89. package/dist/types/utility-types/union.d.ts +1 -0
  90. package/dist/types/utility-types/union.js +245 -0
  91. package/dist/types/utility-types/union.js.map +1 -1
  92. package/dist/utils.js +483 -0
  93. package/dist/utils.js.map +1 -1
  94. package/package.json +25 -24
  95. package/changelog.md +0 -677
  96. package/dist/mobx-state-tree.umd.js +0 -6873
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScalarNode = void 0;
4
+ const mobx_1 = require("mobx");
5
+ const internal_ts_1 = require("../../internal.js");
6
+ /**
7
+ * @internal
8
+ * @hidden
9
+ */
10
+ class ScalarNode extends internal_ts_1.BaseNode {
11
+ constructor(simpleType, parent, subpath, environment, initialSnapshot) {
12
+ super(simpleType, parent, subpath, environment);
13
+ try {
14
+ this.storedValue = simpleType.createNewInstance(initialSnapshot);
15
+ }
16
+ catch (e) {
17
+ // short-cut to die the instance, to avoid the snapshot computed starting to throw...
18
+ this.state = internal_ts_1.NodeLifeCycle.DEAD;
19
+ throw e;
20
+ }
21
+ this.state = internal_ts_1.NodeLifeCycle.CREATED;
22
+ // for scalar nodes there's no point in firing this event since it would fire on the constructor, before
23
+ // anybody can actually register for/listen to it
24
+ // this.fireHook(Hook.AfterCreate)
25
+ this.finalizeCreation();
26
+ }
27
+ get root() {
28
+ // future optimization: store root ref in the node and maintain it
29
+ if (!this.parent) {
30
+ throw (0, internal_ts_1.fail)(`This scalar node is not part of a tree`);
31
+ }
32
+ return this.parent.root;
33
+ }
34
+ setParent(newParent, subpath) {
35
+ const parentChanged = this.parent !== newParent;
36
+ const subpathChanged = this.subpath !== subpath;
37
+ if (!parentChanged && !subpathChanged) {
38
+ return;
39
+ }
40
+ if ((0, internal_ts_1.devMode)()) {
41
+ if (!subpath) {
42
+ // istanbul ignore next
43
+ throw (0, internal_ts_1.fail)("assertion failed: subpath expected");
44
+ }
45
+ if (!newParent) {
46
+ // istanbul ignore next
47
+ throw (0, internal_ts_1.fail)("assertion failed: parent expected");
48
+ }
49
+ if (parentChanged) {
50
+ // istanbul ignore next
51
+ throw (0, internal_ts_1.fail)("assertion failed: scalar nodes cannot change their parent");
52
+ }
53
+ }
54
+ this.environment = undefined; // use parent's
55
+ this.baseSetParent(this.parent, subpath);
56
+ }
57
+ get snapshot() {
58
+ return (0, internal_ts_1.freeze)(this.getSnapshot());
59
+ }
60
+ getSnapshot() {
61
+ return this.type.getSnapshot(this);
62
+ }
63
+ toString() {
64
+ const path = (this.isAlive ? this.path : this.pathUponDeath) || "<root>";
65
+ return `${this.type.name}@${path}${this.isAlive ? "" : " [dead]"}`;
66
+ }
67
+ die() {
68
+ if (!this.isAlive || this.state === internal_ts_1.NodeLifeCycle.DETACHING) {
69
+ return;
70
+ }
71
+ this.aboutToDie();
72
+ this.finalizeDeath();
73
+ }
74
+ finalizeCreation() {
75
+ this.baseFinalizeCreation();
76
+ }
77
+ aboutToDie() {
78
+ this.baseAboutToDie();
79
+ }
80
+ finalizeDeath() {
81
+ this.baseFinalizeDeath();
82
+ }
83
+ fireHook(name) {
84
+ this.fireInternalHook(name);
85
+ }
86
+ }
87
+ exports.ScalarNode = ScalarNode;
88
+ ScalarNode.prototype.die = (0, mobx_1.action)(ScalarNode.prototype.die);
89
+ //# sourceMappingURL=scalar-node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scalar-node.js","sourceRoot":"","sources":["../../../src/core/node/scalar-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scalar-node.js","sourceRoot":"","sources":["../../../src/core/node/scalar-node.ts"],"names":[],"mappings":"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"}
@@ -47,4 +47,4 @@ export declare function process<A1, A2, A3, A4, A5, A6, A7, A8>(generator: (a1:
47
47
  * @internal
48
48
  * @hidden
49
49
  */
50
- export declare function createProcessSpawner(name: string, generator: Function): (this: any) => Promise<unknown>;
50
+ export declare function createProcessSpawner(name: string, generator: Function): (this: any, ...flowArgs: any[]) => Promise<unknown>;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.process = process;
4
+ exports.createProcessSpawner = createProcessSpawner;
5
+ const internal_ts_1 = require("../internal.js");
6
+ // based on: https://github.com/mobxjs/mobx-utils/blob/master/src/async-action.ts
7
+ /*
8
+ All contents of this file are deprecated.
9
+
10
+ The term `process` has been replaced with `flow` to avoid conflicts with the
11
+ global `process` object.
12
+
13
+ Refer to `flow.ts` for any further changes to this implementation.
14
+ */
15
+ const DEPRECATION_MESSAGE = "See https://github.com/mobxjs/mobx-state-tree/issues/399 for more information. " +
16
+ "Note that the middleware event types starting with `process` now start with `flow`.";
17
+ /**
18
+ * @hidden
19
+ *
20
+ * @deprecated has been renamed to `flow()`.
21
+ * See https://github.com/mobxjs/mobx-state-tree/issues/399 for more information.
22
+ * Note that the middleware event types starting with `process` now start with `flow`.
23
+ *
24
+ * @returns {Promise}
25
+ */
26
+ function process(asyncAction) {
27
+ (0, internal_ts_1.deprecated)("process", "`process()` has been renamed to `flow()`. " + DEPRECATION_MESSAGE);
28
+ return (0, internal_ts_1.flow)(asyncAction);
29
+ }
30
+ /**
31
+ * @internal
32
+ * @hidden
33
+ */
34
+ function createProcessSpawner(name, generator) {
35
+ (0, internal_ts_1.deprecated)("process", "`createProcessSpawner()` has been renamed to `createFlowSpawner()`. " +
36
+ DEPRECATION_MESSAGE);
37
+ return (0, internal_ts_1.createFlowSpawner)(name, generator);
38
+ }
39
+ //# sourceMappingURL=process.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/core/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAEpE,iFAAiF;AACjF;;;;;;;EAOE;AAEF,MAAM,mBAAmB,GACvB,iFAAiF;IACjF,qFAAqF,CAAA;AAkGvF;;;;;;;;GAQG;AACH,MAAM,UAAU,OAAO,CAAC,WAAgB;IACtC,UAAU,CACR,SAAS,EACT,4CAA4C,GAAG,mBAAmB,CACnE,CAAA;IACD,OAAO,IAAI,CAAC,WAAW,CAAC,CAAA;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,SAAmB;IACpE,UAAU,CACR,SAAS,EACT,sEAAsE;QACpE,mBAAmB,CACtB,CAAA;IACD,OAAO,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;AAC3C,CAAC"}
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/core/process.ts"],"names":[],"mappings":";;AAyHA,0BAMC;AAMD,oDAOC;AA5ID,gDAAoE;AAEpE,iFAAiF;AACjF;;;;;;;EAOE;AAEF,MAAM,mBAAmB,GACvB,iFAAiF;IACjF,qFAAqF,CAAA;AAkGvF;;;;;;;;GAQG;AACH,SAAgB,OAAO,CAAC,WAAgB;IACtC,IAAA,wBAAU,EACR,SAAS,EACT,4CAA4C,GAAG,mBAAmB,CACnE,CAAA;IACD,OAAO,IAAA,kBAAI,EAAC,WAAW,CAAC,CAAA;AAC1B,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,IAAY,EAAE,SAAmB;IACpE,IAAA,wBAAU,EACR,SAAS,EACT,sEAAsE;QACpE,mBAAmB,CACtB,CAAA;IACD,OAAO,IAAA,+BAAiB,EAAC,IAAI,EAAE,SAAS,CAAC,CAAA;AAC3C,CAAC"}
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.prettyPrintValue = prettyPrintValue;
4
+ exports.getContextForPath = getContextForPath;
5
+ exports.popContext = popContext;
6
+ exports.typeCheckSuccess = typeCheckSuccess;
7
+ exports.typeCheckFailure = typeCheckFailure;
8
+ exports.flattenTypeErrors = flattenTypeErrors;
9
+ exports.typecheckInternal = typecheckInternal;
10
+ exports.typecheck = typecheck;
11
+ const internal_ts_1 = require("../../internal.js");
12
+ const MAX_STRINGIFY_DEPTH = 3;
13
+ function safeStringify(value) {
14
+ try {
15
+ const ancestors = [];
16
+ return JSON.stringify(value, function (_key, val) {
17
+ if (val !== null && typeof val === "object") {
18
+ while (ancestors.length > 0 &&
19
+ ancestors[ancestors.length - 1] !== this) {
20
+ ancestors.pop();
21
+ }
22
+ if (ancestors.length >= MAX_STRINGIFY_DEPTH) {
23
+ return Array.isArray(val) ? "[…]" : "{…}";
24
+ }
25
+ ancestors.push(val);
26
+ }
27
+ return val;
28
+ });
29
+ }
30
+ catch (e) {
31
+ // istanbul ignore next
32
+ return `<Unserializable: ${e}>`;
33
+ }
34
+ }
35
+ /**
36
+ * @internal
37
+ * @hidden
38
+ */
39
+ function prettyPrintValue(value) {
40
+ return typeof value === "function"
41
+ ? `<function${value.name ? " " + value.name : ""}>`
42
+ : (0, internal_ts_1.isStateTreeNode)(value)
43
+ ? `<${value}>`
44
+ : `\`${safeStringify(value)}\``;
45
+ }
46
+ function shortenPrintValue(valueInString) {
47
+ return valueInString.length < 280
48
+ ? valueInString
49
+ : `${valueInString.substring(0, 272)}......${valueInString.substring(valueInString.length - 8)}`;
50
+ }
51
+ function toErrorString(error) {
52
+ const { value } = error;
53
+ const type = error.context[error.context.length - 1].type;
54
+ const fullPath = error.context
55
+ .map(({ path }) => path)
56
+ .filter(path => path.length > 0)
57
+ .join("/");
58
+ const pathPrefix = fullPath.length > 0 ? `at path "/${fullPath}" ` : ``;
59
+ const currentTypename = (0, internal_ts_1.isStateTreeNode)(value)
60
+ ? `value of type ${(0, internal_ts_1.getStateTreeNode)(value).type.name}:`
61
+ : (0, internal_ts_1.isPrimitive)(value)
62
+ ? "value"
63
+ : "snapshot";
64
+ const isSnapshotCompatible = type && (0, internal_ts_1.isStateTreeNode)(value) && type.is((0, internal_ts_1.getStateTreeNode)(value).snapshot);
65
+ return (`${pathPrefix}${currentTypename} ${shortenPrintValue(prettyPrintValue(value))} is not assignable ${type ? `to type: \`${type.name}\`` : ``}` +
66
+ (error.message ? ` (${error.message})` : "") +
67
+ (type
68
+ ? (0, internal_ts_1.isPrimitiveType)(type) || (0, internal_ts_1.isPrimitive)(value)
69
+ ? `.`
70
+ : `, expected an instance of \`${type.name}\` or a snapshot like \`${shortenPrintValue(type.describe())}\` instead.` +
71
+ (isSnapshotCompatible
72
+ ? " (Note that a snapshot of the provided value is compatible with the targeted type)"
73
+ : "")
74
+ : `.`));
75
+ }
76
+ /**
77
+ * @internal
78
+ * @hidden
79
+ * Pushes a new entry onto the context array (mutates in place for performance).
80
+ * Returns the same context array for chaining.
81
+ */
82
+ function getContextForPath(context, path, type) {
83
+ context.push({ path, type });
84
+ return context;
85
+ }
86
+ /**
87
+ * @internal
88
+ * @hidden
89
+ * Pops the last entry from the context array (mutates in place).
90
+ * Must be called after validation to restore context state.
91
+ */
92
+ function popContext(context) {
93
+ context.pop();
94
+ }
95
+ /**
96
+ * @internal
97
+ * @hidden
98
+ */
99
+ function typeCheckSuccess() {
100
+ return internal_ts_1.EMPTY_ARRAY;
101
+ }
102
+ /**
103
+ * @internal
104
+ * @hidden
105
+ */
106
+ function typeCheckFailure(context, value, message) {
107
+ // Clone context since it may be mutated after this error is created
108
+ return [{ context: context.slice(), value, message }];
109
+ }
110
+ /**
111
+ * @internal
112
+ * @hidden
113
+ */
114
+ function flattenTypeErrors(errors) {
115
+ return errors.flat();
116
+ }
117
+ // TODO; doublecheck: typecheck should only needed to be invoked from: type.create and array / map / value.property will change
118
+ /**
119
+ * @internal
120
+ * @hidden
121
+ */
122
+ function typecheckInternal(type, value) {
123
+ // runs typeChecking if it is in dev-mode or through a process.env.ENABLE_TYPE_CHECK flag
124
+ if ((0, internal_ts_1.isTypeCheckingEnabled)()) {
125
+ typecheck(type, value);
126
+ }
127
+ }
128
+ /**
129
+ * Run's the typechecker for the given type on the given value, which can be a snapshot or an instance.
130
+ * Throws if the given value is not according the provided type specification.
131
+ * Use this if you need typechecks even in a production build (by default all automatic runtime type checks will be skipped in production builds)
132
+ *
133
+ * @param type Type to check against.
134
+ * @param value Value to be checked, either a snapshot or an instance.
135
+ */
136
+ function typecheck(type, value) {
137
+ const errors = type.validate(value, [{ path: "", type }]);
138
+ if (errors.length > 0) {
139
+ throw (0, internal_ts_1.fail)(validationErrorsToString(type, value, errors));
140
+ }
141
+ }
142
+ const MAX_ERRORS_REPORTED = 10;
143
+ function validationErrorsToString(type, value, errors) {
144
+ if (errors.length === 0) {
145
+ return undefined;
146
+ }
147
+ const shown = errors.slice(0, MAX_ERRORS_REPORTED).map(toErrorString);
148
+ const overflow = errors.length - shown.length;
149
+ if (overflow > 0) {
150
+ shown.push(`(… and ${overflow} more error${overflow === 1 ? "" : "s"})`);
151
+ }
152
+ return (`Error while converting ${shortenPrintValue(prettyPrintValue(value))} to \`${type.name}\`:\n\n ` + shown.join("\n "));
153
+ }
154
+ //# sourceMappingURL=type-checker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-checker.js","sourceRoot":"","sources":["../../../src/core/type/type-checker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type-checker.js","sourceRoot":"","sources":["../../../src/core/type/type-checker.ts"],"names":[],"mappings":"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"}
@@ -238,7 +238,7 @@ export declare abstract class BaseType<C, S, T, N extends BaseNode<any, any, any
238
238
  readonly name: string;
239
239
  constructor(name: string);
240
240
  create(snapshot?: C, environment?: any): any;
241
- getSnapshot(node: N, applyPostProcess?: boolean): S;
241
+ getSnapshot(_node: N, _applyPostProcess?: boolean): S;
242
242
  abstract reconcile(current: N, newValue: C | T, parent: AnyObjectNode, subpath: string): N;
243
243
  abstract instantiate(parent: AnyObjectNode | null, subpath: string, environment: any, initialValue: C | T): N;
244
244
  abstract flags: TypeFlags;
@@ -0,0 +1,251 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SimpleType = exports.ComplexType = exports.BaseType = exports.cannotDetermineSubtype = exports.TypeFlags = void 0;
4
+ exports.isType = isType;
5
+ exports.assertIsType = assertIsType;
6
+ const mobx_1 = require("mobx");
7
+ const internal_ts_1 = require("../../internal.js");
8
+ // Cache for validation results to avoid re-validating the same object against the same type
9
+ // Uses WeakMap so cached objects can be garbage collected
10
+ const validationCache = new WeakMap();
11
+ /**
12
+ * @internal
13
+ * @hidden
14
+ */
15
+ var TypeFlags;
16
+ (function (TypeFlags) {
17
+ TypeFlags[TypeFlags["String"] = 1] = "String";
18
+ TypeFlags[TypeFlags["Number"] = 2] = "Number";
19
+ TypeFlags[TypeFlags["Boolean"] = 4] = "Boolean";
20
+ TypeFlags[TypeFlags["Date"] = 8] = "Date";
21
+ TypeFlags[TypeFlags["Literal"] = 16] = "Literal";
22
+ TypeFlags[TypeFlags["Array"] = 32] = "Array";
23
+ TypeFlags[TypeFlags["Map"] = 64] = "Map";
24
+ TypeFlags[TypeFlags["Object"] = 128] = "Object";
25
+ TypeFlags[TypeFlags["Frozen"] = 256] = "Frozen";
26
+ TypeFlags[TypeFlags["Optional"] = 512] = "Optional";
27
+ TypeFlags[TypeFlags["Reference"] = 1024] = "Reference";
28
+ TypeFlags[TypeFlags["Identifier"] = 2048] = "Identifier";
29
+ TypeFlags[TypeFlags["Late"] = 4096] = "Late";
30
+ TypeFlags[TypeFlags["Refinement"] = 8192] = "Refinement";
31
+ TypeFlags[TypeFlags["Union"] = 16384] = "Union";
32
+ TypeFlags[TypeFlags["Null"] = 32768] = "Null";
33
+ TypeFlags[TypeFlags["Undefined"] = 65536] = "Undefined";
34
+ TypeFlags[TypeFlags["Integer"] = 131072] = "Integer";
35
+ TypeFlags[TypeFlags["Custom"] = 262144] = "Custom";
36
+ TypeFlags[TypeFlags["SnapshotProcessor"] = 524288] = "SnapshotProcessor";
37
+ TypeFlags[TypeFlags["Lazy"] = 1048576] = "Lazy";
38
+ TypeFlags[TypeFlags["Finite"] = 2097152] = "Finite";
39
+ TypeFlags[TypeFlags["Float"] = 4194304] = "Float";
40
+ })(TypeFlags || (exports.TypeFlags = TypeFlags = {}));
41
+ /**
42
+ * @internal
43
+ * @hidden
44
+ */
45
+ exports.cannotDetermineSubtype = "cannotDetermine";
46
+ /** @hidden */
47
+ const $type = Symbol("$type");
48
+ /**
49
+ * A base type produces a MST node (Node in the state tree)
50
+ *
51
+ * @internal
52
+ * @hidden
53
+ */
54
+ class BaseType {
55
+ [$type];
56
+ // these are just to make inner types avaialable to inherited classes
57
+ C;
58
+ S;
59
+ T;
60
+ N;
61
+ isType = true;
62
+ name;
63
+ constructor(name) {
64
+ this.name = name;
65
+ }
66
+ create(snapshot, environment) {
67
+ (0, internal_ts_1.typecheckInternal)(this, snapshot);
68
+ return this.instantiate(null, "", environment, snapshot).value;
69
+ }
70
+ getSnapshot(_node, _applyPostProcess) {
71
+ // istanbul ignore next
72
+ throw (0, internal_ts_1.fail)("unimplemented method");
73
+ }
74
+ isAssignableFrom(type) {
75
+ return type === this;
76
+ }
77
+ validate(value, context) {
78
+ const node = (0, internal_ts_1.getStateTreeNodeSafe)(value);
79
+ if (node) {
80
+ const valueType = (0, internal_ts_1.getType)(value);
81
+ return this.isAssignableFrom(valueType)
82
+ ? (0, internal_ts_1.typeCheckSuccess)()
83
+ : (0, internal_ts_1.typeCheckFailure)(context, value);
84
+ // it is tempting to compare snapshots, but in that case we should always clone on assignments...
85
+ }
86
+ // check cache for object values (only at root level to avoid context mismatches)
87
+ if (typeof value === "object" && value !== null && context.length === 1) {
88
+ const typeCache = validationCache.get(value);
89
+ if (typeCache) {
90
+ const cached = typeCache.get(this);
91
+ if (cached !== undefined) {
92
+ return cached;
93
+ }
94
+ }
95
+ }
96
+ const result = this.isValidSnapshot(value, context);
97
+ // cache result for object values (only at root level)
98
+ if (typeof value === "object" && value !== null && context.length === 1) {
99
+ let typeCache = validationCache.get(value);
100
+ if (!typeCache) {
101
+ typeCache = new WeakMap();
102
+ validationCache.set(value, typeCache);
103
+ }
104
+ typeCache.set(this, result);
105
+ }
106
+ return result;
107
+ }
108
+ is(thing) {
109
+ return this.validate(thing, [{ path: "", type: this }]).length === 0;
110
+ }
111
+ get Type() {
112
+ // istanbul ignore next
113
+ throw (0, internal_ts_1.fail)("Factory.Type should not be actually called. It is just a Type signature that can be used at compile time with Typescript, by using `typeof type.Type`");
114
+ }
115
+ get TypeWithoutSTN() {
116
+ // istanbul ignore next
117
+ throw (0, internal_ts_1.fail)("Factory.TypeWithoutSTN should not be actually called. It is just a Type signature that can be used at compile time with Typescript, by using `typeof type.TypeWithoutSTN`");
118
+ }
119
+ get SnapshotType() {
120
+ // istanbul ignore next
121
+ throw (0, internal_ts_1.fail)("Factory.SnapshotType should not be actually called. It is just a Type signature that can be used at compile time with Typescript, by using `typeof type.SnapshotType`");
122
+ }
123
+ get CreationType() {
124
+ // istanbul ignore next
125
+ throw (0, internal_ts_1.fail)("Factory.CreationType should not be actually called. It is just a Type signature that can be used at compile time with Typescript, by using `typeof type.CreationType`");
126
+ }
127
+ }
128
+ exports.BaseType = BaseType;
129
+ BaseType.prototype.create = (0, mobx_1.action)(BaseType.prototype.create);
130
+ /**
131
+ * A complex type produces a MST node (Node in the state tree)
132
+ *
133
+ * @internal
134
+ * @hidden
135
+ */
136
+ class ComplexType extends BaseType {
137
+ identifierAttribute;
138
+ constructor(name) {
139
+ super(name);
140
+ }
141
+ create(snapshot = this.getDefaultSnapshot(), environment) {
142
+ return super.create(snapshot, environment);
143
+ }
144
+ getValue(node) {
145
+ node.createObservableInstanceIfNeeded();
146
+ return node.storedValue;
147
+ }
148
+ isMatchingSnapshotId(current, snapshot) {
149
+ return (!current.identifierAttribute ||
150
+ current.identifier ===
151
+ (0, internal_ts_1.normalizeIdentifier)(snapshot[current.identifierAttribute]));
152
+ }
153
+ tryToReconcileNode(current, newValue) {
154
+ if (current.isDetaching) {
155
+ return false;
156
+ }
157
+ if (current.snapshot === newValue) {
158
+ // newValue is the current snapshot of the node, noop
159
+ return true;
160
+ }
161
+ if ((0, internal_ts_1.isStateTreeNode)(newValue) && (0, internal_ts_1.getStateTreeNode)(newValue) === current) {
162
+ // the current node is the same as the new one
163
+ return true;
164
+ }
165
+ if (current.type === this &&
166
+ (0, internal_ts_1.isMutable)(newValue) &&
167
+ !(0, internal_ts_1.isStateTreeNode)(newValue) &&
168
+ this.isMatchingSnapshotId(current, newValue)) {
169
+ // the newValue has no node, so can be treated like a snapshot
170
+ // we can reconcile
171
+ current.applySnapshot(newValue);
172
+ return true;
173
+ }
174
+ return false;
175
+ }
176
+ reconcile(current, newValue, parent, subpath) {
177
+ const nodeReconciled = this.tryToReconcileNode(current, newValue);
178
+ if (nodeReconciled) {
179
+ current.setParent(parent, subpath);
180
+ return current;
181
+ }
182
+ // current node cannot be recycled in any way
183
+ current.die(); // noop if detaching
184
+ // attempt to reuse the new one
185
+ if ((0, internal_ts_1.isStateTreeNode)(newValue) && this.isAssignableFrom((0, internal_ts_1.getType)(newValue))) {
186
+ // newValue is a Node as well, move it here..
187
+ const newNode = (0, internal_ts_1.getStateTreeNode)(newValue);
188
+ newNode.setParent(parent, subpath);
189
+ return newNode;
190
+ }
191
+ // nothing to do, we have to create a new node
192
+ return this.instantiate(parent, subpath, undefined, newValue);
193
+ }
194
+ getSubTypes() {
195
+ return null;
196
+ }
197
+ }
198
+ exports.ComplexType = ComplexType;
199
+ ComplexType.prototype.create = (0, mobx_1.action)(ComplexType.prototype.create);
200
+ /**
201
+ * @internal
202
+ * @hidden
203
+ */
204
+ class SimpleType extends BaseType {
205
+ createNewInstance(snapshot) {
206
+ return snapshot;
207
+ }
208
+ getValue(node) {
209
+ // if we ever find a case where scalar nodes can be accessed without iterating through its parent
210
+ // uncomment this to make sure the parent chain is created when this is accessed
211
+ // if (node.parent) {
212
+ // node.parent.createObservableInstanceIfNeeded()
213
+ // }
214
+ return node.storedValue;
215
+ }
216
+ getSnapshot(node) {
217
+ return node.storedValue;
218
+ }
219
+ reconcile(current, newValue, parent, subpath) {
220
+ // reconcile only if type and value are still the same, and only if the node is not detaching
221
+ if (!current.isDetaching &&
222
+ current.type === this &&
223
+ current.storedValue === newValue) {
224
+ return current;
225
+ }
226
+ const res = this.instantiate(parent, subpath, undefined, newValue);
227
+ current.die(); // noop if detaching
228
+ return res;
229
+ }
230
+ getSubTypes() {
231
+ return null;
232
+ }
233
+ }
234
+ exports.SimpleType = SimpleType;
235
+ /**
236
+ * Returns if a given value represents a type.
237
+ *
238
+ * @param value Value to check.
239
+ * @returns `true` if the value is a type.
240
+ */
241
+ function isType(value) {
242
+ return typeof value === "object" && value && value.isType === true;
243
+ }
244
+ /**
245
+ * @internal
246
+ * @hidden
247
+ */
248
+ function assertIsType(type, argNumber) {
249
+ (0, internal_ts_1.assertArg)(type, isType, "mobx-state-tree type", argNumber);
250
+ }
251
+ //# sourceMappingURL=type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../src/core/type/type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../src/core/type/type.ts"],"names":[],"mappings":"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"}