@exodus/atoms 7.0.4 → 7.1.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/CHANGELOG.md +16 -0
- package/lib/effects/wait-until.d.ts +1 -1
- package/lib/enforce-rules.d.ts +2 -2
- package/lib/enforce-rules.js +2 -1
- package/lib/enhancers/block-until.d.ts +3 -2
- package/lib/enhancers/combine.d.ts +1 -1
- package/lib/enhancers/combine.js +3 -3
- package/lib/enhancers/compute.d.ts +1 -1
- package/lib/enhancers/dedupe.d.ts +1 -1
- package/lib/enhancers/dedupe.js +1 -1
- package/lib/enhancers/difference.d.ts +2 -2
- package/lib/enhancers/optimistic-notifier.d.ts +1 -1
- package/lib/enhancers/optimistic-notifier.js +1 -1
- package/lib/enhancers/read-only.d.ts +1 -1
- package/lib/enhancers/swallow-observer-errors.d.ts +4 -3
- package/lib/enhancers/timeout-observers.d.ts +1 -1
- package/lib/enhancers/warn-on-same-value-set.d.ts +1 -1
- package/lib/enhancers/with-serialization.d.ts +1 -1
- package/lib/enhancers/with-serialization.js +1 -1
- package/lib/event-emitter.d.ts +2 -2
- package/lib/event-emitter.js +1 -1
- package/lib/factories/keystore.d.ts +1 -1
- package/lib/factories/keystore.js +2 -2
- package/lib/factories/memory.d.ts +1 -1
- package/lib/factories/memory.js +1 -1
- package/lib/factories/observer.d.ts +1 -1
- package/lib/factories/remote-config.d.ts +1 -1
- package/lib/factories/remote-config.js +2 -2
- package/lib/factories/sequenced-keystore.d.ts +2 -2
- package/lib/factories/sequenced-keystore.js +2 -2
- package/lib/factories/storage.d.ts +7 -4
- package/lib/factories/storage.js +46 -43
- package/lib/index.d.ts +22 -22
- package/lib/index.js +21 -21
- package/lib/simple-observer.d.ts +1 -1
- package/lib/utils/guards.d.ts +1 -1
- package/lib/utils/types.d.ts +2 -1
- package/package.json +10 -10
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [7.1.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/atoms@7.0.5...@exodus/atoms@7.1.0) (2024-04-15)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- add `atom.reset` ([#6461](https://github.com/ExodusMovement/exodus-hydra/issues/6461)) ([f687e48](https://github.com/ExodusMovement/exodus-hydra/commit/f687e4836dd36d478bde0dc3a86d481c40d15c78))
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
- omit undefined from storage atom type when defaultValue set ([#6507](https://github.com/ExodusMovement/exodus-hydra/issues/6507)) ([2c8590c](https://github.com/ExodusMovement/exodus-hydra/commit/2c8590c5e2e6be30ab5df1d6702c37e14c5e76d5))
|
|
15
|
+
|
|
16
|
+
## [7.0.5](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/atoms@7.0.4...@exodus/atoms@7.0.5) (2024-02-28)
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
- use true ESM for atoms ([#5897](https://github.com/ExodusMovement/exodus-hydra/issues/5897)) ([4f1dcf1](https://github.com/ExodusMovement/exodus-hydra/commit/4f1dcf17dd7b3351ad5e2f7c183be74e442f0078))
|
|
21
|
+
|
|
6
22
|
## [7.0.4](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/atoms@7.0.3...@exodus/atoms@7.0.4) (2024-02-22)
|
|
7
23
|
|
|
8
24
|
### Bug Fixes
|
package/lib/enforce-rules.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Atom } from './utils/types';
|
|
1
|
+
import { Atom } from './utils/types.js';
|
|
2
2
|
type Params<T> = {
|
|
3
3
|
getInitialized?: () => boolean;
|
|
4
4
|
defaultValue?: T;
|
|
5
5
|
set: (value: T) => Promise<void>;
|
|
6
|
-
} & Omit<Atom<T>, 'set'>;
|
|
6
|
+
} & Omit<Atom<T>, 'set' | 'reset'>;
|
|
7
7
|
declare const enforceObservableRules: <T>({ defaultValue, getInitialized, ...atom }: Params<T>) => Atom<T>;
|
|
8
8
|
export default enforceObservableRules;
|
package/lib/enforce-rules.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import makeConcurrent from 'make-concurrent';
|
|
2
2
|
import proxyFreeze from 'proxy-freeze';
|
|
3
|
-
import { isSetter } from './utils/guards';
|
|
3
|
+
import { isSetter } from './utils/guards.js';
|
|
4
4
|
const withChangeDetection = (listener) => {
|
|
5
5
|
let currentValue;
|
|
6
6
|
let called = false;
|
|
@@ -53,6 +53,7 @@ const enforceObservableRules = ({ defaultValue, getInitialized = () => true, ...
|
|
|
53
53
|
return {
|
|
54
54
|
get,
|
|
55
55
|
set,
|
|
56
|
+
reset: () => set(undefined),
|
|
56
57
|
observe,
|
|
57
58
|
};
|
|
58
59
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Atom, Listener } from '../utils/types';
|
|
1
|
+
import { Atom, Listener } from '../utils/types.js';
|
|
2
2
|
type Params<T> = {
|
|
3
3
|
atom: Atom<T>;
|
|
4
4
|
unblock: () => Promise<unknown>;
|
|
@@ -7,6 +7,7 @@ export default function blockUntil<T>({ atom, unblock }: Params<T>): {
|
|
|
7
7
|
get: () => Promise<T>;
|
|
8
8
|
observe: (listener: Listener<T>) => () => void;
|
|
9
9
|
set(value: T): Promise<void>;
|
|
10
|
-
set(setter: import("../utils/types").Setter<T>): Promise<void>;
|
|
10
|
+
set(setter: import("../utils/types.js").Setter<T>): Promise<void>;
|
|
11
|
+
reset(): Promise<void>;
|
|
11
12
|
};
|
|
12
13
|
export {};
|
package/lib/enhancers/combine.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import createCountdownLock from '../countdown-lock';
|
|
2
|
-
import createSimpleObserver from '../simple-observer';
|
|
3
|
-
import enforceObservableRules from '../enforce-rules';
|
|
1
|
+
import createCountdownLock from '../countdown-lock.js';
|
|
2
|
+
import createSimpleObserver from '../simple-observer.js';
|
|
3
|
+
import enforceObservableRules from '../enforce-rules.js';
|
|
4
4
|
const combine = (atoms) => {
|
|
5
5
|
const { notify, observe: observeSimpleObserver } = createSimpleObserver();
|
|
6
6
|
const countdownLock = createCountdownLock(Object.keys(atoms));
|
package/lib/enhancers/dedupe.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Atom, Listener } from '../utils/types';
|
|
1
|
+
import { Atom, Listener } from '../utils/types.js';
|
|
2
2
|
type Diff<T> = {
|
|
3
3
|
previous?: T;
|
|
4
4
|
current: T;
|
|
5
5
|
};
|
|
6
6
|
declare const difference: <T>(atom: Atom<T>) => Omit<Atom<T>, "observe"> & {
|
|
7
|
-
observe: (listener: Listener<Diff<T>>) => import("../utils/types").Unsubscribe;
|
|
7
|
+
observe: (listener: Listener<Diff<T>>) => import("../utils/types.js").Unsubscribe;
|
|
8
8
|
};
|
|
9
9
|
export default difference;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import makeConcurrent from 'make-concurrent';
|
|
2
|
-
import createInMemoryAtom from '../factories/memory';
|
|
2
|
+
import createInMemoryAtom from '../factories/memory.js';
|
|
3
3
|
const optimisticNotifier = (atom) => {
|
|
4
4
|
const memoryAtom = createInMemoryAtom();
|
|
5
5
|
const set = makeConcurrent(async (newValue, fromRemote) => {
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { Atom, Listener, Logger } from '../utils/types';
|
|
1
|
+
import { Atom, Listener, Logger } from '../utils/types.js';
|
|
2
2
|
type Params<T> = {
|
|
3
3
|
atom: Atom<T>;
|
|
4
4
|
logger: Logger;
|
|
5
5
|
};
|
|
6
6
|
declare const swallowObserverErrors: <T>({ atom, logger }: Params<T>) => {
|
|
7
|
-
observe: (observer: Listener<T>) => import("../utils/types").Unsubscribe;
|
|
7
|
+
observe: (observer: Listener<T>) => import("../utils/types.js").Unsubscribe;
|
|
8
8
|
get(): Promise<T>;
|
|
9
9
|
set(value: T): Promise<void>;
|
|
10
|
-
set(setter: import("../utils/types").Setter<T>): Promise<void>;
|
|
10
|
+
set(setter: import("../utils/types.js").Setter<T>): Promise<void>;
|
|
11
|
+
reset(): Promise<void>;
|
|
11
12
|
};
|
|
12
13
|
export default swallowObserverErrors;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isSetter } from '../utils/guards';
|
|
1
|
+
import { isSetter } from '../utils/guards.js';
|
|
2
2
|
const withSerialization = ({ atom, serialize: customSerialize, deserialize: customDeserialize, }) => {
|
|
3
3
|
const serialize = (value) => (value === undefined ? undefined : customSerialize(value));
|
|
4
4
|
const deserialize = (value) => (value === undefined ? undefined : customDeserialize(value));
|
package/lib/event-emitter.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventEmitter } from './utils/types';
|
|
1
|
+
import { EventEmitter } from './utils/types.js';
|
|
2
2
|
type Params<T> = {
|
|
3
3
|
emitter: EventEmitter;
|
|
4
4
|
event: string;
|
|
@@ -7,5 +7,5 @@ type Params<T> = {
|
|
|
7
7
|
defaultValue?: T;
|
|
8
8
|
getInitialized?: () => boolean;
|
|
9
9
|
};
|
|
10
|
-
declare const fromEventEmitter: <T>({ emitter, event, get, set, defaultValue, getInitialized, }: Params<T>) => import("./utils/types").Atom<T>;
|
|
10
|
+
declare const fromEventEmitter: <T>({ emitter, event, get, set, defaultValue, getInitialized, }: Params<T>) => import("./utils/types.js").Atom<T>;
|
|
11
11
|
export default fromEventEmitter;
|
package/lib/event-emitter.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import enforceObservableRules from '../enforce-rules';
|
|
2
|
-
import createSimpleObserver from '../simple-observer';
|
|
1
|
+
import enforceObservableRules from '../enforce-rules.js';
|
|
2
|
+
import createSimpleObserver from '../simple-observer.js';
|
|
3
3
|
const createKeystoreAtom = ({ keystore, config: { key, defaultValue, isSoleWriter, getOpts, setOpts, deleteOpts, }, }) => {
|
|
4
4
|
const { notify, observe } = createSimpleObserver({ enable: isSoleWriter });
|
|
5
5
|
const set = async (value) => {
|
package/lib/factories/memory.js
CHANGED
|
@@ -9,5 +9,5 @@ type Params<T> = {
|
|
|
9
9
|
} | {
|
|
10
10
|
selector: (config: object) => T;
|
|
11
11
|
});
|
|
12
|
-
declare const createRemoteConfigAtomFactory: ({ remoteConfig }: FactoryParams) => <T>({ defaultValue, ...params }: Params<T>) => import("../utils/types").Atom<T>;
|
|
12
|
+
declare const createRemoteConfigAtomFactory: ({ remoteConfig }: FactoryParams) => <T>({ defaultValue, ...params }: Params<T>) => import("../utils/types.js").Atom<T>;
|
|
13
13
|
export default createRemoteConfigAtomFactory;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { get as getValueAtPath, isEqual } from 'lodash';
|
|
2
|
-
import createSimpleObserver from '../simple-observer';
|
|
3
|
-
import enforceObservableRules from '../enforce-rules';
|
|
2
|
+
import createSimpleObserver from '../simple-observer.js';
|
|
3
|
+
import enforceObservableRules from '../enforce-rules.js';
|
|
4
4
|
const createRemoteConfigAtomFactory = ({ remoteConfig }) => ({ defaultValue, ...params }) => {
|
|
5
5
|
if ('path' in params && 'selector' in params) {
|
|
6
6
|
throw new Error('Provide either a path or a selector to get data from remote config - not both.');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Keystore, KeystoreValue } from '../utils/types';
|
|
1
|
+
import { Keystore, KeystoreValue } from '../utils/types.js';
|
|
2
2
|
type Params = {
|
|
3
3
|
keystore: Keystore;
|
|
4
4
|
config: {
|
|
@@ -11,5 +11,5 @@ type Params = {
|
|
|
11
11
|
defaultValue?: KeystoreValue[];
|
|
12
12
|
};
|
|
13
13
|
};
|
|
14
|
-
declare const createSequencedKeystoreAtom: ({ keystore, config: { key, separator, defaultValue, isSoleWriter, getOpts, setOpts, deleteOpts, }, }: Params) => import("../utils/types").Atom<KeystoreValue[] | undefined>;
|
|
14
|
+
declare const createSequencedKeystoreAtom: ({ keystore, config: { key, separator, defaultValue, isSoleWriter, getOpts, setOpts, deleteOpts, }, }: Params) => import("../utils/types.js").Atom<KeystoreValue[] | undefined>;
|
|
15
15
|
export default createSequencedKeystoreAtom;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import assert from 'minimalistic-assert';
|
|
2
|
-
import enforceObservableRules from '../enforce-rules';
|
|
3
|
-
import createSimpleObserver from '../simple-observer';
|
|
2
|
+
import enforceObservableRules from '../enforce-rules.js';
|
|
3
|
+
import createSimpleObserver from '../simple-observer.js';
|
|
4
4
|
const getRange = (offset, length) => Array.from({ length }, (_, i) => i + offset);
|
|
5
5
|
const createSequencedKeystoreAtom = ({ keystore, config: { key, separator = '.', defaultValue = [], isSoleWriter, getOpts, setOpts, deleteOpts, }, }) => {
|
|
6
6
|
assert(key, 'sequence keystore atom: key missing');
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import { Atom } from '../utils/types';
|
|
1
|
+
import { Atom } from '../utils/types.js';
|
|
2
2
|
import { Storage } from '@exodus/storage-interface';
|
|
3
3
|
type FactoryParams<T> = {
|
|
4
4
|
storage: Storage<T>;
|
|
5
5
|
};
|
|
6
|
-
type Params<
|
|
6
|
+
type Params<D> = {
|
|
7
7
|
key: string;
|
|
8
|
-
defaultValue?:
|
|
8
|
+
defaultValue?: D;
|
|
9
9
|
isSoleWriter?: boolean;
|
|
10
10
|
};
|
|
11
|
-
declare const createStorageAtomFactory: <T>({ storage }: FactoryParams<T>) =>
|
|
11
|
+
declare const createStorageAtomFactory: <T>({ storage }: FactoryParams<T>) => {
|
|
12
|
+
(opts: Omit<Params<unknown>, 'defaultValue'>): Atom<T | undefined>;
|
|
13
|
+
<D extends T>(opts: Params<D>): Atom<T | D>;
|
|
14
|
+
};
|
|
12
15
|
export default createStorageAtomFactory;
|
package/lib/factories/storage.js
CHANGED
|
@@ -1,46 +1,49 @@
|
|
|
1
|
-
import createSimpleObserver from '../simple-observer';
|
|
2
|
-
import enforceObservableRules from '../enforce-rules';
|
|
1
|
+
import createSimpleObserver from '../simple-observer.js';
|
|
2
|
+
import enforceObservableRules from '../enforce-rules.js';
|
|
3
3
|
import pDefer from 'p-defer';
|
|
4
|
-
const createStorageAtomFactory = ({ storage }) =>
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
4
|
+
const createStorageAtomFactory = ({ storage }) => {
|
|
5
|
+
function createStorageAtom({ key, defaultValue, isSoleWriter, }) {
|
|
6
|
+
const { notify, observe } = createSimpleObserver({ enable: isSoleWriter });
|
|
7
|
+
let cached;
|
|
8
|
+
let writePromiseDefer;
|
|
9
|
+
const set = async (value) => {
|
|
10
|
+
if (value === undefined) {
|
|
11
|
+
writePromiseDefer = pDefer();
|
|
12
|
+
await storage.delete(key);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
writePromiseDefer = pDefer();
|
|
16
|
+
await storage.set(key, value);
|
|
17
|
+
}
|
|
18
|
+
writePromiseDefer.resolve();
|
|
19
|
+
if (isSoleWriter) {
|
|
20
|
+
cached = value;
|
|
21
|
+
await notify(value);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
const get = async () => {
|
|
25
|
+
if (cached) {
|
|
26
|
+
return cached;
|
|
27
|
+
}
|
|
28
|
+
if (writePromiseDefer) {
|
|
29
|
+
await writePromiseDefer.promise;
|
|
30
|
+
}
|
|
31
|
+
if (cached) {
|
|
32
|
+
return cached;
|
|
33
|
+
}
|
|
34
|
+
const value = await storage.get(key);
|
|
35
|
+
if (isSoleWriter) {
|
|
36
|
+
cached = value;
|
|
37
|
+
}
|
|
38
|
+
return value;
|
|
39
|
+
};
|
|
40
|
+
return enforceObservableRules({
|
|
41
|
+
get,
|
|
42
|
+
set,
|
|
43
|
+
observe,
|
|
44
|
+
defaultValue,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return createStorageAtom;
|
|
45
48
|
};
|
|
46
49
|
export default createStorageAtomFactory;
|
package/lib/index.d.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
export { default as createAtomMock } from './factories/memory';
|
|
2
|
-
export { default as createInMemoryAtom } from './factories/memory';
|
|
3
|
-
export { default as createStorageAtomFactory } from './factories/storage';
|
|
4
|
-
export { default as createRemoteConfigAtomFactory } from './factories/remote-config';
|
|
5
|
-
export { default as createKeystoreAtom } from './factories/keystore';
|
|
6
|
-
export { default as createSequencedKeystoreAtom } from './factories/sequenced-keystore';
|
|
7
|
-
export { default as createAtomObserver } from './factories/observer';
|
|
8
|
-
export { default as compute } from './enhancers/compute';
|
|
9
|
-
export { default as blockUntil } from './enhancers/block-until';
|
|
10
|
-
export { default as difference } from './enhancers/difference';
|
|
11
|
-
export { default as withSerialization } from './enhancers/with-serialization';
|
|
12
|
-
export { default as combine } from './enhancers/combine';
|
|
13
|
-
export { default as readOnly } from './enhancers/read-only';
|
|
14
|
-
export { default as dedupe } from './enhancers/dedupe';
|
|
15
|
-
export { default as warnOnSameValueSet } from './enhancers/warn-on-same-value-set';
|
|
16
|
-
export { default as swallowObserverErrors } from './enhancers/swallow-observer-errors';
|
|
17
|
-
export { default as timeoutObservers } from './enhancers/timeout-observers';
|
|
18
|
-
export { default as optimisticNotifier } from './enhancers/optimistic-notifier';
|
|
19
|
-
export { default as waitUntil } from './effects/wait-until';
|
|
20
|
-
export { default as enforceObservableRules } from './enforce-rules';
|
|
21
|
-
export { default as fromEventEmitter } from './event-emitter';
|
|
22
|
-
export { Atom, ReadonlyAtom, Listener, Unsubscribe } from './utils/types';
|
|
1
|
+
export { default as createAtomMock } from './factories/memory.js';
|
|
2
|
+
export { default as createInMemoryAtom } from './factories/memory.js';
|
|
3
|
+
export { default as createStorageAtomFactory } from './factories/storage.js';
|
|
4
|
+
export { default as createRemoteConfigAtomFactory } from './factories/remote-config.js';
|
|
5
|
+
export { default as createKeystoreAtom } from './factories/keystore.js';
|
|
6
|
+
export { default as createSequencedKeystoreAtom } from './factories/sequenced-keystore.js';
|
|
7
|
+
export { default as createAtomObserver } from './factories/observer.js';
|
|
8
|
+
export { default as compute } from './enhancers/compute.js';
|
|
9
|
+
export { default as blockUntil } from './enhancers/block-until.js';
|
|
10
|
+
export { default as difference } from './enhancers/difference.js';
|
|
11
|
+
export { default as withSerialization } from './enhancers/with-serialization.js';
|
|
12
|
+
export { default as combine } from './enhancers/combine.js';
|
|
13
|
+
export { default as readOnly } from './enhancers/read-only.js';
|
|
14
|
+
export { default as dedupe } from './enhancers/dedupe.js';
|
|
15
|
+
export { default as warnOnSameValueSet } from './enhancers/warn-on-same-value-set.js';
|
|
16
|
+
export { default as swallowObserverErrors } from './enhancers/swallow-observer-errors.js';
|
|
17
|
+
export { default as timeoutObservers } from './enhancers/timeout-observers.js';
|
|
18
|
+
export { default as optimisticNotifier } from './enhancers/optimistic-notifier.js';
|
|
19
|
+
export { default as waitUntil } from './effects/wait-until.js';
|
|
20
|
+
export { default as enforceObservableRules } from './enforce-rules.js';
|
|
21
|
+
export { default as fromEventEmitter } from './event-emitter.js';
|
|
22
|
+
export { Atom, ReadonlyAtom, Listener, Unsubscribe } from './utils/types.js';
|
package/lib/index.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
export { default as createAtomMock } from './factories/memory';
|
|
2
|
-
export { default as createInMemoryAtom } from './factories/memory';
|
|
3
|
-
export { default as createStorageAtomFactory } from './factories/storage';
|
|
4
|
-
export { default as createRemoteConfigAtomFactory } from './factories/remote-config';
|
|
5
|
-
export { default as createKeystoreAtom } from './factories/keystore';
|
|
6
|
-
export { default as createSequencedKeystoreAtom } from './factories/sequenced-keystore';
|
|
7
|
-
export { default as createAtomObserver } from './factories/observer';
|
|
8
|
-
export { default as compute } from './enhancers/compute';
|
|
9
|
-
export { default as blockUntil } from './enhancers/block-until';
|
|
10
|
-
export { default as difference } from './enhancers/difference';
|
|
11
|
-
export { default as withSerialization } from './enhancers/with-serialization';
|
|
12
|
-
export { default as combine } from './enhancers/combine';
|
|
13
|
-
export { default as readOnly } from './enhancers/read-only';
|
|
14
|
-
export { default as dedupe } from './enhancers/dedupe';
|
|
15
|
-
export { default as warnOnSameValueSet } from './enhancers/warn-on-same-value-set';
|
|
16
|
-
export { default as swallowObserverErrors } from './enhancers/swallow-observer-errors';
|
|
17
|
-
export { default as timeoutObservers } from './enhancers/timeout-observers';
|
|
18
|
-
export { default as optimisticNotifier } from './enhancers/optimistic-notifier';
|
|
19
|
-
export { default as waitUntil } from './effects/wait-until';
|
|
20
|
-
export { default as enforceObservableRules } from './enforce-rules';
|
|
21
|
-
export { default as fromEventEmitter } from './event-emitter';
|
|
1
|
+
export { default as createAtomMock } from './factories/memory.js';
|
|
2
|
+
export { default as createInMemoryAtom } from './factories/memory.js';
|
|
3
|
+
export { default as createStorageAtomFactory } from './factories/storage.js';
|
|
4
|
+
export { default as createRemoteConfigAtomFactory } from './factories/remote-config.js';
|
|
5
|
+
export { default as createKeystoreAtom } from './factories/keystore.js';
|
|
6
|
+
export { default as createSequencedKeystoreAtom } from './factories/sequenced-keystore.js';
|
|
7
|
+
export { default as createAtomObserver } from './factories/observer.js';
|
|
8
|
+
export { default as compute } from './enhancers/compute.js';
|
|
9
|
+
export { default as blockUntil } from './enhancers/block-until.js';
|
|
10
|
+
export { default as difference } from './enhancers/difference.js';
|
|
11
|
+
export { default as withSerialization } from './enhancers/with-serialization.js';
|
|
12
|
+
export { default as combine } from './enhancers/combine.js';
|
|
13
|
+
export { default as readOnly } from './enhancers/read-only.js';
|
|
14
|
+
export { default as dedupe } from './enhancers/dedupe.js';
|
|
15
|
+
export { default as warnOnSameValueSet } from './enhancers/warn-on-same-value-set.js';
|
|
16
|
+
export { default as swallowObserverErrors } from './enhancers/swallow-observer-errors.js';
|
|
17
|
+
export { default as timeoutObservers } from './enhancers/timeout-observers.js';
|
|
18
|
+
export { default as optimisticNotifier } from './enhancers/optimistic-notifier.js';
|
|
19
|
+
export { default as waitUntil } from './effects/wait-until.js';
|
|
20
|
+
export { default as enforceObservableRules } from './enforce-rules.js';
|
|
21
|
+
export { default as fromEventEmitter } from './event-emitter.js';
|
package/lib/simple-observer.d.ts
CHANGED
package/lib/utils/guards.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Setter } from './types';
|
|
1
|
+
import { Setter } from './types.js';
|
|
2
2
|
export declare function isSetter<T>(value: T | Setter<T>): value is Setter<T>;
|
package/lib/utils/types.d.ts
CHANGED
|
@@ -10,8 +10,9 @@ export interface Atom<T> {
|
|
|
10
10
|
set(value: T): Promise<void>;
|
|
11
11
|
set(setter: Setter<T>): Promise<void>;
|
|
12
12
|
observe(listener: Listener<T>): Unsubscribe;
|
|
13
|
+
reset(): Promise<void>;
|
|
13
14
|
}
|
|
14
|
-
export type ReadonlyAtom<T> = Omit<Atom<T>, 'set'>;
|
|
15
|
+
export type ReadonlyAtom<T> = Omit<Atom<T>, 'set' | 'reset'>;
|
|
15
16
|
export type KeystoreValue = string | number;
|
|
16
17
|
export interface Port<T> {
|
|
17
18
|
emit(event: string, value: T): void;
|
package/package.json
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@exodus/atoms",
|
|
3
|
-
"version": "7.0
|
|
4
|
-
"main": "lib/index.js",
|
|
3
|
+
"version": "7.1.0",
|
|
5
4
|
"description": "Abstraction for encapsulating a piece of data behind a simple unified interface: get, set, observe",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "lib/index.js",
|
|
7
|
+
"exports": "./lib/index.js",
|
|
6
8
|
"author": "Exodus Movement Inc.",
|
|
7
9
|
"scripts": {
|
|
8
|
-
"build": "
|
|
9
|
-
"clean": "
|
|
10
|
-
"test": "jest",
|
|
11
|
-
"lint": "eslint . --ignore-path ../../.gitignore",
|
|
10
|
+
"build": "run -T tsc --build tsconfig.build.json",
|
|
11
|
+
"clean": "run -T tsc --build --clean",
|
|
12
|
+
"test": "run -T jest",
|
|
13
|
+
"lint": "run -T eslint . --ignore-path ../../.gitignore",
|
|
12
14
|
"lint:fix": "yarn lint --fix",
|
|
13
15
|
"prepublishOnly": "yarn run -T build --scope @exodus/atoms"
|
|
14
16
|
},
|
|
@@ -41,9 +43,7 @@
|
|
|
41
43
|
"@exodus/storage-memory": "^2.1.1",
|
|
42
44
|
"@types/jest": "^29.5.11",
|
|
43
45
|
"@types/lodash": "^4.14.200",
|
|
44
|
-
"@types/minimalistic-assert": "^1.0.2"
|
|
45
|
-
"eslint": "^8.44.0",
|
|
46
|
-
"jest": "^29.1.2"
|
|
46
|
+
"@types/minimalistic-assert": "^1.0.2"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "6c7aeab1f2b63a1c925efe6bb0cd37e5b8454aff"
|
|
49
49
|
}
|