atom.io 0.24.6 → 0.24.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -765,6 +765,20 @@ function createAtomFamily(options, store) {
765
765
  return createRegularAtomFamily(options, store);
766
766
  }
767
767
 
768
+ // internal/src/get-state/get-from-store.ts
769
+ function getFromStore(token, store) {
770
+ if (token.type === `molecule`) {
771
+ try {
772
+ const molecule = withdraw(token, store);
773
+ return molecule.instance;
774
+ } catch (_) {
775
+ return void 0;
776
+ }
777
+ }
778
+ const state = withdraw(token, store);
779
+ return readOrComputeValue(state, store);
780
+ }
781
+
768
782
  // internal/src/keys.ts
769
783
  var isAtomKey = (key, store) => newest(store).atoms.has(key);
770
784
  var isSelectorKey = (key, store) => newest(store).selectors.has(key);
@@ -846,6 +860,9 @@ var updateSelectorAtoms = (selectorKey, dependency, store) => {
846
860
  var registerSelector = (selectorKey, store) => ({
847
861
  get: (dependency) => {
848
862
  const target = newest(store);
863
+ if (dependency.type === `molecule`) {
864
+ return getFromStore(dependency, store);
865
+ }
849
866
  const dependencyState = withdraw(dependency, store);
850
867
  const dependencyValue = readOrComputeValue(dependencyState, store);
851
868
  store.logger.info(
@@ -1323,20 +1340,6 @@ function getEnvironmentData(store) {
1323
1340
  store
1324
1341
  };
1325
1342
  }
1326
-
1327
- // internal/src/get-state/get-from-store.ts
1328
- function getFromStore(token, store) {
1329
- if (token.type === `molecule`) {
1330
- try {
1331
- const molecule = withdraw(token, store);
1332
- return molecule.instance;
1333
- } catch (_) {
1334
- return void 0;
1335
- }
1336
- }
1337
- const state = withdraw(token, store);
1338
- return readOrComputeValue(state, store);
1339
- }
1340
1343
  var Molecule = class {
1341
1344
  constructor(ctx, key, family) {
1342
1345
  this.key = key;
@@ -490,6 +490,20 @@ function createAtomFamily(options, store) {
490
490
  return createRegularAtomFamily(options, store);
491
491
  }
492
492
 
493
+ // internal/src/get-state/get-from-store.ts
494
+ function getFromStore(token, store) {
495
+ if (token.type === `molecule`) {
496
+ try {
497
+ const molecule = withdraw(token, store);
498
+ return molecule.instance;
499
+ } catch (_) {
500
+ return void 0;
501
+ }
502
+ }
503
+ const state = withdraw(token, store);
504
+ return readOrComputeValue(state, store);
505
+ }
506
+
493
507
  // internal/src/keys.ts
494
508
  var isAtomKey = (key, store) => newest(store).atoms.has(key);
495
509
  var isSelectorKey = (key, store) => newest(store).selectors.has(key);
@@ -571,6 +585,9 @@ var updateSelectorAtoms = (selectorKey, dependency, store) => {
571
585
  var registerSelector = (selectorKey, store) => ({
572
586
  get: (dependency) => {
573
587
  const target = newest(store);
588
+ if (dependency.type === `molecule`) {
589
+ return getFromStore(dependency, store);
590
+ }
574
591
  const dependencyState = withdraw(dependency, store);
575
592
  const dependencyValue = readOrComputeValue(dependencyState, store);
576
593
  store.logger.info(
@@ -1048,20 +1065,6 @@ function getEnvironmentData(store) {
1048
1065
  store
1049
1066
  };
1050
1067
  }
1051
-
1052
- // internal/src/get-state/get-from-store.ts
1053
- function getFromStore(token, store) {
1054
- if (token.type === `molecule`) {
1055
- try {
1056
- const molecule = withdraw(token, store);
1057
- return molecule.instance;
1058
- } catch (_) {
1059
- return void 0;
1060
- }
1061
- }
1062
- const state = withdraw(token, store);
1063
- return readOrComputeValue(state, store);
1064
- }
1065
1068
  var Molecule = class {
1066
1069
  constructor(ctx, key, family) {
1067
1070
  this.key = key;
@@ -1,8 +1,14 @@
1
- import type { Transactors } from "atom.io"
1
+ import type {
2
+ MoleculeConstructor,
3
+ MoleculeToken,
4
+ ReadableToken,
5
+ Transactors,
6
+ } from "atom.io"
2
7
  import type { findState } from "atom.io/ephemeral"
3
8
  import type { seekState } from "atom.io/immortal"
4
9
 
5
10
  import { findInStore, seekInStore } from "../families"
11
+ import { getFromStore } from "../get-state"
6
12
  import { readOrComputeValue } from "../get-state/read-or-compute-value"
7
13
  import { newest } from "../lineage"
8
14
  import { getJsonToken } from "../mutable"
@@ -15,9 +21,13 @@ export const registerSelector = (
15
21
  selectorKey: string,
16
22
  store: Store,
17
23
  ): Transactors => ({
18
- get: (dependency) => {
24
+ get: (dependency: MoleculeToken<MoleculeConstructor> | ReadableToken<any>) => {
19
25
  const target = newest(store)
20
26
 
27
+ if (dependency.type === `molecule`) {
28
+ return getFromStore(dependency, store)
29
+ }
30
+
21
31
  const dependencyState = withdraw(dependency, store)
22
32
  const dependencyValue = readOrComputeValue(dependencyState, store)
23
33
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "atom.io",
3
- "version": "0.24.6",
3
+ "version": "0.24.7",
4
4
  "description": "Composable and testable reactive data library.",
5
5
  "homepage": "https://atom.io.fyi",
6
6
  "sideEffects": false,
@@ -56,8 +56,8 @@
56
56
  "@types/npmlog": "7.0.0",
57
57
  "@types/react": "18.3.3",
58
58
  "@types/tmp": "0.2.6",
59
- "@typescript-eslint/parser": "7.13.1",
60
- "@typescript-eslint/rule-tester": "7.13.1",
59
+ "@typescript-eslint/parser": "7.14.1",
60
+ "@typescript-eslint/rule-tester": "7.14.1",
61
61
  "@vitest/coverage-v8": "1.6.0",
62
62
  "@vitest/ui": "1.6.0",
63
63
  "concurrently": "8.2.2",
@@ -73,7 +73,7 @@
73
73
  "preact": "10.22.0",
74
74
  "react": "18.3.1",
75
75
  "react-dom": "18.3.1",
76
- "react-router-dom": "6.23.1",
76
+ "react-router-dom": "6.24.0",
77
77
  "socket.io": "4.7.5",
78
78
  "socket.io-client": "4.7.5",
79
79
  "tmp": "0.2.3",