@exodus/atoms
Advanced tools
Comparing version
@@ -6,2 +6,8 @@ # Change Log | ||
## [7.0.5](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/atoms@7.0.4...@exodus/atoms@7.0.5) (2024-02-28) | ||
### Bug Fixes | ||
- use true ESM for atoms ([#5897](https://github.com/ExodusMovement/exodus-hydra/issues/5897)) ([4f1dcf1](https://github.com/ExodusMovement/exodus-hydra/commit/4f1dcf17dd7b3351ad5e2f7c183be74e442f0078)) | ||
## [7.0.4](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/atoms@7.0.3...@exodus/atoms@7.0.4) (2024-02-22) | ||
@@ -8,0 +14,0 @@ |
@@ -1,2 +0,2 @@ | ||
import { Atom } from '../utils/types'; | ||
import { Atom } from '../utils/types.js'; | ||
type Params<T> = { | ||
@@ -3,0 +3,0 @@ atom: Atom<T>; |
@@ -1,2 +0,2 @@ | ||
import { Atom } from './utils/types'; | ||
import { Atom } from './utils/types.js'; | ||
type Params<T> = { | ||
@@ -3,0 +3,0 @@ getInitialized?: () => boolean; |
import makeConcurrent from 'make-concurrent'; | ||
import proxyFreeze from 'proxy-freeze'; | ||
import { isSetter } from './utils/guards'; | ||
import { isSetter } from './utils/guards.js'; | ||
const withChangeDetection = (listener) => { | ||
@@ -5,0 +5,0 @@ let currentValue; |
@@ -1,2 +0,2 @@ | ||
import { Atom, Listener } from '../utils/types'; | ||
import { Atom, Listener } from '../utils/types.js'; | ||
type Params<T> = { | ||
@@ -10,4 +10,4 @@ atom: Atom<T>; | ||
set(value: T): Promise<void>; | ||
set(setter: import("../utils/types").Setter<T>): Promise<void>; | ||
set(setter: import("../utils/types.js").Setter<T>): Promise<void>; | ||
}; | ||
export {}; |
@@ -1,2 +0,2 @@ | ||
import { Atom, ReadonlyAtom } from '../utils/types'; | ||
import { Atom, ReadonlyAtom } from '../utils/types.js'; | ||
type CombinedValue<T> = { | ||
@@ -3,0 +3,0 @@ [Key in keyof T]: T[Key] extends Atom<infer U> ? U : never; |
@@ -1,4 +0,4 @@ | ||
import createCountdownLock from '../countdown-lock'; | ||
import createSimpleObserver from '../simple-observer'; | ||
import enforceObservableRules from '../enforce-rules'; | ||
import createCountdownLock from '../countdown-lock.js'; | ||
import createSimpleObserver from '../simple-observer.js'; | ||
import enforceObservableRules from '../enforce-rules.js'; | ||
const combine = (atoms) => { | ||
@@ -5,0 +5,0 @@ const { notify, observe: observeSimpleObserver } = createSimpleObserver(); |
@@ -1,2 +0,2 @@ | ||
import { Atom, ReadonlyAtom } from '../utils/types'; | ||
import { Atom, ReadonlyAtom } from '../utils/types.js'; | ||
type Params<T, V> = { | ||
@@ -3,0 +3,0 @@ atom: Atom<T>; |
@@ -1,3 +0,3 @@ | ||
import { Atom } from '../utils/types'; | ||
import { Atom } from '../utils/types.js'; | ||
declare const dedupe: <T>(atom: Atom<T>) => Atom<T>; | ||
export default dedupe; |
import { isEqual } from 'lodash'; | ||
import { isSetter } from '../utils/guards'; | ||
import { isSetter } from '../utils/guards.js'; | ||
const dedupe = (atom) => { | ||
@@ -4,0 +4,0 @@ const set = (value) => { |
@@ -1,2 +0,2 @@ | ||
import { Atom, Listener } from '../utils/types'; | ||
import { Atom, Listener } from '../utils/types.js'; | ||
type Diff<T> = { | ||
@@ -7,4 +7,4 @@ previous?: T; | ||
declare const difference: <T>(atom: Atom<T>) => Omit<Atom<T>, "observe"> & { | ||
observe: (listener: Listener<Diff<T>>) => import("../utils/types").Unsubscribe; | ||
observe: (listener: Listener<Diff<T>>) => import("../utils/types.js").Unsubscribe; | ||
}; | ||
export default difference; |
@@ -1,3 +0,3 @@ | ||
import { Atom } from '../utils/types'; | ||
import { Atom } from '../utils/types.js'; | ||
declare const optimisticNotifier: <T>(atom: Atom<T>) => Atom<T | undefined>; | ||
export default optimisticNotifier; |
import makeConcurrent from 'make-concurrent'; | ||
import createInMemoryAtom from '../factories/memory'; | ||
import createInMemoryAtom from '../factories/memory.js'; | ||
const optimisticNotifier = (atom) => { | ||
@@ -4,0 +4,0 @@ const memoryAtom = createInMemoryAtom(); |
@@ -1,3 +0,3 @@ | ||
import { Atom, ReadonlyAtom } from '../utils/types'; | ||
import { Atom, ReadonlyAtom } from '../utils/types.js'; | ||
declare const readOnly: <T>(atom: Atom<T>) => ReadonlyAtom<T>; | ||
export default readOnly; |
@@ -1,2 +0,2 @@ | ||
import { Atom, Listener, Logger } from '../utils/types'; | ||
import { Atom, Listener, Logger } from '../utils/types.js'; | ||
type Params<T> = { | ||
@@ -7,7 +7,7 @@ atom: Atom<T>; | ||
declare const swallowObserverErrors: <T>({ atom, logger }: Params<T>) => { | ||
observe: (observer: Listener<T>) => import("../utils/types").Unsubscribe; | ||
observe: (observer: Listener<T>) => import("../utils/types.js").Unsubscribe; | ||
get(): Promise<T>; | ||
set(value: T): Promise<void>; | ||
set(setter: import("../utils/types").Setter<T>): Promise<void>; | ||
set(setter: import("../utils/types.js").Setter<T>): Promise<void>; | ||
}; | ||
export default swallowObserverErrors; |
@@ -1,2 +0,2 @@ | ||
import { Atom } from '../utils/types'; | ||
import { Atom } from '../utils/types.js'; | ||
type Params<T> = { | ||
@@ -3,0 +3,0 @@ atom: Atom<T>; |
@@ -1,2 +0,2 @@ | ||
import { Atom, Logger } from '../utils/types'; | ||
import { Atom, Logger } from '../utils/types.js'; | ||
type Params<T> = { | ||
@@ -3,0 +3,0 @@ atom: Atom<T>; |
@@ -1,2 +0,2 @@ | ||
import { Atom } from '../utils/types'; | ||
import { Atom } from '../utils/types.js'; | ||
type Params<T, S> = { | ||
@@ -3,0 +3,0 @@ atom: Atom<S>; |
@@ -1,2 +0,2 @@ | ||
import { isSetter } from '../utils/guards'; | ||
import { isSetter } from '../utils/guards.js'; | ||
const withSerialization = ({ atom, serialize: customSerialize, deserialize: customDeserialize, }) => { | ||
@@ -3,0 +3,0 @@ const serialize = (value) => (value === undefined ? undefined : customSerialize(value)); |
@@ -1,2 +0,2 @@ | ||
import { EventEmitter } from './utils/types'; | ||
import { EventEmitter } from './utils/types.js'; | ||
type Params<T> = { | ||
@@ -10,3 +10,3 @@ emitter: EventEmitter; | ||
}; | ||
declare const fromEventEmitter: <T>({ emitter, event, get, set, defaultValue, getInitialized, }: Params<T>) => import("./utils/types").Atom<T>; | ||
declare const fromEventEmitter: <T>({ emitter, event, get, set, defaultValue, getInitialized, }: Params<T>) => import("./utils/types.js").Atom<T>; | ||
export default fromEventEmitter; |
@@ -1,2 +0,2 @@ | ||
import enforceObservableRules from './enforce-rules'; | ||
import enforceObservableRules from './enforce-rules.js'; | ||
const fromEventEmitter = ({ emitter, event, get, set, defaultValue, getInitialized, }) => { | ||
@@ -3,0 +3,0 @@ const observe = (listener) => { |
@@ -1,2 +0,2 @@ | ||
import { Atom, Keystore, KeystoreValue } from '../utils/types'; | ||
import { Atom, Keystore, KeystoreValue } from '../utils/types.js'; | ||
type Params = { | ||
@@ -3,0 +3,0 @@ keystore: Keystore; |
@@ -1,3 +0,3 @@ | ||
import enforceObservableRules from '../enforce-rules'; | ||
import createSimpleObserver from '../simple-observer'; | ||
import enforceObservableRules from '../enforce-rules.js'; | ||
import createSimpleObserver from '../simple-observer.js'; | ||
const createKeystoreAtom = ({ keystore, config: { key, defaultValue, isSoleWriter, getOpts, setOpts, deleteOpts, }, }) => { | ||
@@ -4,0 +4,0 @@ const { notify, observe } = createSimpleObserver({ enable: isSoleWriter }); |
@@ -1,2 +0,2 @@ | ||
import { Atom } from '../utils/types'; | ||
import { Atom } from '../utils/types.js'; | ||
type Params<T> = { | ||
@@ -3,0 +3,0 @@ defaultValue?: T; |
import EventEmitter from 'events/'; | ||
import fromEventEmitter from '../event-emitter'; | ||
import fromEventEmitter from '../event-emitter.js'; | ||
import pDefer from 'p-defer'; | ||
@@ -4,0 +4,0 @@ const createAtomMock = (options = {}) => { |
@@ -1,2 +0,2 @@ | ||
import { Atom, Port } from '../utils/types'; | ||
import { Atom, Port } from '../utils/types.js'; | ||
type Params<T> = { | ||
@@ -3,0 +3,0 @@ atom: Atom<T>; |
@@ -12,3 +12,3 @@ import type { RemoteConfigType } from '@exodus/remote-config'; | ||
}); | ||
declare const createRemoteConfigAtomFactory: ({ remoteConfig }: FactoryParams) => <T>({ defaultValue, ...params }: Params<T>) => import("../utils/types").Atom<T>; | ||
declare const createRemoteConfigAtomFactory: ({ remoteConfig }: FactoryParams) => <T>({ defaultValue, ...params }: Params<T>) => import("../utils/types.js").Atom<T>; | ||
export default createRemoteConfigAtomFactory; |
import { get as getValueAtPath, isEqual } from 'lodash'; | ||
import createSimpleObserver from '../simple-observer'; | ||
import enforceObservableRules from '../enforce-rules'; | ||
import createSimpleObserver from '../simple-observer.js'; | ||
import enforceObservableRules from '../enforce-rules.js'; | ||
const createRemoteConfigAtomFactory = ({ remoteConfig }) => ({ defaultValue, ...params }) => { | ||
@@ -5,0 +5,0 @@ if ('path' in params && 'selector' in params) { |
@@ -1,2 +0,2 @@ | ||
import { Keystore, KeystoreValue } from '../utils/types'; | ||
import { Keystore, KeystoreValue } from '../utils/types.js'; | ||
type Params = { | ||
@@ -14,3 +14,3 @@ keystore: Keystore; | ||
}; | ||
declare const createSequencedKeystoreAtom: ({ keystore, config: { key, separator, defaultValue, isSoleWriter, getOpts, setOpts, deleteOpts, }, }: Params) => import("../utils/types").Atom<KeystoreValue[] | undefined>; | ||
declare const createSequencedKeystoreAtom: ({ keystore, config: { key, separator, defaultValue, isSoleWriter, getOpts, setOpts, deleteOpts, }, }: Params) => import("../utils/types.js").Atom<KeystoreValue[] | undefined>; | ||
export default createSequencedKeystoreAtom; |
import assert from 'minimalistic-assert'; | ||
import enforceObservableRules from '../enforce-rules'; | ||
import createSimpleObserver from '../simple-observer'; | ||
import enforceObservableRules from '../enforce-rules.js'; | ||
import createSimpleObserver from '../simple-observer.js'; | ||
const getRange = (offset, length) => Array.from({ length }, (_, i) => i + offset); | ||
@@ -5,0 +5,0 @@ const createSequencedKeystoreAtom = ({ keystore, config: { key, separator = '.', defaultValue = [], isSoleWriter, getOpts, setOpts, deleteOpts, }, }) => { |
@@ -1,2 +0,2 @@ | ||
import { Atom } from '../utils/types'; | ||
import { Atom } from '../utils/types.js'; | ||
import { Storage } from '@exodus/storage-interface'; | ||
@@ -3,0 +3,0 @@ type FactoryParams<T> = { |
@@ -1,3 +0,3 @@ | ||
import createSimpleObserver from '../simple-observer'; | ||
import enforceObservableRules from '../enforce-rules'; | ||
import createSimpleObserver from '../simple-observer.js'; | ||
import enforceObservableRules from '../enforce-rules.js'; | ||
import pDefer from 'p-defer'; | ||
@@ -4,0 +4,0 @@ const createStorageAtomFactory = ({ storage }) => ({ key, defaultValue, isSoleWriter }) => { |
@@ -1,22 +0,22 @@ | ||
export { default as createAtomMock } from './factories/memory'; | ||
export { default as createInMemoryAtom } from './factories/memory'; | ||
export { default as createStorageAtomFactory } from './factories/storage'; | ||
export { default as createRemoteConfigAtomFactory } from './factories/remote-config'; | ||
export { default as createKeystoreAtom } from './factories/keystore'; | ||
export { default as createSequencedKeystoreAtom } from './factories/sequenced-keystore'; | ||
export { default as createAtomObserver } from './factories/observer'; | ||
export { default as compute } from './enhancers/compute'; | ||
export { default as blockUntil } from './enhancers/block-until'; | ||
export { default as difference } from './enhancers/difference'; | ||
export { default as withSerialization } from './enhancers/with-serialization'; | ||
export { default as combine } from './enhancers/combine'; | ||
export { default as readOnly } from './enhancers/read-only'; | ||
export { default as dedupe } from './enhancers/dedupe'; | ||
export { default as warnOnSameValueSet } from './enhancers/warn-on-same-value-set'; | ||
export { default as swallowObserverErrors } from './enhancers/swallow-observer-errors'; | ||
export { default as timeoutObservers } from './enhancers/timeout-observers'; | ||
export { default as optimisticNotifier } from './enhancers/optimistic-notifier'; | ||
export { default as waitUntil } from './effects/wait-until'; | ||
export { default as enforceObservableRules } from './enforce-rules'; | ||
export { default as fromEventEmitter } from './event-emitter'; | ||
export { Atom, ReadonlyAtom, Listener, Unsubscribe } from './utils/types'; | ||
export { default as createAtomMock } from './factories/memory.js'; | ||
export { default as createInMemoryAtom } from './factories/memory.js'; | ||
export { default as createStorageAtomFactory } from './factories/storage.js'; | ||
export { default as createRemoteConfigAtomFactory } from './factories/remote-config.js'; | ||
export { default as createKeystoreAtom } from './factories/keystore.js'; | ||
export { default as createSequencedKeystoreAtom } from './factories/sequenced-keystore.js'; | ||
export { default as createAtomObserver } from './factories/observer.js'; | ||
export { default as compute } from './enhancers/compute.js'; | ||
export { default as blockUntil } from './enhancers/block-until.js'; | ||
export { default as difference } from './enhancers/difference.js'; | ||
export { default as withSerialization } from './enhancers/with-serialization.js'; | ||
export { default as combine } from './enhancers/combine.js'; | ||
export { default as readOnly } from './enhancers/read-only.js'; | ||
export { default as dedupe } from './enhancers/dedupe.js'; | ||
export { default as warnOnSameValueSet } from './enhancers/warn-on-same-value-set.js'; | ||
export { default as swallowObserverErrors } from './enhancers/swallow-observer-errors.js'; | ||
export { default as timeoutObservers } from './enhancers/timeout-observers.js'; | ||
export { default as optimisticNotifier } from './enhancers/optimistic-notifier.js'; | ||
export { default as waitUntil } from './effects/wait-until.js'; | ||
export { default as enforceObservableRules } from './enforce-rules.js'; | ||
export { default as fromEventEmitter } from './event-emitter.js'; | ||
export { Atom, ReadonlyAtom, Listener, Unsubscribe } from './utils/types.js'; |
@@ -1,21 +0,21 @@ | ||
export { default as createAtomMock } from './factories/memory'; | ||
export { default as createInMemoryAtom } from './factories/memory'; | ||
export { default as createStorageAtomFactory } from './factories/storage'; | ||
export { default as createRemoteConfigAtomFactory } from './factories/remote-config'; | ||
export { default as createKeystoreAtom } from './factories/keystore'; | ||
export { default as createSequencedKeystoreAtom } from './factories/sequenced-keystore'; | ||
export { default as createAtomObserver } from './factories/observer'; | ||
export { default as compute } from './enhancers/compute'; | ||
export { default as blockUntil } from './enhancers/block-until'; | ||
export { default as difference } from './enhancers/difference'; | ||
export { default as withSerialization } from './enhancers/with-serialization'; | ||
export { default as combine } from './enhancers/combine'; | ||
export { default as readOnly } from './enhancers/read-only'; | ||
export { default as dedupe } from './enhancers/dedupe'; | ||
export { default as warnOnSameValueSet } from './enhancers/warn-on-same-value-set'; | ||
export { default as swallowObserverErrors } from './enhancers/swallow-observer-errors'; | ||
export { default as timeoutObservers } from './enhancers/timeout-observers'; | ||
export { default as optimisticNotifier } from './enhancers/optimistic-notifier'; | ||
export { default as waitUntil } from './effects/wait-until'; | ||
export { default as enforceObservableRules } from './enforce-rules'; | ||
export { default as fromEventEmitter } from './event-emitter'; | ||
export { default as createAtomMock } from './factories/memory.js'; | ||
export { default as createInMemoryAtom } from './factories/memory.js'; | ||
export { default as createStorageAtomFactory } from './factories/storage.js'; | ||
export { default as createRemoteConfigAtomFactory } from './factories/remote-config.js'; | ||
export { default as createKeystoreAtom } from './factories/keystore.js'; | ||
export { default as createSequencedKeystoreAtom } from './factories/sequenced-keystore.js'; | ||
export { default as createAtomObserver } from './factories/observer.js'; | ||
export { default as compute } from './enhancers/compute.js'; | ||
export { default as blockUntil } from './enhancers/block-until.js'; | ||
export { default as difference } from './enhancers/difference.js'; | ||
export { default as withSerialization } from './enhancers/with-serialization.js'; | ||
export { default as combine } from './enhancers/combine.js'; | ||
export { default as readOnly } from './enhancers/read-only.js'; | ||
export { default as dedupe } from './enhancers/dedupe.js'; | ||
export { default as warnOnSameValueSet } from './enhancers/warn-on-same-value-set.js'; | ||
export { default as swallowObserverErrors } from './enhancers/swallow-observer-errors.js'; | ||
export { default as timeoutObservers } from './enhancers/timeout-observers.js'; | ||
export { default as optimisticNotifier } from './enhancers/optimistic-notifier.js'; | ||
export { default as waitUntil } from './effects/wait-until.js'; | ||
export { default as enforceObservableRules } from './enforce-rules.js'; | ||
export { default as fromEventEmitter } from './event-emitter.js'; |
@@ -1,2 +0,2 @@ | ||
import { Listener } from './utils/types'; | ||
import { Listener } from './utils/types.js'; | ||
declare const createSimpleObserver: <T>({ enable }?: { | ||
@@ -3,0 +3,0 @@ enable?: boolean | undefined; |
@@ -1,2 +0,2 @@ | ||
import { Setter } from './types'; | ||
import { Setter } from './types.js'; | ||
export declare function isSetter<T>(value: T | Setter<T>): value is Setter<T>; |
{ | ||
"name": "@exodus/atoms", | ||
"version": "7.0.4", | ||
"version": "7.0.5", | ||
"description": "Abstraction for encapsulating a piece of data behind a simple unified interface: get, set, observe", | ||
"type": "module", | ||
"main": "lib/index.js", | ||
"description": "Abstraction for encapsulating a piece of data behind a simple unified interface: get, set, observe", | ||
"exports": "./lib/index.js", | ||
"author": "Exodus Movement Inc.", | ||
"scripts": { | ||
"build": "yarn run -T tsc --build tsconfig.build.json", | ||
"clean": "yarn run -T tsc --build --clean", | ||
"test": "jest", | ||
"lint": "eslint . --ignore-path ../../.gitignore", | ||
"build": "run -T tsc --build tsconfig.build.json", | ||
"clean": "run -T tsc --build --clean", | ||
"test": "run -T jest", | ||
"lint": "run -T eslint . --ignore-path ../../.gitignore", | ||
"lint:fix": "yarn lint --fix", | ||
@@ -44,7 +46,5 @@ "prepublishOnly": "yarn run -T build --scope @exodus/atoms" | ||
"@types/lodash": "^4.14.200", | ||
"@types/minimalistic-assert": "^1.0.2", | ||
"eslint": "^8.44.0", | ||
"jest": "^29.1.2" | ||
"@types/minimalistic-assert": "^1.0.2" | ||
}, | ||
"gitHead": "f3d0c960f2cac1ec585f98ccae1ea709180230d2" | ||
"gitHead": "c21223c12402e16bdc94166fbf089e191c077cdd" | ||
} |
59867
1.03%6
-25%Yes
NaN