atom.io 0.16.3 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +35 -50
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +11 -26
- package/dist/index.js.map +1 -1
- package/internal/dist/index.cjs +48 -17
- package/internal/dist/index.cjs.map +1 -1
- package/internal/dist/index.d.ts +7 -3
- package/internal/dist/index.js +47 -18
- package/internal/dist/index.js.map +1 -1
- package/internal/src/atom/create-regular-atom.ts +2 -3
- package/internal/src/get-state/get-from-store.ts +14 -0
- package/internal/src/get-state/index.ts +2 -0
- package/internal/src/{read-or-compute-value.ts → get-state/read-or-compute-value.ts} +3 -3
- package/internal/src/index.ts +1 -1
- package/internal/src/ingest-updates/ingest-atom-update.ts +2 -2
- package/internal/src/mutable/create-mutable-atom.ts +3 -4
- package/internal/src/mutable/tracker.ts +18 -13
- package/internal/src/selector/register-selector.ts +1 -1
- package/internal/src/set-state/index.ts +1 -0
- package/internal/src/set-state/set-atom.ts +1 -1
- package/internal/src/set-state/set-into-store.ts +24 -0
- package/internal/src/subscribe/subscribe-to-root-atoms.ts +1 -1
- package/internal/src/transaction/build-transaction.ts +5 -3
- package/package.json +1 -1
- package/react/dist/index.cjs +3 -3
- package/react/dist/index.cjs.map +1 -1
- package/react/dist/index.js +5 -5
- package/react/dist/index.js.map +1 -1
- package/react/src/use-i.ts +2 -3
- package/react/src/use-o.ts +3 -4
- package/realtime-client/dist/index.cjs +24 -21
- package/realtime-client/dist/index.cjs.map +1 -1
- package/realtime-client/dist/index.js +24 -21
- package/realtime-client/dist/index.js.map +1 -1
- package/realtime-client/src/pull-family-member.ts +3 -3
- package/realtime-client/src/pull-mutable-family-member.ts +4 -4
- package/realtime-client/src/pull-mutable.ts +4 -4
- package/realtime-client/src/pull-state.ts +3 -3
- package/realtime-client/src/sync-server-action.ts +9 -6
- package/realtime-client/src/sync-state.ts +3 -3
- package/realtime-server/dist/index.cjs +32 -32
- package/realtime-server/dist/index.cjs.map +1 -1
- package/realtime-server/dist/index.js +24 -24
- package/realtime-server/dist/index.js.map +1 -1
- package/realtime-server/src/realtime-action-synchronizer.ts +15 -9
- package/realtime-server/src/realtime-family-provider.ts +10 -5
- package/realtime-server/src/realtime-mutable-family-provider.ts +6 -5
- package/realtime-server/src/realtime-mutable-provider.ts +3 -2
- package/realtime-server/src/realtime-state-provider.ts +3 -3
- package/realtime-server/src/realtime-state-receiver.ts +2 -2
- package/realtime-server/src/realtime-state-synchronizer.ts +3 -3
- package/realtime-testing/dist/index.cjs +2 -2
- package/realtime-testing/dist/index.cjs.map +1 -1
- package/realtime-testing/dist/index.js +2 -2
- package/realtime-testing/dist/index.js.map +1 -1
- package/realtime-testing/src/setup-realtime-test.tsx +2 -2
- package/src/get-state.ts +2 -11
- package/src/set-state.ts +1 -13
- package/src/silo.ts +7 -3
package/internal/dist/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var atom_io = require('atom.io');
|
|
4
3
|
var json = require('atom.io/json');
|
|
4
|
+
var atom_io = require('atom.io');
|
|
5
5
|
var internal = require('atom.io/internal');
|
|
6
6
|
|
|
7
7
|
var __defProp = Object.defineProperty;
|
|
@@ -594,7 +594,7 @@ var evictCachedValue = (key, target) => {
|
|
|
594
594
|
target.logger.info(`\u{1F5D1}`, `state`, key, `evicted`);
|
|
595
595
|
};
|
|
596
596
|
|
|
597
|
-
// internal/src/read-or-compute-value.ts
|
|
597
|
+
// internal/src/get-state/read-or-compute-value.ts
|
|
598
598
|
var readOrComputeValue = (state, target) => {
|
|
599
599
|
if (target.valueMap.has(state.key)) {
|
|
600
600
|
target.logger.info(`\u{1F4D6}`, state.type, state.key, `reading cached value`);
|
|
@@ -972,6 +972,21 @@ var setAtomOrSelector = (state, value, store) => {
|
|
|
972
972
|
}
|
|
973
973
|
};
|
|
974
974
|
|
|
975
|
+
// internal/src/set-state/set-into-store.ts
|
|
976
|
+
function setIntoStore(token, value, store) {
|
|
977
|
+
var _a;
|
|
978
|
+
const rejection = openOperation(token, store);
|
|
979
|
+
if (rejection) {
|
|
980
|
+
return;
|
|
981
|
+
}
|
|
982
|
+
const state = (_a = withdraw(token, store)) != null ? _a : withdrawNewFamilyMember(token, store);
|
|
983
|
+
if (state === void 0) {
|
|
984
|
+
throw new NotFoundError(token, store);
|
|
985
|
+
}
|
|
986
|
+
setAtomOrSelector(state, value, store);
|
|
987
|
+
closeOperation(store);
|
|
988
|
+
}
|
|
989
|
+
|
|
975
990
|
// internal/src/keys.ts
|
|
976
991
|
var isAtomKey = (key, store) => newest(store).atoms.has(key);
|
|
977
992
|
var isSelectorKey = (key, store) => newest(store).selectors.has(key);
|
|
@@ -1350,6 +1365,8 @@ var subscribeToTransaction = (token, handleUpdate, key, store) => {
|
|
|
1350
1365
|
unsubscribe();
|
|
1351
1366
|
};
|
|
1352
1367
|
};
|
|
1368
|
+
|
|
1369
|
+
// internal/src/mutable/tracker.ts
|
|
1353
1370
|
var Tracker = class {
|
|
1354
1371
|
initializeState(mutableState, store) {
|
|
1355
1372
|
var _a;
|
|
@@ -1376,7 +1393,7 @@ var Tracker = class {
|
|
|
1376
1393
|
}
|
|
1377
1394
|
observeCore(mutableState, latestUpdateState, target) {
|
|
1378
1395
|
const subscriptionKey = `tracker:${target.config.name}:${isChildStore(target) ? target.transactionMeta.update.key : `main`}:${mutableState.key}`;
|
|
1379
|
-
const originalInnerValue =
|
|
1396
|
+
const originalInnerValue = getFromStore(mutableState, target);
|
|
1380
1397
|
this.unsubscribeFromInnerValue = originalInnerValue.subscribe(
|
|
1381
1398
|
subscriptionKey,
|
|
1382
1399
|
(update) => {
|
|
@@ -1385,12 +1402,12 @@ var Tracker = class {
|
|
|
1385
1402
|
subscriptionKey,
|
|
1386
1403
|
() => {
|
|
1387
1404
|
unsubscribe();
|
|
1388
|
-
|
|
1405
|
+
setIntoStore(latestUpdateState, update, target);
|
|
1389
1406
|
}
|
|
1390
1407
|
);
|
|
1391
1408
|
} else {
|
|
1392
|
-
|
|
1393
|
-
|
|
1409
|
+
setIntoStore(mutableState, (current) => current, target);
|
|
1410
|
+
setIntoStore(latestUpdateState, update, target);
|
|
1394
1411
|
}
|
|
1395
1412
|
}
|
|
1396
1413
|
);
|
|
@@ -1407,12 +1424,12 @@ var Tracker = class {
|
|
|
1407
1424
|
subscriptionKey,
|
|
1408
1425
|
() => {
|
|
1409
1426
|
unsubscribe();
|
|
1410
|
-
|
|
1427
|
+
setIntoStore(latestUpdateState, update2, target);
|
|
1411
1428
|
}
|
|
1412
1429
|
);
|
|
1413
1430
|
} else {
|
|
1414
|
-
|
|
1415
|
-
|
|
1431
|
+
setIntoStore(mutableState, (current) => current, target);
|
|
1432
|
+
setIntoStore(latestUpdateState, update2, target);
|
|
1416
1433
|
}
|
|
1417
1434
|
}
|
|
1418
1435
|
);
|
|
@@ -1437,7 +1454,7 @@ var Tracker = class {
|
|
|
1437
1454
|
{ key: timelineId, type: `timeline` },
|
|
1438
1455
|
(update) => {
|
|
1439
1456
|
unsubscribe2();
|
|
1440
|
-
|
|
1457
|
+
setIntoStore(
|
|
1441
1458
|
mutableState,
|
|
1442
1459
|
(transceiver) => {
|
|
1443
1460
|
if (update === `redo` && newValue) {
|
|
@@ -1460,11 +1477,11 @@ var Tracker = class {
|
|
|
1460
1477
|
subscriptionKey,
|
|
1461
1478
|
() => {
|
|
1462
1479
|
unsubscribe();
|
|
1463
|
-
const mutable =
|
|
1480
|
+
const mutable = getFromStore(mutableState, target);
|
|
1464
1481
|
const updateNumber = newValue === null ? -1 : mutable.getUpdateNumber(newValue);
|
|
1465
1482
|
const eventOffset = updateNumber - mutable.cacheUpdateNumber;
|
|
1466
1483
|
if (newValue && eventOffset === 1) {
|
|
1467
|
-
|
|
1484
|
+
setIntoStore(
|
|
1468
1485
|
mutableState,
|
|
1469
1486
|
(transceiver) => (transceiver.do(newValue), transceiver),
|
|
1470
1487
|
target
|
|
@@ -1545,7 +1562,7 @@ function createMutableAtom(options, family, store) {
|
|
|
1545
1562
|
const cleanupFunctions = [];
|
|
1546
1563
|
for (const effect of options.effects) {
|
|
1547
1564
|
const cleanup = effect({
|
|
1548
|
-
setSelf: (next) =>
|
|
1565
|
+
setSelf: (next) => setIntoStore(token, next, store),
|
|
1549
1566
|
onSet: (handle) => subscribeToState(token, handle, `effect[${effectIndex}]`, store)
|
|
1550
1567
|
});
|
|
1551
1568
|
if (cleanup) {
|
|
@@ -1752,7 +1769,7 @@ function createRegularAtom(options, family, store) {
|
|
|
1752
1769
|
const cleanupFunctions = [];
|
|
1753
1770
|
for (const effect of options.effects) {
|
|
1754
1771
|
const cleanup = effect({
|
|
1755
|
-
setSelf: (next) =>
|
|
1772
|
+
setSelf: (next) => setIntoStore(token, next, store),
|
|
1756
1773
|
onSet: (handle) => subscribeToState(token, handle, `effect[${effectIndex}]`, store)
|
|
1757
1774
|
});
|
|
1758
1775
|
if (cleanup) {
|
|
@@ -1818,10 +1835,22 @@ function getEnvironmentData(store) {
|
|
|
1818
1835
|
store
|
|
1819
1836
|
};
|
|
1820
1837
|
}
|
|
1838
|
+
|
|
1839
|
+
// internal/src/get-state/get-from-store.ts
|
|
1840
|
+
function getFromStore(token, store) {
|
|
1841
|
+
var _a;
|
|
1842
|
+
const state = (_a = withdraw(token, store)) != null ? _a : withdrawNewFamilyMember(token, store);
|
|
1843
|
+
if (state === void 0) {
|
|
1844
|
+
throw new NotFoundError(token, store);
|
|
1845
|
+
}
|
|
1846
|
+
return readOrComputeValue(state, store);
|
|
1847
|
+
}
|
|
1848
|
+
|
|
1849
|
+
// internal/src/ingest-updates/ingest-atom-update.ts
|
|
1821
1850
|
function ingestAtomUpdate(applying, atomUpdate, store) {
|
|
1822
1851
|
const { key, newValue, oldValue } = atomUpdate;
|
|
1823
1852
|
const value = applying === `newValue` ? newValue : oldValue;
|
|
1824
|
-
|
|
1853
|
+
setIntoStore({ key, type: `atom` }, value, store);
|
|
1825
1854
|
}
|
|
1826
1855
|
|
|
1827
1856
|
// internal/src/ingest-updates/ingest-selector-update.ts
|
|
@@ -2354,8 +2383,8 @@ var buildTransaction = (key, params, store, id) => {
|
|
|
2354
2383
|
output: void 0
|
|
2355
2384
|
},
|
|
2356
2385
|
transactors: {
|
|
2357
|
-
get: (token) =>
|
|
2358
|
-
set: (token, value) =>
|
|
2386
|
+
get: (token) => getFromStore(token, child),
|
|
2387
|
+
set: (token, value) => setIntoStore(token, value, child),
|
|
2359
2388
|
run: (token, id2) => atom_io.runTransaction(token, id2, child),
|
|
2360
2389
|
find: (token, key2) => findInStore(token, key2, child),
|
|
2361
2390
|
env: () => getEnvironmentData(child)
|
|
@@ -2444,6 +2473,7 @@ exports.deposit = deposit;
|
|
|
2444
2473
|
exports.evictCachedValue = evictCachedValue;
|
|
2445
2474
|
exports.findInStore = findInStore;
|
|
2446
2475
|
exports.getEnvironmentData = getEnvironmentData;
|
|
2476
|
+
exports.getFromStore = getFromStore;
|
|
2447
2477
|
exports.getJsonFamily = getJsonFamily;
|
|
2448
2478
|
exports.getJsonToken = getJsonToken;
|
|
2449
2479
|
exports.getSelectorDependencyKeys = getSelectorDependencyKeys;
|
|
@@ -2468,6 +2498,7 @@ exports.readCachedValue = readCachedValue;
|
|
|
2468
2498
|
exports.readOrComputeValue = readOrComputeValue;
|
|
2469
2499
|
exports.registerSelector = registerSelector;
|
|
2470
2500
|
exports.setAtomOrSelector = setAtomOrSelector;
|
|
2501
|
+
exports.setIntoStore = setIntoStore;
|
|
2471
2502
|
exports.subscribeToRootAtoms = subscribeToRootAtoms;
|
|
2472
2503
|
exports.subscribeToState = subscribeToState;
|
|
2473
2504
|
exports.subscribeToTimeline = subscribeToTimeline;
|