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.
Files changed (60) hide show
  1. package/dist/index.cjs +35 -50
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.ts +2 -2
  4. package/dist/index.js +11 -26
  5. package/dist/index.js.map +1 -1
  6. package/internal/dist/index.cjs +48 -17
  7. package/internal/dist/index.cjs.map +1 -1
  8. package/internal/dist/index.d.ts +7 -3
  9. package/internal/dist/index.js +47 -18
  10. package/internal/dist/index.js.map +1 -1
  11. package/internal/src/atom/create-regular-atom.ts +2 -3
  12. package/internal/src/get-state/get-from-store.ts +14 -0
  13. package/internal/src/get-state/index.ts +2 -0
  14. package/internal/src/{read-or-compute-value.ts → get-state/read-or-compute-value.ts} +3 -3
  15. package/internal/src/index.ts +1 -1
  16. package/internal/src/ingest-updates/ingest-atom-update.ts +2 -2
  17. package/internal/src/mutable/create-mutable-atom.ts +3 -4
  18. package/internal/src/mutable/tracker.ts +18 -13
  19. package/internal/src/selector/register-selector.ts +1 -1
  20. package/internal/src/set-state/index.ts +1 -0
  21. package/internal/src/set-state/set-atom.ts +1 -1
  22. package/internal/src/set-state/set-into-store.ts +24 -0
  23. package/internal/src/subscribe/subscribe-to-root-atoms.ts +1 -1
  24. package/internal/src/transaction/build-transaction.ts +5 -3
  25. package/package.json +1 -1
  26. package/react/dist/index.cjs +3 -3
  27. package/react/dist/index.cjs.map +1 -1
  28. package/react/dist/index.js +5 -5
  29. package/react/dist/index.js.map +1 -1
  30. package/react/src/use-i.ts +2 -3
  31. package/react/src/use-o.ts +3 -4
  32. package/realtime-client/dist/index.cjs +24 -21
  33. package/realtime-client/dist/index.cjs.map +1 -1
  34. package/realtime-client/dist/index.js +24 -21
  35. package/realtime-client/dist/index.js.map +1 -1
  36. package/realtime-client/src/pull-family-member.ts +3 -3
  37. package/realtime-client/src/pull-mutable-family-member.ts +4 -4
  38. package/realtime-client/src/pull-mutable.ts +4 -4
  39. package/realtime-client/src/pull-state.ts +3 -3
  40. package/realtime-client/src/sync-server-action.ts +9 -6
  41. package/realtime-client/src/sync-state.ts +3 -3
  42. package/realtime-server/dist/index.cjs +32 -32
  43. package/realtime-server/dist/index.cjs.map +1 -1
  44. package/realtime-server/dist/index.js +24 -24
  45. package/realtime-server/dist/index.js.map +1 -1
  46. package/realtime-server/src/realtime-action-synchronizer.ts +15 -9
  47. package/realtime-server/src/realtime-family-provider.ts +10 -5
  48. package/realtime-server/src/realtime-mutable-family-provider.ts +6 -5
  49. package/realtime-server/src/realtime-mutable-provider.ts +3 -2
  50. package/realtime-server/src/realtime-state-provider.ts +3 -3
  51. package/realtime-server/src/realtime-state-receiver.ts +2 -2
  52. package/realtime-server/src/realtime-state-synchronizer.ts +3 -3
  53. package/realtime-testing/dist/index.cjs +2 -2
  54. package/realtime-testing/dist/index.cjs.map +1 -1
  55. package/realtime-testing/dist/index.js +2 -2
  56. package/realtime-testing/dist/index.js.map +1 -1
  57. package/realtime-testing/src/setup-realtime-test.tsx +2 -2
  58. package/src/get-state.ts +2 -11
  59. package/src/set-state.ts +1 -13
  60. package/src/silo.ts +7 -3
@@ -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 = atom_io.getState(mutableState, target);
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
- atom_io.setState(latestUpdateState, update, target);
1405
+ setIntoStore(latestUpdateState, update, target);
1389
1406
  }
1390
1407
  );
1391
1408
  } else {
1392
- atom_io.setState(mutableState, (current) => current, target);
1393
- atom_io.setState(latestUpdateState, update, target);
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
- atom_io.setState(latestUpdateState, update2, target);
1427
+ setIntoStore(latestUpdateState, update2, target);
1411
1428
  }
1412
1429
  );
1413
1430
  } else {
1414
- atom_io.setState(mutableState, (current) => current, target);
1415
- atom_io.setState(latestUpdateState, update2, target);
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
- atom_io.setState(
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 = atom_io.getState(mutableState, target);
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
- atom_io.setState(
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) => atom_io.setState(token, next, store),
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) => atom_io.setState(token, next, store),
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
- atom_io.setState({ key, type: `atom` }, value, store);
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) => atom_io.getState(token, child),
2358
- set: (token, value) => atom_io.setState(token, value, child),
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;