atom.io 0.14.0 → 0.14.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/data/dist/index.cjs +1473 -52
- package/data/dist/index.cjs.map +1 -1
- package/data/dist/index.d.cts +315 -16
- package/data/dist/index.js +10 -267
- package/data/dist/index.js.map +1 -1
- package/data/package.json +5 -5
- package/data/src/join.ts +3 -3
- package/dist/chunk-5VJ77LZE.js +176 -0
- package/dist/chunk-5VJ77LZE.js.map +1 -0
- package/dist/chunk-CK7GNCU5.js +309 -0
- package/dist/chunk-CK7GNCU5.js.map +1 -0
- package/dist/chunk-KW7RA7IM.js +67 -0
- package/dist/chunk-KW7RA7IM.js.map +1 -0
- package/dist/chunk-LFXB7Y6M.js +68 -0
- package/dist/chunk-LFXB7Y6M.js.map +1 -0
- package/dist/chunk-NYCVSXQB.js +181 -0
- package/dist/chunk-NYCVSXQB.js.map +1 -0
- package/dist/chunk-TE3ZSTQ6.js +2516 -0
- package/dist/chunk-TE3ZSTQ6.js.map +1 -0
- package/dist/index.cjs +2244 -55
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +268 -21
- package/dist/index.js +1 -152
- package/dist/index.js.map +1 -1
- package/dist/metafile-cjs.json +1 -1
- package/internal/dist/index.cjs +208 -79
- package/internal/dist/index.cjs.map +1 -1
- package/internal/dist/index.d.cts +226 -27
- package/internal/dist/index.js +1 -2240
- package/internal/dist/index.js.map +1 -1
- package/internal/package.json +5 -5
- package/introspection/dist/index.cjs +1618 -46
- package/introspection/dist/index.cjs.map +1 -1
- package/introspection/dist/index.d.cts +374 -4
- package/introspection/dist/index.js +2 -316
- package/introspection/dist/index.js.map +1 -1
- package/introspection/package.json +5 -5
- package/json/dist/index.cjs +1560 -8
- package/json/dist/index.cjs.map +1 -1
- package/json/dist/index.d.cts +371 -7
- package/json/dist/index.js +1 -76
- package/json/dist/index.js.map +1 -1
- package/json/package.json +5 -5
- package/package.json +5 -4
- package/react/dist/index.cjs +1604 -14
- package/react/dist/index.cjs.map +1 -1
- package/react/dist/index.d.cts +375 -4
- package/react/dist/index.js +2 -68
- package/react/dist/index.js.map +1 -1
- package/react/package.json +5 -5
- package/react-devtools/dist/index.cjs +2268 -198
- package/react-devtools/dist/index.cjs.map +1 -1
- package/react-devtools/dist/index.css +2 -2
- package/react-devtools/dist/index.d.cts +148 -24
- package/react-devtools/dist/index.js +57 -297
- package/react-devtools/dist/index.js.map +1 -1
- package/react-devtools/package.json +5 -5
- package/realtime-client/dist/index.cjs +1585 -35
- package/realtime-client/dist/index.cjs.map +1 -1
- package/realtime-client/dist/index.d.cts +382 -12
- package/realtime-client/dist/index.js +2 -165
- package/realtime-client/dist/index.js.map +1 -1
- package/realtime-client/package.json +5 -5
- package/realtime-react/dist/index.cjs +1782 -35
- package/realtime-react/dist/index.cjs.map +1 -1
- package/realtime-react/dist/index.d.cts +49 -9
- package/realtime-react/dist/index.js +4 -66
- package/realtime-react/dist/index.js.map +1 -1
- package/realtime-react/package.json +5 -5
- package/realtime-server/dist/index.cjs +1604 -58
- package/realtime-server/dist/index.cjs.map +1 -1
- package/realtime-server/dist/index.d.cts +391 -11
- package/realtime-server/dist/index.js +27 -21
- package/realtime-server/dist/index.js.map +1 -1
- package/realtime-server/package.json +6 -6
- package/realtime-testing/dist/index.cjs +2352 -16
- package/realtime-testing/dist/index.cjs.map +1 -1
- package/realtime-testing/dist/index.d.cts +486 -3
- package/realtime-testing/dist/index.js +10 -31
- package/realtime-testing/dist/index.js.map +1 -1
- package/realtime-testing/package.json +5 -5
- package/transceivers/set-rtx/dist/index.cjs +31 -10
- package/transceivers/set-rtx/dist/index.cjs.map +1 -1
- package/transceivers/set-rtx/dist/index.d.cts +29 -3
- package/transceivers/set-rtx/dist/index.js +2 -3
- package/transceivers/set-rtx/dist/index.js.map +1 -1
- package/transceivers/set-rtx/package.json +6 -6
- package/data/dist/index.d.ts +0 -158
- package/data/dist/metafile-cjs.json +0 -1
- package/data/dist/metafile-esm.json +0 -1
- package/dist/index.d.ts +0 -243
- package/dist/metafile-esm.json +0 -1
- package/internal/dist/index.d.ts +0 -421
- package/internal/dist/metafile-cjs.json +0 -1
- package/internal/dist/metafile-esm.json +0 -1
- package/introspection/dist/index.d.ts +0 -24
- package/introspection/dist/metafile-cjs.json +0 -1
- package/introspection/dist/metafile-esm.json +0 -1
- package/json/dist/index.d.ts +0 -51
- package/json/dist/metafile-cjs.json +0 -1
- package/json/dist/metafile-esm.json +0 -1
- package/react/dist/index.d.ts +0 -23
- package/react/dist/metafile-cjs.json +0 -1
- package/react/dist/metafile-esm.json +0 -1
- package/react-devtools/dist/index.d.ts +0 -341
- package/react-devtools/dist/metafile-cjs.json +0 -1
- package/react-devtools/dist/metafile-esm.json +0 -1
- package/realtime-client/dist/index.d.ts +0 -22
- package/realtime-client/dist/metafile-cjs.json +0 -1
- package/realtime-client/dist/metafile-esm.json +0 -1
- package/realtime-react/dist/index.d.ts +0 -27
- package/realtime-react/dist/metafile-cjs.json +0 -1
- package/realtime-react/dist/metafile-esm.json +0 -1
- package/realtime-server/dist/index.d.ts +0 -25
- package/realtime-server/dist/metafile-cjs.json +0 -1
- package/realtime-server/dist/metafile-esm.json +0 -1
- package/realtime-testing/dist/index.d.ts +0 -49
- package/realtime-testing/dist/metafile-cjs.json +0 -1
- package/realtime-testing/dist/metafile-esm.json +0 -1
- package/transceivers/set-rtx/dist/index.d.ts +0 -40
- package/transceivers/set-rtx/dist/metafile-cjs.json +0 -1
- package/transceivers/set-rtx/dist/metafile-esm.json +0 -1
package/internal/dist/index.cjs
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var atom_io = require('atom.io');
|
|
4
|
-
var json = require('atom.io/json');
|
|
5
|
-
var internal = require('atom.io/internal');
|
|
6
|
-
|
|
7
3
|
var __defProp = Object.defineProperty;
|
|
8
4
|
var __defProps = Object.defineProperties;
|
|
9
5
|
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
@@ -24,7 +20,78 @@ var __spreadValues = (a, b) => {
|
|
|
24
20
|
};
|
|
25
21
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
26
22
|
|
|
27
|
-
// src/
|
|
23
|
+
// src/get-state.ts
|
|
24
|
+
function getState(token, store = IMPLICIT.STORE) {
|
|
25
|
+
var _a;
|
|
26
|
+
const state = (_a = withdraw(token, store)) != null ? _a : withdrawNewFamilyMember(token, store);
|
|
27
|
+
if (state === void 0) {
|
|
28
|
+
throw new NotFoundError(token, store);
|
|
29
|
+
}
|
|
30
|
+
return readOrComputeValue(state, store);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// src/logger.ts
|
|
34
|
+
var simpleLog = (logLevel) => (icon, tokenType, tokenKey, message, ...rest) => {
|
|
35
|
+
console[logLevel](`${icon} ${tokenType} "${tokenKey}" ${message}`, ...rest);
|
|
36
|
+
};
|
|
37
|
+
var simpleLogger = {
|
|
38
|
+
error: simpleLog(`error`),
|
|
39
|
+
info: simpleLog(`info`),
|
|
40
|
+
warn: simpleLog(`warn`)
|
|
41
|
+
};
|
|
42
|
+
var AtomIOLogger = class {
|
|
43
|
+
constructor(logLevel, filter, logger = simpleLogger) {
|
|
44
|
+
this.logLevel = logLevel;
|
|
45
|
+
this.filter = filter;
|
|
46
|
+
this.logger = logger;
|
|
47
|
+
this.error = (...args) => {
|
|
48
|
+
var _a, _b;
|
|
49
|
+
if (((_b = (_a = this.filter) == null ? void 0 : _a.call(this, ...args)) != null ? _b : true) && this.logLevel !== null) {
|
|
50
|
+
this.logger.error(...args);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
this.info = (...args) => {
|
|
54
|
+
var _a, _b;
|
|
55
|
+
if (((_b = (_a = this.filter) == null ? void 0 : _a.call(this, ...args)) != null ? _b : true) && this.logLevel === `info`) {
|
|
56
|
+
this.logger.info(...args);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
this.warn = (...args) => {
|
|
60
|
+
var _a, _b;
|
|
61
|
+
if (((_b = (_a = this.filter) == null ? void 0 : _a.call(this, ...args)) != null ? _b : true) && this.logLevel !== `error` && this.logLevel !== null) {
|
|
62
|
+
this.logger.warn(...args);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
// src/set-state.ts
|
|
69
|
+
function setState(token, value, store = IMPLICIT.STORE) {
|
|
70
|
+
var _a;
|
|
71
|
+
const rejection = openOperation(token, store);
|
|
72
|
+
if (rejection) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const state = (_a = withdraw(token, store)) != null ? _a : withdrawNewFamilyMember(token, store);
|
|
76
|
+
if (state === void 0) {
|
|
77
|
+
throw new NotFoundError(token, store);
|
|
78
|
+
}
|
|
79
|
+
setAtomOrSelector(state, value, store);
|
|
80
|
+
closeOperation(store);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// src/transaction.ts
|
|
84
|
+
var runTransaction = (token, store = IMPLICIT.STORE) => (...parameters) => {
|
|
85
|
+
const tx = withdraw(token, store);
|
|
86
|
+
if (tx) {
|
|
87
|
+
return tx.run(...parameters);
|
|
88
|
+
}
|
|
89
|
+
throw new Error(
|
|
90
|
+
`Cannot run transaction "${token.key}": transaction not found in store "${store.config.name}".`
|
|
91
|
+
);
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
// internal/src/future.ts
|
|
28
95
|
var Future = class extends Promise {
|
|
29
96
|
constructor(executor) {
|
|
30
97
|
super((resolve, reject) => {
|
|
@@ -43,7 +110,7 @@ var Future = class extends Promise {
|
|
|
43
110
|
}
|
|
44
111
|
};
|
|
45
112
|
|
|
46
|
-
// src/lineage.ts
|
|
113
|
+
// internal/src/lineage.ts
|
|
47
114
|
function newest(scion) {
|
|
48
115
|
while (scion.child !== null) {
|
|
49
116
|
scion = scion.child;
|
|
@@ -57,7 +124,7 @@ function eldest(scion) {
|
|
|
57
124
|
return scion;
|
|
58
125
|
}
|
|
59
126
|
|
|
60
|
-
// src/caching.ts
|
|
127
|
+
// internal/src/caching.ts
|
|
61
128
|
function cacheValue(key, value, subject, store) {
|
|
62
129
|
const target = newest(store);
|
|
63
130
|
const currentValue = target.valueMap.get(key);
|
|
@@ -102,7 +169,45 @@ var evictCachedValue = (key, store) => {
|
|
|
102
169
|
store.logger.info(`\u{1F5D1}`, `state`, key, `evicted`);
|
|
103
170
|
};
|
|
104
171
|
|
|
105
|
-
// src/
|
|
172
|
+
// ../anvl/src/json/index.ts
|
|
173
|
+
var parseJson = (str) => JSON.parse(str);
|
|
174
|
+
var stringifyJson = (json) => JSON.stringify(json);
|
|
175
|
+
|
|
176
|
+
// json/src/select-json.ts
|
|
177
|
+
var selectJson = (atom, transform, store = IMPLICIT.STORE) => {
|
|
178
|
+
return createSelector(
|
|
179
|
+
{
|
|
180
|
+
key: `${atom.key}:JSON`,
|
|
181
|
+
get: ({ get }) => transform.toJson(get(atom)),
|
|
182
|
+
set: ({ set }, newValue) => set(atom, transform.fromJson(newValue))
|
|
183
|
+
},
|
|
184
|
+
void 0,
|
|
185
|
+
store
|
|
186
|
+
);
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
// json/src/select-json-family.ts
|
|
190
|
+
var selectJsonFamily = (atomFamily, transform, store = IMPLICIT.STORE) => {
|
|
191
|
+
const jsonFamily = createSelectorFamily(
|
|
192
|
+
{
|
|
193
|
+
key: `${atomFamily.key}:JSON`,
|
|
194
|
+
get: (key) => ({ get }) => transform.toJson(get(atomFamily(key))),
|
|
195
|
+
set: (key) => ({ set }, newValue) => set(atomFamily(key), transform.fromJson(newValue))
|
|
196
|
+
},
|
|
197
|
+
store
|
|
198
|
+
);
|
|
199
|
+
atomFamily.subject.subscribe(
|
|
200
|
+
`store=${store.config.name}::json-selector-family`,
|
|
201
|
+
(token) => {
|
|
202
|
+
if (token.family) {
|
|
203
|
+
jsonFamily(parseJson(token.family.subKey));
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
);
|
|
207
|
+
return jsonFamily;
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
// internal/src/read-or-compute-value.ts
|
|
106
211
|
var readOrComputeValue = (state, store) => {
|
|
107
212
|
if (isValueCached(state.key, store)) {
|
|
108
213
|
store.logger.info(`\u{1F4D6}`, state.type, state.key, `reading cached value`);
|
|
@@ -123,7 +228,7 @@ var readOrComputeValue = (state, store) => {
|
|
|
123
228
|
return state.default instanceof Function ? state.default() : state.default;
|
|
124
229
|
};
|
|
125
230
|
|
|
126
|
-
// src/operation.ts
|
|
231
|
+
// internal/src/operation.ts
|
|
127
232
|
var openOperation = (token, store) => {
|
|
128
233
|
const target = newest(store);
|
|
129
234
|
if (target.operation.open) {
|
|
@@ -189,12 +294,12 @@ var markDone = (key, store) => {
|
|
|
189
294
|
target.operation.done.add(key);
|
|
190
295
|
};
|
|
191
296
|
|
|
192
|
-
// src/set-state/become.ts
|
|
297
|
+
// internal/src/set-state/become.ts
|
|
193
298
|
var become = (nextVersionOfThing) => (originalThing) => nextVersionOfThing instanceof Function ? nextVersionOfThing(
|
|
194
299
|
originalThing instanceof Function ? originalThing() : originalThing
|
|
195
300
|
) : nextVersionOfThing;
|
|
196
301
|
|
|
197
|
-
// src/subject.ts
|
|
302
|
+
// internal/src/subject.ts
|
|
198
303
|
var Subject = class {
|
|
199
304
|
constructor() {
|
|
200
305
|
this.subscribers = /* @__PURE__ */ new Map();
|
|
@@ -224,7 +329,7 @@ var StatefulSubject = class extends Subject {
|
|
|
224
329
|
}
|
|
225
330
|
};
|
|
226
331
|
|
|
227
|
-
// src/set-state/copy-mutable-if-needed.ts
|
|
332
|
+
// internal/src/set-state/copy-mutable-if-needed.ts
|
|
228
333
|
function copyMutableIfNeeded(atom, transform, origin, target) {
|
|
229
334
|
const originValue = origin.valueMap.get(atom.key);
|
|
230
335
|
const targetValue = target.valueMap.get(atom.key);
|
|
@@ -239,7 +344,7 @@ function copyMutableIfNeeded(atom, transform, origin, target) {
|
|
|
239
344
|
return targetValue;
|
|
240
345
|
}
|
|
241
346
|
|
|
242
|
-
// src/set-state/copy-mutable-in-transaction.ts
|
|
347
|
+
// internal/src/set-state/copy-mutable-in-transaction.ts
|
|
243
348
|
function copyMutableIfWithinTransaction(oldValue, atom, store) {
|
|
244
349
|
const target = newest(store);
|
|
245
350
|
const parent = target.parent;
|
|
@@ -273,7 +378,7 @@ function copyMutableFamilyMemberWithinTransaction(atom, family, origin, target)
|
|
|
273
378
|
return null;
|
|
274
379
|
}
|
|
275
380
|
|
|
276
|
-
// src/set-state/emit-update.ts
|
|
381
|
+
// internal/src/set-state/emit-update.ts
|
|
277
382
|
var emitUpdate = (state, update, store) => {
|
|
278
383
|
store.logger.info(
|
|
279
384
|
`\u{1F4E2}`,
|
|
@@ -289,7 +394,7 @@ var emitUpdate = (state, update, store) => {
|
|
|
289
394
|
state.subject.next(update);
|
|
290
395
|
};
|
|
291
396
|
|
|
292
|
-
// src/set-state/evict-downstream.ts
|
|
397
|
+
// internal/src/set-state/evict-downstream.ts
|
|
293
398
|
var evictDownStream = (atom, store) => {
|
|
294
399
|
const target = newest(store);
|
|
295
400
|
const downstreamKeys = target.selectorAtoms.getRelatedKeys(atom.key);
|
|
@@ -319,7 +424,7 @@ var evictDownStream = (atom, store) => {
|
|
|
319
424
|
}
|
|
320
425
|
};
|
|
321
426
|
|
|
322
|
-
// src/set-state/stow-update.ts
|
|
427
|
+
// internal/src/set-state/stow-update.ts
|
|
323
428
|
function shouldUpdateBeStowed(key, update) {
|
|
324
429
|
if (isTransceiver(update.newValue)) {
|
|
325
430
|
return false;
|
|
@@ -362,7 +467,7 @@ var stowUpdate = (state, update, store) => {
|
|
|
362
467
|
);
|
|
363
468
|
};
|
|
364
469
|
|
|
365
|
-
// src/set-state/set-atom.ts
|
|
470
|
+
// internal/src/set-state/set-atom.ts
|
|
366
471
|
var setAtom = (atom, next, store) => {
|
|
367
472
|
const target = newest(store);
|
|
368
473
|
const oldValue = readOrComputeValue(atom, store);
|
|
@@ -383,7 +488,7 @@ var setAtom = (atom, next, store) => {
|
|
|
383
488
|
}
|
|
384
489
|
};
|
|
385
490
|
|
|
386
|
-
// src/set-state/set-atom-or-selector.ts
|
|
491
|
+
// internal/src/set-state/set-atom-or-selector.ts
|
|
387
492
|
var setAtomOrSelector = (state, value, store) => {
|
|
388
493
|
if (state.type === `selector`) {
|
|
389
494
|
state.set(value);
|
|
@@ -392,7 +497,7 @@ var setAtomOrSelector = (state, value, store) => {
|
|
|
392
497
|
}
|
|
393
498
|
};
|
|
394
499
|
|
|
395
|
-
// src/store/deposit.ts
|
|
500
|
+
// internal/src/store/deposit.ts
|
|
396
501
|
function deposit(state) {
|
|
397
502
|
const token = {
|
|
398
503
|
key: state.key,
|
|
@@ -404,7 +509,7 @@ function deposit(state) {
|
|
|
404
509
|
return token;
|
|
405
510
|
}
|
|
406
511
|
|
|
407
|
-
//
|
|
512
|
+
// ../rel8/junction/src/junction.ts
|
|
408
513
|
var Junction = class {
|
|
409
514
|
constructor(data, config) {
|
|
410
515
|
this.relations = /* @__PURE__ */ new Map();
|
|
@@ -662,7 +767,7 @@ var Junction = class {
|
|
|
662
767
|
}
|
|
663
768
|
};
|
|
664
769
|
|
|
665
|
-
// src/store/store.ts
|
|
770
|
+
// internal/src/store/store.ts
|
|
666
771
|
var Store = class {
|
|
667
772
|
constructor(name, store = null) {
|
|
668
773
|
this.parent = null;
|
|
@@ -707,7 +812,7 @@ var Store = class {
|
|
|
707
812
|
name: `IMPLICIT_STORE`
|
|
708
813
|
};
|
|
709
814
|
this.loggers = [
|
|
710
|
-
new
|
|
815
|
+
new AtomIOLogger(`warn`, (_, __, key) => !key.includes(`\u{1F441}\u200D\u{1F5E8}`))
|
|
711
816
|
];
|
|
712
817
|
this.logger = {
|
|
713
818
|
error: (...messages) => {
|
|
@@ -761,7 +866,7 @@ var clearStore = (store) => {
|
|
|
761
866
|
store.config = config;
|
|
762
867
|
};
|
|
763
868
|
|
|
764
|
-
// src/store/withdraw.ts
|
|
869
|
+
// internal/src/store/withdraw.ts
|
|
765
870
|
function withdraw(token, store) {
|
|
766
871
|
var _a, _b, _c, _d;
|
|
767
872
|
const target = newest(store);
|
|
@@ -772,7 +877,7 @@ function withdraw(token, store) {
|
|
|
772
877
|
return void 0;
|
|
773
878
|
}
|
|
774
879
|
|
|
775
|
-
// src/store/withdraw-new-family-member.ts
|
|
880
|
+
// internal/src/store/withdraw-new-family-member.ts
|
|
776
881
|
function withdrawNewFamilyMember(token, store) {
|
|
777
882
|
if (token.family) {
|
|
778
883
|
store.logger.info(
|
|
@@ -793,19 +898,19 @@ function withdrawNewFamilyMember(token, store) {
|
|
|
793
898
|
return void 0;
|
|
794
899
|
}
|
|
795
900
|
|
|
796
|
-
// src/keys.ts
|
|
901
|
+
// internal/src/keys.ts
|
|
797
902
|
var isAtomKey = (key, store) => newest(store).atoms.has(key);
|
|
798
903
|
var isSelectorKey = (key, store) => newest(store).selectors.has(key);
|
|
799
904
|
var isReadonlySelectorKey = (key, store) => newest(store).readonlySelectors.has(key);
|
|
800
905
|
var isStateKey = (key, store) => isAtomKey(key, store) || isSelectorKey(key, store) || isReadonlySelectorKey(key, store);
|
|
801
906
|
|
|
802
|
-
// src/selector/get-selector-dependency-keys.ts
|
|
907
|
+
// internal/src/selector/get-selector-dependency-keys.ts
|
|
803
908
|
var getSelectorDependencyKeys = (key, store) => {
|
|
804
909
|
const sources = newest(store).selectorGraph.getRelationEntries({ downstreamSelectorKey: key }).filter(([_, { source }]) => source !== key).map(([_, { source }]) => source).filter((source) => isStateKey(source, store));
|
|
805
910
|
return sources;
|
|
806
911
|
};
|
|
807
912
|
|
|
808
|
-
// src/selector/trace-selector-atoms.ts
|
|
913
|
+
// internal/src/selector/trace-selector-atoms.ts
|
|
809
914
|
var traceSelectorAtoms = (selectorKey, directDependencyKey, store) => {
|
|
810
915
|
const rootKeys = [];
|
|
811
916
|
const indirectDependencyKeys = getSelectorDependencyKeys(
|
|
@@ -838,7 +943,7 @@ var traceAllSelectorAtoms = (selectorKey, store) => {
|
|
|
838
943
|
);
|
|
839
944
|
};
|
|
840
945
|
|
|
841
|
-
// src/selector/update-selector-atoms.ts
|
|
946
|
+
// internal/src/selector/update-selector-atoms.ts
|
|
842
947
|
var updateSelectorAtoms = (selectorKey, dependency, store) => {
|
|
843
948
|
const target = newest(store);
|
|
844
949
|
if (dependency.type === `atom`) {
|
|
@@ -869,7 +974,7 @@ var updateSelectorAtoms = (selectorKey, dependency, store) => {
|
|
|
869
974
|
}
|
|
870
975
|
};
|
|
871
976
|
|
|
872
|
-
// src/selector/register-selector.ts
|
|
977
|
+
// internal/src/selector/register-selector.ts
|
|
873
978
|
var registerSelector = (selectorKey, store) => ({
|
|
874
979
|
get: (dependency) => {
|
|
875
980
|
const target = newest(store);
|
|
@@ -914,7 +1019,7 @@ var registerSelector = (selectorKey, store) => ({
|
|
|
914
1019
|
}
|
|
915
1020
|
});
|
|
916
1021
|
|
|
917
|
-
// src/selector/create-read-write-selector.ts
|
|
1022
|
+
// internal/src/selector/create-read-write-selector.ts
|
|
918
1023
|
var createReadWriteSelector = (options, family, store) => {
|
|
919
1024
|
const target = newest(store);
|
|
920
1025
|
const subject = new Subject();
|
|
@@ -965,7 +1070,7 @@ var createReadWriteSelector = (options, family, store) => {
|
|
|
965
1070
|
return token;
|
|
966
1071
|
};
|
|
967
1072
|
|
|
968
|
-
// src/selector/create-readonly-selector.ts
|
|
1073
|
+
// internal/src/selector/create-readonly-selector.ts
|
|
969
1074
|
var createReadonlySelector = (options, family, store) => {
|
|
970
1075
|
const target = newest(store);
|
|
971
1076
|
const subject = new Subject();
|
|
@@ -1001,7 +1106,7 @@ var createReadonlySelector = (options, family, store) => {
|
|
|
1001
1106
|
return token;
|
|
1002
1107
|
};
|
|
1003
1108
|
|
|
1004
|
-
// src/selector/create-selector.ts
|
|
1109
|
+
// internal/src/selector/create-selector.ts
|
|
1005
1110
|
function createSelector(options, family, store) {
|
|
1006
1111
|
const target = newest(store);
|
|
1007
1112
|
const existingWritable = target.selectors.get(options.key);
|
|
@@ -1020,7 +1125,7 @@ function createSelector(options, family, store) {
|
|
|
1020
1125
|
return createReadonlySelector(options, family, store);
|
|
1021
1126
|
}
|
|
1022
1127
|
|
|
1023
|
-
// src/selector/delete-selector.ts
|
|
1128
|
+
// internal/src/selector/delete-selector.ts
|
|
1024
1129
|
function deleteSelector(selectorToken, store) {
|
|
1025
1130
|
const target = newest(store);
|
|
1026
1131
|
const { key } = selectorToken;
|
|
@@ -1049,7 +1154,7 @@ function deleteSelector(selectorToken, store) {
|
|
|
1049
1154
|
store.logger.info(`\u{1F525}`, selectorToken.type, `${key}`, `deleted`);
|
|
1050
1155
|
}
|
|
1051
1156
|
|
|
1052
|
-
// src/subscribe/recall-state.ts
|
|
1157
|
+
// internal/src/subscribe/recall-state.ts
|
|
1053
1158
|
var recallState = (state, store) => {
|
|
1054
1159
|
const target = newest(store);
|
|
1055
1160
|
if (!target.operation.open) {
|
|
@@ -1058,7 +1163,7 @@ var recallState = (state, store) => {
|
|
|
1058
1163
|
return target.operation.prev.get(state.key);
|
|
1059
1164
|
};
|
|
1060
1165
|
|
|
1061
|
-
// src/subscribe/subscribe-to-root-atoms.ts
|
|
1166
|
+
// internal/src/subscribe/subscribe-to-root-atoms.ts
|
|
1062
1167
|
var subscribeToRootAtoms = (state, store) => {
|
|
1063
1168
|
const dependencySubscriptions = `default` in state ? null : traceAllSelectorAtoms(state.key, store).map((atomKey) => {
|
|
1064
1169
|
const atom = store.atoms.get(atomKey);
|
|
@@ -1098,8 +1203,10 @@ var subscribeToRootAtoms = (state, store) => {
|
|
|
1098
1203
|
});
|
|
1099
1204
|
return dependencySubscriptions;
|
|
1100
1205
|
};
|
|
1206
|
+
|
|
1207
|
+
// internal/src/subscribe/subscribe-to-state.ts
|
|
1101
1208
|
function subscribeToState(token, handleUpdate, key, store) {
|
|
1102
|
-
const state =
|
|
1209
|
+
const state = withdraw(token, store);
|
|
1103
1210
|
if (state === void 0) {
|
|
1104
1211
|
throw new Error(
|
|
1105
1212
|
`State "${token.key}" not found in this store. Did you forget to initialize with the "atom" or "selector" function?`
|
|
@@ -1107,7 +1214,7 @@ function subscribeToState(token, handleUpdate, key, store) {
|
|
|
1107
1214
|
}
|
|
1108
1215
|
const unsubFunction = state.subject.subscribe(key, handleUpdate);
|
|
1109
1216
|
store.logger.info(`\u{1F440}`, state.type, state.key, `Adding subscription "${key}"`);
|
|
1110
|
-
const dependencyUnsubFunctions = state.type !== `atom` ?
|
|
1217
|
+
const dependencyUnsubFunctions = state.type !== `atom` ? subscribeToRootAtoms(state, store) : null;
|
|
1111
1218
|
const unsubscribe = dependencyUnsubFunctions === null ? () => {
|
|
1112
1219
|
store.logger.info(
|
|
1113
1220
|
`\u{1F648}`,
|
|
@@ -1130,8 +1237,10 @@ function subscribeToState(token, handleUpdate, key, store) {
|
|
|
1130
1237
|
};
|
|
1131
1238
|
return unsubscribe;
|
|
1132
1239
|
}
|
|
1240
|
+
|
|
1241
|
+
// internal/src/subscribe/subscribe-to-timeline.ts
|
|
1133
1242
|
var subscribeToTimeline = (token, handleUpdate, key, store) => {
|
|
1134
|
-
const tl =
|
|
1243
|
+
const tl = withdraw(token, store);
|
|
1135
1244
|
if (tl === void 0) {
|
|
1136
1245
|
throw new Error(
|
|
1137
1246
|
`Cannot subscribe to timeline "${token.key}": timeline not found in store "${store.config.name}".`
|
|
@@ -1149,8 +1258,10 @@ var subscribeToTimeline = (token, handleUpdate, key, store) => {
|
|
|
1149
1258
|
unsubscribe();
|
|
1150
1259
|
};
|
|
1151
1260
|
};
|
|
1261
|
+
|
|
1262
|
+
// internal/src/subscribe/subscribe-to-transaction.ts
|
|
1152
1263
|
var subscribeToTransaction = (token, handleUpdate, key, store) => {
|
|
1153
|
-
const tx =
|
|
1264
|
+
const tx = withdraw(token, store);
|
|
1154
1265
|
if (tx === void 0) {
|
|
1155
1266
|
throw new Error(
|
|
1156
1267
|
`Cannot subscribe to transaction "${token.key}": transaction not found in store "${store.config.name}".`
|
|
@@ -1173,6 +1284,8 @@ var subscribeToTransaction = (token, handleUpdate, key, store) => {
|
|
|
1173
1284
|
unsubscribe();
|
|
1174
1285
|
};
|
|
1175
1286
|
};
|
|
1287
|
+
|
|
1288
|
+
// internal/src/mutable/tracker.ts
|
|
1176
1289
|
var Tracker = class {
|
|
1177
1290
|
constructor(mutableState, store) {
|
|
1178
1291
|
this.unsubscribeFromInnerValue = null;
|
|
@@ -1201,7 +1314,7 @@ var Tracker = class {
|
|
|
1201
1314
|
return latestUpdateState;
|
|
1202
1315
|
}
|
|
1203
1316
|
observeCore(mutableState, latestUpdateState, store) {
|
|
1204
|
-
const originalInnerValue =
|
|
1317
|
+
const originalInnerValue = getState(mutableState, store);
|
|
1205
1318
|
const target = newest(store);
|
|
1206
1319
|
this.unsubscribeFromInnerValue = originalInnerValue.subscribe(
|
|
1207
1320
|
`tracker:${store.config.name}:${target.transactionMeta === null ? `main` : target.transactionMeta.update.key}`,
|
|
@@ -1210,7 +1323,7 @@ var Tracker = class {
|
|
|
1210
1323
|
mutableState.key,
|
|
1211
1324
|
() => {
|
|
1212
1325
|
unsubscribe();
|
|
1213
|
-
|
|
1326
|
+
setState(latestUpdateState, update, store);
|
|
1214
1327
|
}
|
|
1215
1328
|
);
|
|
1216
1329
|
}
|
|
@@ -1229,7 +1342,7 @@ var Tracker = class {
|
|
|
1229
1342
|
mutableState.key,
|
|
1230
1343
|
() => {
|
|
1231
1344
|
unsubscribe();
|
|
1232
|
-
|
|
1345
|
+
setState(latestUpdateState, update2, store);
|
|
1233
1346
|
}
|
|
1234
1347
|
);
|
|
1235
1348
|
}
|
|
@@ -1254,7 +1367,7 @@ var Tracker = class {
|
|
|
1254
1367
|
{ key: timelineId, type: `timeline` },
|
|
1255
1368
|
(update) => {
|
|
1256
1369
|
unsubscribe2();
|
|
1257
|
-
|
|
1370
|
+
setState(
|
|
1258
1371
|
mutableState,
|
|
1259
1372
|
(transceiver) => {
|
|
1260
1373
|
if (update === `redo` && newValue) {
|
|
@@ -1277,11 +1390,11 @@ var Tracker = class {
|
|
|
1277
1390
|
latestUpdateState.key,
|
|
1278
1391
|
() => {
|
|
1279
1392
|
unsubscribe();
|
|
1280
|
-
const mutable =
|
|
1393
|
+
const mutable = getState(mutableState, store);
|
|
1281
1394
|
const updateNumber = mutable.getUpdateNumber(newValue);
|
|
1282
1395
|
const eventOffset = updateNumber - mutable.cacheUpdateNumber;
|
|
1283
1396
|
if (newValue && eventOffset === 1) {
|
|
1284
|
-
|
|
1397
|
+
setState(
|
|
1285
1398
|
mutableState,
|
|
1286
1399
|
(transceiver) => (transceiver.do(newValue), transceiver),
|
|
1287
1400
|
store
|
|
@@ -1296,7 +1409,7 @@ var Tracker = class {
|
|
|
1296
1409
|
}
|
|
1297
1410
|
};
|
|
1298
1411
|
|
|
1299
|
-
// src/mutable/create-mutable-atom.ts
|
|
1412
|
+
// internal/src/mutable/create-mutable-atom.ts
|
|
1300
1413
|
function createMutableAtom(options, store) {
|
|
1301
1414
|
store.logger.info(
|
|
1302
1415
|
`\u{1F527}`,
|
|
@@ -1306,7 +1419,7 @@ function createMutableAtom(options, store) {
|
|
|
1306
1419
|
);
|
|
1307
1420
|
const coreState = createAtom(options, void 0, store);
|
|
1308
1421
|
new Tracker(coreState, store);
|
|
1309
|
-
const jsonState =
|
|
1422
|
+
const jsonState = selectJson(coreState, options, store);
|
|
1310
1423
|
const target = newest(store);
|
|
1311
1424
|
subscribeToState(
|
|
1312
1425
|
jsonState,
|
|
@@ -1321,11 +1434,13 @@ function createMutableAtom(options, store) {
|
|
|
1321
1434
|
);
|
|
1322
1435
|
return coreState;
|
|
1323
1436
|
}
|
|
1437
|
+
|
|
1438
|
+
// internal/src/families/create-atom-family.ts
|
|
1324
1439
|
function createAtomFamily(options, store) {
|
|
1325
1440
|
const subject = new Subject();
|
|
1326
1441
|
const atomFamily = Object.assign(
|
|
1327
1442
|
(key) => {
|
|
1328
|
-
const subKey =
|
|
1443
|
+
const subKey = stringifyJson(key);
|
|
1329
1444
|
const family = { key: options.key, subKey };
|
|
1330
1445
|
const fullKey = `${options.key}(${subKey})`;
|
|
1331
1446
|
const existing = withdraw({ key: fullKey, type: `atom` }, store);
|
|
@@ -1355,12 +1470,14 @@ function createAtomFamily(options, store) {
|
|
|
1355
1470
|
target.families.set(options.key, atomFamily);
|
|
1356
1471
|
return atomFamily;
|
|
1357
1472
|
}
|
|
1473
|
+
|
|
1474
|
+
// internal/src/families/create-readonly-selector-family.ts
|
|
1358
1475
|
function createReadonlySelectorFamily(options, store) {
|
|
1359
1476
|
const subject = new Subject();
|
|
1360
1477
|
return Object.assign(
|
|
1361
1478
|
(key) => {
|
|
1362
1479
|
const target = newest(store);
|
|
1363
|
-
const subKey =
|
|
1480
|
+
const subKey = stringifyJson(key);
|
|
1364
1481
|
const family = { key: options.key, subKey };
|
|
1365
1482
|
const fullKey = `${options.key}(${subKey})`;
|
|
1366
1483
|
const existing = target.readonlySelectors.get(fullKey);
|
|
@@ -1383,6 +1500,8 @@ function createReadonlySelectorFamily(options, store) {
|
|
|
1383
1500
|
}
|
|
1384
1501
|
);
|
|
1385
1502
|
}
|
|
1503
|
+
|
|
1504
|
+
// internal/src/families/create-selector-family.ts
|
|
1386
1505
|
function createSelectorFamily(options, store) {
|
|
1387
1506
|
const isReadonly = !(`set` in options);
|
|
1388
1507
|
if (isReadonly) {
|
|
@@ -1392,7 +1511,7 @@ function createSelectorFamily(options, store) {
|
|
|
1392
1511
|
const subject = new Subject();
|
|
1393
1512
|
const selectorFamily = Object.assign(
|
|
1394
1513
|
(key) => {
|
|
1395
|
-
const subKey =
|
|
1514
|
+
const subKey = stringifyJson(key);
|
|
1396
1515
|
const family = { key: options.key, subKey };
|
|
1397
1516
|
const fullKey = `${options.key}(${subKey})`;
|
|
1398
1517
|
const existing = target.selectors.get(fullKey);
|
|
@@ -1420,7 +1539,7 @@ function createSelectorFamily(options, store) {
|
|
|
1420
1539
|
return selectorFamily;
|
|
1421
1540
|
}
|
|
1422
1541
|
|
|
1423
|
-
// src/mutable/tracker-family.ts
|
|
1542
|
+
// internal/src/mutable/tracker-family.ts
|
|
1424
1543
|
var FamilyTracker = class {
|
|
1425
1544
|
constructor(findMutableState, store) {
|
|
1426
1545
|
this.findLatestUpdateState = createAtomFamily(
|
|
@@ -1435,7 +1554,7 @@ var FamilyTracker = class {
|
|
|
1435
1554
|
`store=${store.config.name}::tracker-atom-family`,
|
|
1436
1555
|
(atomToken) => {
|
|
1437
1556
|
if (atomToken.family) {
|
|
1438
|
-
const key =
|
|
1557
|
+
const key = parseJson(atomToken.family.subKey);
|
|
1439
1558
|
this.findLatestUpdateState(key);
|
|
1440
1559
|
new Tracker(atomToken, store);
|
|
1441
1560
|
}
|
|
@@ -1445,7 +1564,7 @@ var FamilyTracker = class {
|
|
|
1445
1564
|
`store=${store.config.name}::tracker-atom-family`,
|
|
1446
1565
|
(atomToken) => {
|
|
1447
1566
|
if (atomToken.family) {
|
|
1448
|
-
const key =
|
|
1567
|
+
const key = parseJson(atomToken.family.subKey);
|
|
1449
1568
|
const mutableAtomToken = this.findMutableState(key);
|
|
1450
1569
|
new Tracker(mutableAtomToken, store);
|
|
1451
1570
|
}
|
|
@@ -1454,18 +1573,18 @@ var FamilyTracker = class {
|
|
|
1454
1573
|
}
|
|
1455
1574
|
};
|
|
1456
1575
|
|
|
1457
|
-
// src/mutable/create-mutable-atom-family.ts
|
|
1576
|
+
// internal/src/mutable/create-mutable-atom-family.ts
|
|
1458
1577
|
function createMutableAtomFamily(options, store) {
|
|
1459
1578
|
const coreFamily = Object.assign(
|
|
1460
1579
|
createAtomFamily(options, store),
|
|
1461
1580
|
options
|
|
1462
1581
|
);
|
|
1463
|
-
|
|
1582
|
+
selectJsonFamily(coreFamily, options);
|
|
1464
1583
|
new FamilyTracker(coreFamily, store);
|
|
1465
1584
|
return coreFamily;
|
|
1466
1585
|
}
|
|
1467
1586
|
|
|
1468
|
-
// src/mutable/get-json-family.ts
|
|
1587
|
+
// internal/src/mutable/get-json-family.ts
|
|
1469
1588
|
var getJsonFamily = (mutableAtomFamily, store) => {
|
|
1470
1589
|
const target = newest(store);
|
|
1471
1590
|
const key = `${mutableAtomFamily.key}:JSON`;
|
|
@@ -1475,7 +1594,7 @@ var getJsonFamily = (mutableAtomFamily, store) => {
|
|
|
1475
1594
|
return jsonFamily;
|
|
1476
1595
|
};
|
|
1477
1596
|
|
|
1478
|
-
// src/mutable/get-json-token.ts
|
|
1597
|
+
// internal/src/mutable/get-json-token.ts
|
|
1479
1598
|
var getJsonToken = (mutableAtomToken) => {
|
|
1480
1599
|
const key = mutableAtomToken.family ? `${mutableAtomToken.family.key}:JSON(${mutableAtomToken.family.subKey})` : `${mutableAtomToken.key}:JSON`;
|
|
1481
1600
|
const jsonToken = { type: `selector`, key };
|
|
@@ -1488,7 +1607,7 @@ var getJsonToken = (mutableAtomToken) => {
|
|
|
1488
1607
|
return jsonToken;
|
|
1489
1608
|
};
|
|
1490
1609
|
|
|
1491
|
-
// src/mutable/get-update-token.ts
|
|
1610
|
+
// internal/src/mutable/get-update-token.ts
|
|
1492
1611
|
var getUpdateToken = (mutableAtomToken) => {
|
|
1493
1612
|
const key = `*${mutableAtomToken.key}`;
|
|
1494
1613
|
const updateToken = { type: `atom`, key };
|
|
@@ -1501,20 +1620,20 @@ var getUpdateToken = (mutableAtomToken) => {
|
|
|
1501
1620
|
return updateToken;
|
|
1502
1621
|
};
|
|
1503
1622
|
|
|
1504
|
-
// src/mutable/is-atom-token-mutable.ts
|
|
1623
|
+
// internal/src/mutable/is-atom-token-mutable.ts
|
|
1505
1624
|
function isAtomTokenMutable(token) {
|
|
1506
1625
|
return token.key.endsWith(`::mutable`);
|
|
1507
1626
|
}
|
|
1508
1627
|
|
|
1509
|
-
// src/mutable/transceiver.ts
|
|
1628
|
+
// internal/src/mutable/transceiver.ts
|
|
1510
1629
|
function isTransceiver(value) {
|
|
1511
1630
|
return typeof value === `object` && value !== null && `do` in value && `undo` in value && `subscribe` in value;
|
|
1512
1631
|
}
|
|
1513
1632
|
|
|
1514
|
-
// src/mutable/index.ts
|
|
1633
|
+
// internal/src/mutable/index.ts
|
|
1515
1634
|
var isAtomMutable = (atom) => `isMutable` in atom;
|
|
1516
1635
|
|
|
1517
|
-
// src/atom/is-default.ts
|
|
1636
|
+
// internal/src/atom/is-default.ts
|
|
1518
1637
|
var isAtomDefault = (key, store) => {
|
|
1519
1638
|
const core = newest(store);
|
|
1520
1639
|
return core.atomsThatAreDefault.has(key);
|
|
@@ -1533,7 +1652,7 @@ var isSelectorDefault = (key, store) => {
|
|
|
1533
1652
|
return rootKeys.every((rootKey) => isAtomDefault(rootKey, store));
|
|
1534
1653
|
};
|
|
1535
1654
|
|
|
1536
|
-
// src/atom/create-atom.ts
|
|
1655
|
+
// internal/src/atom/create-atom.ts
|
|
1537
1656
|
function createAtom(options, family, store) {
|
|
1538
1657
|
store.logger.info(
|
|
1539
1658
|
`\u{1F528}`,
|
|
@@ -1580,7 +1699,7 @@ function createAtom(options, family, store) {
|
|
|
1580
1699
|
const cleanupFunctions = [];
|
|
1581
1700
|
for (const effect of options.effects) {
|
|
1582
1701
|
const cleanup = effect({
|
|
1583
|
-
setSelf: (next) =>
|
|
1702
|
+
setSelf: (next) => setState(token, next, store),
|
|
1584
1703
|
onSet: (handle) => subscribeToState(token, handle, `effect[${effectIndex}]`, store)
|
|
1585
1704
|
});
|
|
1586
1705
|
if (cleanup) {
|
|
@@ -1598,7 +1717,7 @@ function createAtom(options, family, store) {
|
|
|
1598
1717
|
return token;
|
|
1599
1718
|
}
|
|
1600
1719
|
|
|
1601
|
-
// src/atom/delete-atom.ts
|
|
1720
|
+
// internal/src/atom/delete-atom.ts
|
|
1602
1721
|
function deleteAtom(atomToken, store) {
|
|
1603
1722
|
var _a, _b;
|
|
1604
1723
|
const target = newest(store);
|
|
@@ -1630,7 +1749,7 @@ function deleteAtom(atomToken, store) {
|
|
|
1630
1749
|
store.logger.info(`\u{1F525}`, `atom`, `${key}`, `deleted`);
|
|
1631
1750
|
}
|
|
1632
1751
|
|
|
1633
|
-
// src/lazy-map.ts
|
|
1752
|
+
// internal/src/lazy-map.ts
|
|
1634
1753
|
var LazyMap = class extends Map {
|
|
1635
1754
|
constructor(source) {
|
|
1636
1755
|
super();
|
|
@@ -1664,7 +1783,7 @@ var LazyMap = class extends Map {
|
|
|
1664
1783
|
}
|
|
1665
1784
|
};
|
|
1666
1785
|
|
|
1667
|
-
// src/not-found-error.ts
|
|
1786
|
+
// internal/src/not-found-error.ts
|
|
1668
1787
|
var capitalize = (str) => str[0].toUpperCase() + str.slice(1);
|
|
1669
1788
|
function prettyPrintTokenType(token) {
|
|
1670
1789
|
if (token.type === `readonly_selector`) {
|
|
@@ -1680,7 +1799,7 @@ var NotFoundError = class extends Error {
|
|
|
1680
1799
|
}
|
|
1681
1800
|
};
|
|
1682
1801
|
|
|
1683
|
-
// src/timeline/add-atom-to-timeline.ts
|
|
1802
|
+
// internal/src/timeline/add-atom-to-timeline.ts
|
|
1684
1803
|
var addAtomToTimeline = (atomToken, tl, store) => {
|
|
1685
1804
|
const atom = withdraw(atomToken, store);
|
|
1686
1805
|
if (atom === void 0) {
|
|
@@ -1872,7 +1991,7 @@ var addAtomToTimeline = (atomToken, tl, store) => {
|
|
|
1872
1991
|
});
|
|
1873
1992
|
};
|
|
1874
1993
|
|
|
1875
|
-
// src/timeline/create-timeline.ts
|
|
1994
|
+
// internal/src/timeline/create-timeline.ts
|
|
1876
1995
|
function createTimeline(options, store, data) {
|
|
1877
1996
|
var _a, _b;
|
|
1878
1997
|
const tl = __spreadProps(__spreadValues({
|
|
@@ -1943,6 +2062,8 @@ function createTimeline(options, store, data) {
|
|
|
1943
2062
|
store.subject.timelineCreation.next(token);
|
|
1944
2063
|
return token;
|
|
1945
2064
|
}
|
|
2065
|
+
|
|
2066
|
+
// internal/src/timeline/time-travel.ts
|
|
1946
2067
|
var timeTravel = (direction, token, store) => {
|
|
1947
2068
|
const action = direction === `forward` ? `redo` : `undo`;
|
|
1948
2069
|
store.logger.info(
|
|
@@ -1978,7 +2099,7 @@ var timeTravel = (direction, token, store) => {
|
|
|
1978
2099
|
const updateValues = (atomUpdate) => {
|
|
1979
2100
|
const { key, newValue, oldValue } = atomUpdate;
|
|
1980
2101
|
const value = direction === `forward` ? newValue : oldValue;
|
|
1981
|
-
|
|
2102
|
+
setState({ key, type: `atom` }, value, store);
|
|
1982
2103
|
};
|
|
1983
2104
|
const updateValuesFromTransactionUpdate = (transactionUpdate) => {
|
|
1984
2105
|
const updates = direction === `forward` ? transactionUpdate.updates : [...transactionUpdate.updates].reverse();
|
|
@@ -2020,7 +2141,7 @@ var timeTravel = (direction, token, store) => {
|
|
|
2020
2141
|
);
|
|
2021
2142
|
};
|
|
2022
2143
|
|
|
2023
|
-
// src/transaction/abort-transaction.ts
|
|
2144
|
+
// internal/src/transaction/abort-transaction.ts
|
|
2024
2145
|
var abortTransaction = (store) => {
|
|
2025
2146
|
const target = newest(store);
|
|
2026
2147
|
if (target.transactionMeta === null || target.parent === null) {
|
|
@@ -2040,6 +2161,8 @@ var abortTransaction = (store) => {
|
|
|
2040
2161
|
);
|
|
2041
2162
|
target.parent.child = null;
|
|
2042
2163
|
};
|
|
2164
|
+
|
|
2165
|
+
// internal/src/transaction/apply-transaction.ts
|
|
2043
2166
|
function ingestAtomUpdate(update, parent, child) {
|
|
2044
2167
|
var _a, _b, _c;
|
|
2045
2168
|
const { key, newValue } = update;
|
|
@@ -2067,7 +2190,7 @@ function ingestAtomUpdate(update, parent, child) {
|
|
|
2067
2190
|
);
|
|
2068
2191
|
}
|
|
2069
2192
|
}
|
|
2070
|
-
|
|
2193
|
+
setState(token, newValue, parent);
|
|
2071
2194
|
}
|
|
2072
2195
|
function ingestTransactionUpdate(transactionUpdate, parent, child) {
|
|
2073
2196
|
for (const update of transactionUpdate.updates) {
|
|
@@ -2123,7 +2246,7 @@ var applyTransaction = (output, store) => {
|
|
|
2123
2246
|
parent.subject.transactionApplying.next(null);
|
|
2124
2247
|
};
|
|
2125
2248
|
|
|
2126
|
-
// src/transaction/build-transaction.ts
|
|
2249
|
+
// internal/src/transaction/build-transaction.ts
|
|
2127
2250
|
var buildTransaction = (key, params, store) => {
|
|
2128
2251
|
const parent = newest(store);
|
|
2129
2252
|
parent.child = {
|
|
@@ -2167,6 +2290,8 @@ var buildTransaction = (key, params, store) => {
|
|
|
2167
2290
|
params
|
|
2168
2291
|
);
|
|
2169
2292
|
};
|
|
2293
|
+
|
|
2294
|
+
// internal/src/transaction/create-transaction.ts
|
|
2170
2295
|
function createTransaction(options, store) {
|
|
2171
2296
|
const newTransaction = {
|
|
2172
2297
|
key: options.key,
|
|
@@ -2176,9 +2301,9 @@ function createTransaction(options, store) {
|
|
|
2176
2301
|
try {
|
|
2177
2302
|
const output = options.do(
|
|
2178
2303
|
{
|
|
2179
|
-
get: (token2) =>
|
|
2180
|
-
set: (token2, value) =>
|
|
2181
|
-
run: (token2) =>
|
|
2304
|
+
get: (token2) => getState(token2, store),
|
|
2305
|
+
set: (token2, value) => setState(token2, value, store),
|
|
2306
|
+
run: (token2) => runTransaction(token2, store)
|
|
2182
2307
|
},
|
|
2183
2308
|
...params
|
|
2184
2309
|
);
|
|
@@ -2199,6 +2324,8 @@ function createTransaction(options, store) {
|
|
|
2199
2324
|
store.subject.transactionCreation.next(token);
|
|
2200
2325
|
return token;
|
|
2201
2326
|
}
|
|
2327
|
+
|
|
2328
|
+
// internal/src/transaction/redo-transaction.ts
|
|
2202
2329
|
var redoTransactionUpdate = (transactionUpdate, store) => {
|
|
2203
2330
|
store.logger.info(`\u23ED\uFE0F`, `transaction`, transactionUpdate.key, `Redo`);
|
|
2204
2331
|
for (const update of transactionUpdate.updates) {
|
|
@@ -2211,12 +2338,14 @@ var redoTransactionUpdate = (transactionUpdate, store) => {
|
|
|
2211
2338
|
`State "${token.key}" not found in this store. This is surprising, because we are navigating the history of the store.`
|
|
2212
2339
|
);
|
|
2213
2340
|
}
|
|
2214
|
-
|
|
2341
|
+
setState(state, newValue, store);
|
|
2215
2342
|
} else {
|
|
2216
2343
|
redoTransactionUpdate(update, store);
|
|
2217
2344
|
}
|
|
2218
2345
|
}
|
|
2219
2346
|
};
|
|
2347
|
+
|
|
2348
|
+
// internal/src/transaction/undo-transaction.ts
|
|
2220
2349
|
var undoTransactionUpdate = (transactionUpdate, store) => {
|
|
2221
2350
|
store.logger.info(`\u23EE\uFE0F`, `transaction`, transactionUpdate.key, `Undo`);
|
|
2222
2351
|
for (const update of transactionUpdate.updates.reverse()) {
|
|
@@ -2229,14 +2358,14 @@ var undoTransactionUpdate = (transactionUpdate, store) => {
|
|
|
2229
2358
|
`State "${token.key}" not found in this store. This is surprising, because we are navigating the history of the store.`
|
|
2230
2359
|
);
|
|
2231
2360
|
}
|
|
2232
|
-
|
|
2361
|
+
setState(state, newValue, store);
|
|
2233
2362
|
} else {
|
|
2234
2363
|
undoTransactionUpdate(update, store);
|
|
2235
2364
|
}
|
|
2236
2365
|
}
|
|
2237
2366
|
};
|
|
2238
2367
|
|
|
2239
|
-
// src/transaction/index.ts
|
|
2368
|
+
// internal/src/transaction/index.ts
|
|
2240
2369
|
var TRANSACTION_PHASES = [`idle`, `building`, `applying`];
|
|
2241
2370
|
|
|
2242
2371
|
exports.FamilyTracker = FamilyTracker;
|