ccstate 4.1.0 → 4.3.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/README.md +2 -2
- package/core/index.cjs +595 -801
- package/core/index.cjs.map +1 -1
- package/core/index.d.cts +10 -5
- package/core/index.d.ts +10 -5
- package/core/index.js +595 -801
- package/core/index.js.map +1 -1
- package/debug/index.cjs +633 -792
- package/debug/index.cjs.map +1 -1
- package/debug/index.d.cts +16 -5
- package/debug/index.d.ts +16 -5
- package/debug/index.js +633 -792
- package/debug/index.js.map +1 -1
- package/index.cjs +644 -800
- package/index.cjs.map +1 -1
- package/index.d.cts +17 -5
- package/index.d.ts +17 -5
- package/index.js +644 -800
- package/index.js.map +1 -1
- package/package.json +1 -1
package/debug/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../src/core/atom-manager.ts","../../src/core/store.ts","../../src/debug/debug-store.ts","../../src/debug/console-inspector.ts"],"sourcesContent":["import type { ReadableAtom, Command, Getter, Computed, State } from '../../types/core/atom';\nimport type { StoreOptions } from '../../types/core/store';\n\ntype DataWithCalledState<T> =\n | {\n called: false;\n }\n | {\n called: true;\n data: T;\n };\n\nexport interface StateState<T> {\n mounted?: Mounted;\n val: T;\n epoch: number;\n}\n\nexport interface ComputedState<T> {\n mounted?: Mounted;\n val: T;\n dependencies: Map<ReadableAtom<unknown>, number>;\n epoch: number;\n abortController?: AbortController;\n}\n\ntype CommonReadableState<T> = StateState<T> | ComputedState<T>;\n\ntype AtomState<T> = StateState<T> | ComputedState<T>;\n\ninterface Mounted {\n listeners: Set<Command<unknown, []>>;\n readDepts: Set<ReadableAtom<unknown>>;\n}\n\nfunction canReadAsCompute<T>(atom: ReadableAtom<T>): atom is Computed<T> {\n return 'read' in atom;\n}\n\nfunction isComputedState<T>(state: CommonReadableState<T>): state is ComputedState<T> {\n return 'dependencies' in state;\n}\n\nexport class AtomManager {\n private atomStateMap = new WeakMap<ReadableAtom<unknown>, AtomState<unknown>>();\n\n constructor(private readonly options?: StoreOptions) {}\n\n private tryGetCachedState = <T>(atom: Computed<T>, ignoreMounted: boolean): ComputedState<T> | undefined => {\n const atomState = this.atomStateMap.get(atom) as ComputedState<T> | undefined;\n if (!atomState) {\n return undefined;\n }\n\n if (atomState.mounted && !ignoreMounted) {\n return atomState;\n }\n\n for (const [dep, epoch] of atomState.dependencies.entries()) {\n const depState = this.readAtomState(dep);\n if (depState.epoch !== epoch) {\n return undefined;\n }\n }\n\n return atomState;\n };\n\n private readComputedAtom<T>(atom: Computed<T>, ignoreMounted = false): ComputedState<T> {\n const cachedState = this.tryGetCachedState(atom, ignoreMounted);\n if (cachedState) {\n return cachedState;\n }\n\n const computedInterceptor = this.options?.interceptor?.computed;\n if (!computedInterceptor) {\n return this.computeComputedAtom(atom, ignoreMounted);\n }\n\n let result: DataWithCalledState<ComputedState<T>> = {\n called: false,\n } as DataWithCalledState<ComputedState<T>>;\n\n computedInterceptor(atom, () => {\n result = {\n called: true,\n data: this.computeComputedAtom(atom, ignoreMounted),\n };\n\n return result.data.val;\n });\n\n if (!result.called) {\n throw new Error('interceptor must call fn sync');\n }\n\n return result.data;\n }\n\n private computeComputedAtom<T>(atom: Computed<T>, ignoreMounted = false): ComputedState<T> {\n const self: Computed<T> = atom;\n let atomState: ComputedState<T> | undefined = this.atomStateMap.get(self) as ComputedState<T> | undefined;\n if (!atomState) {\n atomState = {\n dependencies: new Map<ReadableAtom<unknown>, number>(),\n epoch: -1,\n } as ComputedState<T>;\n this.atomStateMap.set(self, atomState);\n }\n\n const lastDeps = atomState.dependencies;\n const readDeps = new Map<ReadableAtom<unknown>, number>();\n atomState.dependencies = readDeps;\n const wrappedGet: Getter = (depAtom) => {\n const depState = this.readAtomState(depAtom, ignoreMounted);\n\n // get 可能发生在异步过程中,当重复调用时,只有最新的 get 过程会修改 deps\n if (atomState.dependencies === readDeps) {\n readDeps.set(depAtom, depState.epoch);\n\n const selfMounted = !!atomState.mounted;\n if (selfMounted && !depState.mounted) {\n this.mount(depAtom).readDepts.add(self);\n } else if (selfMounted && depState.mounted) {\n depState.mounted.readDepts.add(self);\n }\n }\n\n return depState.val;\n };\n\n const getInterceptor = this.options?.interceptor?.get;\n const ret = self.read(\n function <U>(depAtom: ReadableAtom<U>) {\n if (!getInterceptor) {\n return wrappedGet(depAtom);\n }\n\n let result: DataWithCalledState<U> = {\n called: false,\n } as DataWithCalledState<U>;\n\n const fn = () => {\n result = {\n called: true,\n data: wrappedGet(depAtom),\n };\n\n return result.data;\n };\n\n getInterceptor(depAtom, fn);\n\n if (!result.called) {\n throw new Error('interceptor must call fn sync');\n }\n return result.data;\n },\n {\n get signal() {\n atomState.abortController?.abort(`abort ${self.debugLabel ?? 'anonymous'} atom`);\n atomState.abortController = new AbortController();\n return atomState.abortController.signal;\n },\n },\n );\n\n if (atomState.val !== ret) {\n atomState.val = ret;\n atomState.epoch += 1;\n }\n\n for (const key of lastDeps.keys()) {\n if (!readDeps.has(key)) {\n const depState = this.atomStateMap.get(key);\n if (depState?.mounted) {\n depState.mounted.readDepts.delete(self);\n this.tryUnmount(key);\n }\n }\n }\n\n return atomState;\n }\n\n private readStateAtom<T>(atom: State<T>): StateState<T> {\n const atomState = this.atomStateMap.get(atom);\n if (!atomState) {\n const initState = {\n val: atom.init,\n epoch: 0,\n };\n this.atomStateMap.set(atom, initState);\n return initState as StateState<T>;\n }\n\n return atomState as StateState<T>;\n }\n\n public readAtomState<T>(atom: State<T>, ignoreMounted?: boolean): StateState<T>;\n public readAtomState<T>(atom: Computed<T>, ignoreMounted?: boolean): ComputedState<T>;\n public readAtomState<T>(atom: State<T> | Computed<T>, ignoreMounted?: boolean): CommonReadableState<T>;\n public readAtomState<T>(\n atom: State<T> | Computed<T>,\n ignoreMounted = false,\n ): StateState<T> | ComputedState<T> | CommonReadableState<T> {\n if (canReadAsCompute(atom)) {\n return this.readComputedAtom(atom, ignoreMounted);\n }\n\n return this.readStateAtom(atom);\n }\n\n private tryGetMount(atom: ReadableAtom<unknown>): Mounted | undefined {\n return this.atomStateMap.get(atom)?.mounted;\n }\n\n public mount<T>(atom: ReadableAtom<T>): Mounted {\n const mounted = this.tryGetMount(atom);\n if (mounted) {\n return mounted;\n }\n\n this.options?.interceptor?.mount?.(atom);\n\n const atomState = this.readAtomState(atom);\n\n atomState.mounted = atomState.mounted ?? {\n listeners: new Set(),\n readDepts: new Set(),\n };\n\n if (isComputedState(atomState)) {\n for (const [dep] of Array.from(atomState.dependencies)) {\n const mounted = this.mount(dep);\n mounted.readDepts.add(atom);\n }\n }\n\n return atomState.mounted;\n }\n\n public tryUnmount<T>(atom: ReadableAtom<T>): void {\n const atomState = this.atomStateMap.get(atom);\n if (!atomState?.mounted || atomState.mounted.listeners.size || atomState.mounted.readDepts.size) {\n return;\n }\n\n this.options?.interceptor?.unmount?.(atom);\n\n if (isComputedState(atomState)) {\n for (const [dep] of Array.from(atomState.dependencies)) {\n const depState = this.readAtomState(dep);\n depState.mounted?.readDepts.delete(atom);\n this.tryUnmount(dep);\n }\n }\n\n atomState.mounted = undefined;\n }\n\n public inited(atom: ReadableAtom<unknown>) {\n return this.atomStateMap.has(atom);\n }\n}\n\nexport class ListenerManager {\n private pendingListeners = new Set<Command<unknown, []>>();\n\n markPendingListeners(atomManager: AtomManager, atom: ReadableAtom<unknown>) {\n let queue: ReadableAtom<unknown>[] = [atom];\n while (queue.length > 0) {\n const nextQueue: ReadableAtom<unknown>[] = [];\n for (const atom of queue) {\n const atomState = atomManager.readAtomState(atom, true);\n\n if (atomState.mounted?.listeners) {\n for (const listener of atomState.mounted.listeners) {\n this.pendingListeners.add(listener);\n }\n }\n\n const readDepts = atomState.mounted?.readDepts;\n if (readDepts) {\n for (const dep of Array.from(readDepts)) {\n nextQueue.push(dep);\n }\n }\n }\n\n queue = nextQueue;\n }\n }\n\n *notify(): Generator<Command<unknown, []>, void, unknown> {\n const pendingListeners = this.pendingListeners;\n this.pendingListeners = new Set();\n\n for (const listener of pendingListeners) {\n yield listener;\n }\n }\n}\n","import type { ReadableAtom, Command, Getter, State, Updater, Setter } from '../../types/core/atom';\nimport type { Store, StoreOptions, SubscribeOptions } from '../../types/core/store';\nimport { AtomManager, ListenerManager } from './atom-manager';\n\ntype DataWithCalledState<T> =\n | {\n called: false;\n }\n | {\n called: true;\n data: T;\n };\n\nexport class StoreImpl implements Store {\n constructor(\n protected readonly atomManager: AtomManager,\n protected readonly listenerManager: ListenerManager,\n protected readonly options?: StoreOptions,\n ) {}\n\n private innerSet = <T, Args extends unknown[]>(\n atom: State<T> | Command<T, Args>,\n ...args: [T | Updater<T>] | Args\n ): undefined | T => {\n if ('read' in atom) {\n return;\n }\n\n if ('write' in atom) {\n const ret = atom.write({ get: this.get, set: this.set }, ...(args as Args));\n return ret;\n }\n\n const newValue =\n typeof args[0] === 'function'\n ? (args[0] as Updater<T>)(this.atomManager.readAtomState(atom).val)\n : (args[0] as T);\n\n if (!this.atomManager.inited(atom)) {\n this.atomManager.readAtomState(atom).val = newValue;\n this.listenerManager.markPendingListeners(this.atomManager, atom);\n return;\n }\n const atomState = this.atomManager.readAtomState(atom);\n atomState.val = newValue;\n atomState.epoch += 1;\n this.listenerManager.markPendingListeners(this.atomManager, atom);\n return undefined;\n };\n\n get: Getter = <T>(atom: ReadableAtom<T>): T => {\n if (!this.options?.interceptor?.get) {\n return this.atomManager.readAtomState(atom).val;\n }\n let result: DataWithCalledState<T> = {\n called: false,\n } as DataWithCalledState<T>;\n\n const fnWithRet = () => {\n result = {\n called: true,\n data: this.atomManager.readAtomState(atom).val,\n };\n return result.data;\n };\n\n this.options.interceptor.get(atom, fnWithRet);\n if (!result.called) {\n throw new Error('interceptor must call fn sync');\n }\n\n return result.data;\n };\n\n private notify = () => {\n for (const listener of this.listenerManager.notify()) {\n let notifyed = false;\n const fn = () => {\n notifyed = true;\n return listener.write({ get: this.get, set: this.set });\n };\n if (this.options?.interceptor?.notify) {\n this.options.interceptor.notify(listener, fn);\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- notify must call fn sync\n if (!notifyed) {\n throw new Error('interceptor must call fn sync');\n }\n } else {\n fn();\n }\n }\n };\n\n set: Setter = <T, Args extends unknown[]>(\n atom: State<T> | Command<T, Args>,\n ...args: [T | Updater<T>] | Args\n ): undefined | T => {\n let ret: T | undefined;\n const fn = () => {\n try {\n ret = this.innerSet(atom, ...args) as T | undefined;\n } finally {\n this.notify();\n }\n return ret;\n };\n\n if (this.options?.interceptor?.set) {\n if ('write' in atom) {\n this.options.interceptor.set(atom, fn, ...(args as Args));\n } else {\n this.options.interceptor.set(atom, fn, args[0] as T | Updater<T>);\n }\n } else {\n fn();\n }\n\n return ret;\n };\n\n private _subSingleAtom(\n target$: ReadableAtom<unknown>,\n cb$: Command<unknown, unknown[]>,\n options?: SubscribeOptions,\n ): () => void {\n let unsub: (() => void) | undefined;\n const fn = () => {\n let subscribed = true;\n const mounted = this.atomManager.mount(target$);\n mounted.listeners.add(cb$);\n\n unsub = () => {\n if (!subscribed) {\n return;\n }\n\n const fn = () => {\n subscribed = false;\n mounted.listeners.delete(cb$);\n\n if (mounted.readDepts.size === 0 && mounted.listeners.size === 0) {\n this.atomManager.tryUnmount(target$);\n }\n\n options?.signal?.addEventListener('abort', fn);\n };\n\n if (this.options?.interceptor?.unsub) {\n this.options.interceptor.unsub(target$, cb$, fn);\n\n // subscribed should be false if interceptor called fn sync\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (subscribed) {\n throw new Error('interceptor must call fn sync');\n }\n } else {\n fn();\n }\n };\n\n options?.signal?.addEventListener('abort', unsub);\n };\n\n if (this.options?.interceptor?.sub) {\n this.options.interceptor.sub(target$, cb$, fn);\n } else {\n fn();\n }\n\n if (!unsub) {\n throw new Error('interceptor must call fn sync');\n }\n\n return unsub;\n }\n\n sub(\n targets$: ReadableAtom<unknown>[] | ReadableAtom<unknown>,\n cb$: Command<unknown, unknown[]>,\n options?: SubscribeOptions,\n ): () => void {\n if (Array.isArray(targets$) && targets$.length === 0) {\n return () => void 0;\n }\n\n if (Array.isArray(targets$) && targets$.length === 1) {\n return this._subSingleAtom(targets$[0], cb$, options);\n } else if (!Array.isArray(targets$)) {\n return this._subSingleAtom(targets$, cb$, options);\n }\n\n const unsubscribes = new Set<() => void>();\n targets$.forEach((atom) => {\n unsubscribes.add(this._subSingleAtom(atom, cb$, options));\n });\n\n const unsub = () => {\n for (const unsubscribe of unsubscribes) {\n unsubscribe();\n }\n };\n\n return unsub;\n }\n}\n\nexport function createStore(): Store {\n const atomManager = new AtomManager();\n const listenerManager = new ListenerManager();\n\n return new StoreImpl(atomManager, listenerManager);\n}\n\nlet defaultStore: Store | undefined = undefined;\nexport function getDefaultStore(): Store {\n if (!defaultStore) {\n defaultStore = createStore();\n }\n return defaultStore;\n}\n","import type { StoreInterceptor, SubscribeOptions } from '../../types/core/store';\nimport type { DebugStore, NestedAtom } from '../../types/debug/debug-store';\nimport type { Computed, Command, Subscribe, State } from '../core';\nimport { AtomManager, ListenerManager } from '../core/atom-manager';\nimport { StoreImpl } from '../core/store';\n\nexport class DebugStoreImpl extends StoreImpl implements DebugStore {\n private readonly mountedAtomListenersCount = new Map<State<unknown> | Computed<unknown>, number>();\n\n override sub: Subscribe = (\n atoms: (State<unknown> | Computed<unknown>)[] | (State<unknown> | Computed<unknown>),\n cb: Command<unknown, unknown[]>,\n options?: SubscribeOptions,\n ): (() => void) => {\n const atomList = Array.isArray(atoms) ? atoms : [atoms];\n\n atomList.forEach((atom) => {\n this.mountedAtomListenersCount.set(atom, (this.mountedAtomListenersCount.get(atom) ?? 0) + 1);\n });\n\n const unsub = super.sub(atoms, cb, options);\n const decount = () => {\n atomList.forEach((atom) => {\n const count = this.mountedAtomListenersCount.get(atom) ?? 0;\n if (count === 0) {\n return;\n }\n\n this.mountedAtomListenersCount.set(atom, count - 1);\n if (count === 1) {\n this.mountedAtomListenersCount.delete(atom);\n }\n });\n };\n options?.signal?.addEventListener('abort', decount);\n return () => {\n unsub();\n decount();\n };\n };\n\n getReadDependencies = (atom: State<unknown> | Computed<unknown>): NestedAtom => {\n const atomState = this.atomManager.readAtomState(atom);\n\n if (!('dependencies' in atomState)) {\n return [atom];\n }\n\n return [\n atom,\n ...Array.from(atomState.dependencies).map(([key]) => {\n return this.getReadDependencies(key);\n }),\n ] as NestedAtom;\n };\n\n getReadDependents = (atom: State<unknown> | Computed<unknown>): NestedAtom => {\n const atomState = this.atomManager.readAtomState(atom);\n return [\n atom,\n ...Array.from(atomState.mounted?.readDepts ?? []).map((key) => this.getReadDependents(key)),\n ] as NestedAtom;\n };\n\n getSubscribeGraph = (): NestedAtom => {\n const subscribedAtoms = Array.from(this.mountedAtomListenersCount.keys());\n return subscribedAtoms.map((atom) => {\n const atomState = this.atomManager.readAtomState(atom);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- we know it's mounted\n const listeners = Array.from(atomState.mounted!.listeners);\n return [atom, ...listeners];\n });\n };\n\n isMounted = (atom: State<unknown> | Computed<unknown>): boolean => {\n const mountState = this.atomManager.readAtomState(atom);\n return mountState.mounted !== undefined;\n };\n}\n\nexport function createDebugStoreInternal(interceptor?: StoreInterceptor): DebugStore {\n const atomManager = new AtomManager({\n interceptor: interceptor,\n });\n const listenerManager = new ListenerManager();\n\n return new DebugStoreImpl(atomManager, listenerManager, {\n interceptor: interceptor,\n });\n}\n","import type { CallbackFunc, StoreEventType, StoreInterceptor } from '../../types/core/store';\nimport type { DebugStore } from '../../types/debug/debug-store';\nimport type { Computed, Command, Updater, State } from '../core';\nimport { createDebugStoreInternal } from './debug-store';\n\nexport interface AtomWatch {\n target: State<unknown> | Computed<unknown> | Command<unknown, unknown[]> | string | RegExp;\n actions?: Set<StoreEventType>;\n}\n\nexport class ConsoleInterceptor implements StoreInterceptor {\n constructor(private readonly watches: AtomWatch[]) {}\n\n private shouldLog = (\n atom: State<unknown> | Computed<unknown> | Command<unknown, unknown[]>,\n action: StoreEventType,\n ) => {\n return this.watches.some((watch) => {\n let atomMatched = false;\n if (typeof watch.target === 'string') {\n atomMatched = atom.toString().includes(watch.target);\n } else if (watch.target instanceof RegExp) {\n atomMatched = watch.target.test(atom.toString());\n } else {\n atomMatched = watch.target === atom;\n }\n\n if (!atomMatched) {\n return false;\n }\n\n return !watch.actions || watch.actions.has(action);\n });\n };\n\n get = <T>(atom$: State<T> | Computed<T>, fn: () => T) => {\n if (!this.shouldLog(atom$, 'get')) {\n fn();\n return;\n }\n\n console.group('[R][GET] ' + atom$.toString());\n console.log('ret:', fn());\n console.groupEnd();\n };\n\n computed = <T>(atom$: Computed<T>, fn: () => T) => {\n if (!this.shouldLog(atom$, 'computed')) {\n fn();\n return;\n }\n\n console.group('[R][CPT] ' + atom$.toString());\n console.log('ret:', fn());\n console.groupEnd();\n };\n\n set = <T, Args extends unknown[]>(\n atom$: State<T> | Command<T, Args>,\n fn: () => T,\n ...args: Args | [T | Updater<T>]\n ) => {\n if (!this.shouldLog(atom$ as unknown as State<T>, 'set')) {\n fn();\n return;\n }\n\n console.group('[R][SET] ' + atom$.toString(), '(', ...args, ')');\n console.log('ret:', fn());\n console.groupEnd();\n };\n\n sub = <T>(atom$: State<T> | Computed<T>, callback$: CallbackFunc<T>, fn: () => void) => {\n if (!this.shouldLog(atom$, 'sub')) {\n fn();\n return;\n }\n\n console.group('[R][SUB] ' + atom$.toString() + ', callback=' + callback$.toString());\n fn();\n console.groupEnd();\n };\n\n unsub = <T>(atom$: State<T> | Computed<T>, callback$: CallbackFunc<T>, fn: () => void) => {\n if (!this.shouldLog(atom$, 'unsub')) {\n fn();\n return;\n }\n\n console.group('[R][UNS] ' + atom$.toString() + ', callback=' + callback$.toString());\n fn();\n console.groupEnd();\n };\n\n mount = <T>(atom$: State<T> | Computed<T>) => {\n if (!this.shouldLog(atom$, 'mount')) {\n return;\n }\n\n console.log('[R][MNT] ' + atom$.toString());\n };\n\n unmount = <T>(atom$: State<T> | Computed<T>) => {\n if (!this.shouldLog(atom$, 'unmount')) {\n return;\n }\n\n console.log('[R][UNM] ' + atom$.toString());\n };\n\n notify = <T>(callback$: CallbackFunc<T>, fn: () => T) => {\n if (!this.shouldLog(callback$, 'notify')) {\n fn();\n return;\n }\n\n console.group('[R][NTF] ' + callback$.toString());\n console.log('ret:', fn());\n console.groupEnd();\n };\n}\n\nexport function createDebugStore(\n watches: (AtomWatch | string | RegExp | State<unknown> | Computed<unknown> | Command<unknown, unknown[]>)[] = [],\n defaultActions?: StoreEventType[],\n): DebugStore {\n const parsedDefaultActions = defaultActions ? new Set(defaultActions) : undefined;\n\n const parsedWatches = watches.map((watch): AtomWatch => {\n if (typeof watch === 'string' || watch instanceof RegExp) {\n return { target: watch, actions: parsedDefaultActions };\n }\n\n if ('target' in watch) {\n return watch;\n }\n\n return { target: watch, actions: parsedDefaultActions };\n });\n\n const interceptor = new ConsoleInterceptor(parsedWatches);\n return createDebugStoreInternal(interceptor);\n}\n"],"names":["canReadAsCompute","atom","isComputedState","state","AtomManager","options","_this","_classCallCheck","_defineProperty","WeakMap","ignoreMounted","atomState","atomStateMap","get","undefined","mounted","_iterator","_createForOfIteratorHelper","dependencies","entries","_step","s","n","done","_step$value","_slicedToArray","value","dep","epoch","depState","readAtomState","err","e","f","_createClass","key","readComputedAtom","_this$options","_this2","arguments","length","cachedState","tryGetCachedState","computedInterceptor","interceptor","computed","computeComputedAtom","result","called","data","val","Error","_this3","_this$options2","self","Map","set","lastDeps","readDeps","wrappedGet","depAtom","selfMounted","mount","readDepts","add","getInterceptor","ret","read","fn","signal","_atomState$abortContr","_self$debugLabel","abortController","abort","concat","debugLabel","AbortController","_iterator2","keys","_step2","has","tryUnmount","readStateAtom","initState","init","tryGetMount","_this$atomStateMap$ge","_this$options3","_this$options3$mount","_atomState$mounted","call","listeners","Set","_i","_Array$from","Array","from","_Array$from$_i","_this$options4","_this$options4$unmoun","size","unmount","_i2","_Array$from2","_depState$mounted","_Array$from2$_i","inited","ListenerManager","markPendingListeners","atomManager","queue","nextQueue","_iterator3","_step3","_atomState$mounted2","_atomState$mounted3","_iterator4","_step4","listener","pendingListeners","_i3","_Array$from3","push","_regeneratorRuntime","mark","notify","_iterator5","_step5","wrap","notify$","_context","prev","next","t0","finish","stop","StoreImpl","listenerManager","_len","args","_key","write","apply","_toConsumableArray","newValue","fnWithRet","_loop","notifyed","_len2","_key2","innerSet","_this$options$interce","_subSingleAtom","target$","cb$","unsub","_options$signal2","subscribed","_this2$options","_options$signal","addEventListener","sub","targets$","isArray","unsubscribes","forEach","unsubscribe","DebugStoreImpl","_StoreImpl","_callSuper","atoms","cb","atomList","_this$mountedAtomList","mountedAtomListenersCount","_superPropGet","decount","_this$mountedAtomList2","count","map","_ref","_ref2","getReadDependencies","_atomState$mounted$re","getReadDependents","subscribedAtoms","mountState","_inherits","createDebugStoreInternal","ConsoleInterceptor","watches","action","some","watch","atomMatched","target","toString","includes","RegExp","test","actions","atom$","shouldLog","console","group","log","groupEnd","_console","callback$","createDebugStore","defaultActions","parsedDefaultActions","parsedWatches"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/core/interceptor.ts","../../src/core/typing-util.ts","../../src/core/signal/signal.ts","../../src/core/signal/computed.ts","../../src/core/store/set.ts","../../src/core/signal/state.ts","../../src/core/store/sub.ts","../../src/core/store/store.ts","../../src/debug/debug-store.ts","../../src/debug/console-inspector.ts"],"sourcesContent":["import type { Command, Computed, Signal, State } from '../../types/core/signal';\nimport type {\n CallbackFunc,\n ComputedState,\n InterceptorComputed,\n InterceptorGet,\n InterceptorNotify,\n InterceptorSet,\n InterceptorSub,\n InterceptorUnsub,\n SetArgs,\n} from '../../types/core/store';\n\ntype DataWithCalledState<T> =\n | {\n called: false;\n }\n | {\n called: true;\n data: T;\n };\n\nexport function withSetInterceptor<T, Args extends SetArgs<T, unknown[]>>(\n fn: () => T | undefined,\n writable$: State<T> | Command<T, Args>,\n interceptor: InterceptorSet | undefined,\n ...args: Args\n): T | undefined {\n if (!interceptor) {\n return fn();\n }\n\n let result = { called: false } as DataWithCalledState<T | undefined>;\n const wrappedFn = () => {\n result = { called: true, data: fn() };\n return result.data;\n };\n if ('write' in writable$) {\n interceptor(writable$, wrappedFn, ...args);\n } else {\n interceptor(writable$, wrappedFn, args[0]);\n }\n\n if (!result.called) {\n throw new Error('interceptor must call fn sync');\n }\n\n return result.data;\n}\n\nexport function withGetInterceptor<T>(fn: () => T, signal: Signal<T>, interceptor?: InterceptorGet): T {\n if (!interceptor) {\n return fn();\n }\n\n let result = { called: false } as DataWithCalledState<T>;\n\n interceptor(signal, () => {\n result = { called: true, data: fn() };\n return result.data;\n });\n\n if (!result.called) {\n throw new Error('interceptor must call fn sync');\n }\n\n return result.data;\n}\n\nexport function withComputedInterceptor<T>(\n fn: () => ComputedState<T>,\n signal: Computed<T>,\n interceptor?: InterceptorComputed,\n): ComputedState<T> {\n if (!interceptor) {\n return fn();\n }\n\n let result = { called: false } as DataWithCalledState<ComputedState<T>>;\n\n interceptor(signal, () => {\n result = { called: true, data: fn() };\n return result.data.val;\n });\n\n if (!result.called) {\n throw new Error('interceptor must call fn sync');\n }\n\n return result.data;\n}\n\nexport function withGeValInterceptor<T>(fn: () => T, signal: Signal<T>, interceptor?: InterceptorGet): T {\n if (!interceptor) {\n return fn();\n }\n\n let result = { called: false } as DataWithCalledState<T>;\n\n interceptor(signal, () => {\n result = { called: true, data: fn() };\n return result.data;\n });\n\n if (!result.called) {\n throw new Error('interceptor must call fn sync');\n }\n\n return result.data;\n}\n\nexport function withSubInterceptor<T>(\n fn: () => void,\n signal: Signal<T>,\n callback$: Command<unknown, []>,\n interceptor?: InterceptorSub,\n) {\n if (!interceptor) {\n fn();\n return;\n }\n\n let result = { called: false } as DataWithCalledState<void>;\n\n interceptor(signal, callback$, () => {\n result = { called: true, data: undefined };\n fn();\n });\n\n if (!result.called) {\n throw new Error('interceptor must call fn sync');\n }\n}\n\nexport function withUnsubInterceptor<T>(\n fn: () => void,\n signal: Signal<T>,\n callback$: Command<unknown, []>,\n interceptor?: InterceptorUnsub,\n): void {\n if (!interceptor) {\n fn();\n return;\n }\n\n let result = { called: false } as DataWithCalledState<void>;\n\n interceptor(signal, callback$, () => {\n result = { called: true, data: undefined };\n fn();\n });\n\n if (!result.called) {\n throw new Error('interceptor must call fn sync');\n }\n}\n\nexport function withNotifyInterceptor<T>(fn: () => T, callback$: CallbackFunc<T>, interceptor?: InterceptorNotify): T {\n if (!interceptor) {\n return fn();\n }\n\n let result = { called: false } as DataWithCalledState<T>;\n\n interceptor(callback$, () => {\n result = { called: true, data: fn() };\n return result.data;\n });\n\n if (!result.called) {\n throw new Error('interceptor must call fn sync');\n }\n\n return result.data;\n}\n","import type { Computed, Signal } from '../../types/core/signal';\nimport type { ComputedState, SignalState } from '../../types/core/store';\n\nexport function canReadAsCompute<T>(atom: Signal<T>): atom is Computed<T> {\n return 'read' in atom;\n}\n\nexport function isComputedState<T>(state: SignalState<T>): state is ComputedState<T> {\n return 'dependencies' in state;\n}\n","import type { Signal } from '../../../types/core/signal';\nimport type { StoreContext } from '../../../types/core/store';\n\nexport function currentValue<T>(signal: Signal<T>, context: StoreContext): T | undefined {\n return context.stateMap.get(signal)?.val as T | undefined;\n}\n\nexport function shouldDistinct<T>(signal: Signal<T>, value: T, context: StoreContext) {\n return currentValue(signal, context) === value;\n}\n","import type { Computed, Getter, Signal } from '../../../types/core/signal';\nimport type {\n ComputedState,\n Mount,\n Mutation,\n ReadComputed,\n ReadSignal,\n StoreContext,\n Unmount,\n} from '../../../types/core/store';\nimport { withGeValInterceptor } from '../interceptor';\nimport { canReadAsCompute } from '../typing-util';\nimport { shouldDistinct } from './signal';\n\nfunction checkEpoch<T>(\n readComputed: ReadComputed,\n computedState: ComputedState<T>,\n context: StoreContext,\n mutation?: Mutation,\n): boolean {\n for (const [dep, epoch] of computedState.dependencies.entries()) {\n const depEpoch = canReadAsCompute(dep)\n ? readComputed(dep, context, mutation).epoch\n : context.stateMap.get(dep)?.epoch;\n\n if (depEpoch !== epoch) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function tryGetCached<T>(\n readComputed: ReadComputed,\n computed$: Computed<T>,\n context: StoreContext,\n mutation?: Mutation,\n): ComputedState<T> | undefined {\n const signalState = context.stateMap.get(computed$) as ComputedState<T> | undefined;\n if (!signalState) {\n return undefined;\n }\n\n if (mutation?.dirtyMarkers.has(computed$.id)) {\n return undefined;\n }\n\n if (signalState.mounted) {\n return signalState;\n }\n\n if (checkEpoch(readComputed, signalState, context, mutation)) {\n return signalState;\n }\n\n return undefined;\n}\n\nfunction wrapGet<T>(\n readSignal: ReadSignal,\n mount: Mount,\n callerComputed$: Computed<T>,\n callerState: ComputedState<T>,\n context: StoreContext,\n mutation?: Mutation,\n): [Getter, Map<Signal<unknown>, number>] {\n const readDeps = new Map<Signal<unknown>, number>();\n\n return [\n (dep$) => {\n const depState = readSignal(dep$, context, mutation);\n\n if (callerState.dependencies === readDeps) {\n readDeps.set(dep$, depState.epoch);\n\n const callerMounted = !!callerState.mounted;\n if (callerMounted && !depState.mounted) {\n mount(dep$, context, mutation).readDepts.add(callerComputed$);\n } else if (callerMounted && depState.mounted) {\n depState.mounted.readDepts.add(callerComputed$);\n }\n }\n\n return depState.val;\n },\n readDeps,\n ];\n}\n\nfunction getOrInitComputedState<T>(computed$: Computed<T>, context: StoreContext): ComputedState<T> {\n let computedState: ComputedState<T> | undefined = context.stateMap.get(computed$) as ComputedState<T> | undefined;\n if (!computedState) {\n computedState = {\n dependencies: new Map<Signal<unknown>, number>(),\n epoch: -1,\n } as ComputedState<T>;\n context.stateMap.set(computed$, computedState);\n }\n\n return computedState;\n}\n\nfunction cleanupMissingDependencies<T>(\n unmount: Unmount,\n computed$: Computed<T>,\n lastDeps: Map<Signal<unknown>, number>,\n currDeps: Map<Signal<unknown>, number>,\n context: StoreContext,\n mutation?: Mutation,\n) {\n for (const key of lastDeps.keys()) {\n if (!currDeps.has(key)) {\n const depState = context.stateMap.get(key);\n depState?.mounted?.readDepts.delete(computed$);\n unmount(key, context, mutation);\n }\n }\n}\n\nexport function evaluateComputed<T>(\n readSignal: ReadSignal,\n mount: Mount,\n unmount: Unmount,\n computed$: Computed<T>,\n context: StoreContext,\n mutation?: Mutation,\n): ComputedState<T> {\n const computedState = getOrInitComputedState(computed$, context);\n\n const lastDeps = computedState.dependencies;\n\n const [_get, dependencies] = wrapGet(readSignal, mount, computed$, computedState, context, mutation);\n computedState.dependencies = dependencies;\n\n const evalVal = computed$.read(\n function <U>(depAtom: Signal<U>) {\n return withGeValInterceptor(() => _get(depAtom), depAtom, context.interceptor?.get);\n },\n {\n get signal() {\n computedState.abortController?.abort(`abort ${computed$.debugLabel ?? 'anonymous'} atom`);\n computedState.abortController = new AbortController();\n return computedState.abortController.signal;\n },\n },\n );\n\n cleanupMissingDependencies(unmount, computed$, lastDeps, dependencies, context, mutation);\n\n if (!shouldDistinct(computed$, evalVal, context)) {\n computedState.val = evalVal;\n computedState.epoch += 1;\n }\n\n return computedState;\n}\n","import type { Command, State, Computed, Signal, Updater, StateArg } from '../../../types/core/signal';\nimport type {\n Mutation,\n ReadComputed,\n StoreContext,\n StateState,\n StoreGet,\n StoreSet,\n SetArgs,\n} from '../../../types/core/store';\nimport { shouldDistinct } from '../signal/signal';\n\nfunction pushDirtyMarkers(signalState: StateState<unknown>, context: StoreContext, mutation: Mutation) {\n let queue: Computed<unknown>[] = Array.from(signalState.mounted?.readDepts ?? []);\n\n while (queue.length > 0) {\n const nextQueue: Computed<unknown>[] = [];\n for (const computed$ of queue) {\n mutation.dirtyMarkers.add(computed$.id);\n\n const computedState = context.stateMap.get(computed$);\n // This computed$ is read from other computed$'s readDepts, so it must not be null and must have mounted\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n for (const dep of computedState!.mounted!.readDepts) {\n nextQueue.push(dep);\n }\n }\n\n queue = nextQueue;\n }\n}\n\nfunction pullEvaluate(\n readComputed: ReadComputed,\n signalState: StateState<unknown>,\n context: StoreContext,\n mutation: Mutation,\n) {\n let queue: Computed<unknown>[] = Array.from(signalState.mounted?.readDepts ?? []);\n\n for (const listener of signalState.mounted?.listeners ?? []) {\n mutation.pendingListeners.add(listener);\n }\n\n while (queue.length > 0) {\n const nextQueue: Computed<unknown>[] = [];\n for (const computed$ of queue) {\n const computedState = readComputed(computed$, context, mutation);\n\n if (computedState.mounted?.listeners) {\n for (const listener of computedState.mounted.listeners) {\n mutation.pendingListeners.add(listener);\n }\n }\n\n const readDepts = computedState.mounted?.readDepts;\n if (readDepts) {\n for (const dep of Array.from(readDepts)) {\n nextQueue.push(dep);\n }\n }\n }\n\n queue = nextQueue;\n }\n}\n\nfunction propagationChanges(\n readComputed: ReadComputed,\n signalState: StateState<unknown>,\n context: StoreContext,\n mutation: Mutation,\n) {\n pushDirtyMarkers(signalState, context, mutation);\n pullEvaluate(readComputed, signalState, context, mutation);\n}\n\nfunction innerSetState<T>(\n readComputed: ReadComputed,\n signal$: State<T>,\n context: StoreContext,\n mutation: Mutation,\n val: StateArg<T>,\n) {\n let newValue: T;\n if (typeof val === 'function') {\n const updater = val as Updater<T>;\n newValue = updater((context.stateMap.get(signal$)?.val as T | undefined) ?? signal$.init);\n } else {\n newValue = val;\n }\n\n if (shouldDistinct(signal$, newValue, context)) {\n return;\n }\n\n const signalState = context.stateMap.get(signal$);\n if (!signalState) {\n context.stateMap.set(signal$, {\n val: newValue,\n epoch: 0,\n });\n return;\n }\n\n signalState.val = newValue;\n signalState.epoch += 1;\n propagationChanges(readComputed, signalState, context, mutation);\n\n return undefined;\n}\n\nexport function set<T, Args extends SetArgs<T, unknown[]>>(\n readComputed: ReadComputed,\n writable$: State<T> | Command<T, Args>,\n context: StoreContext,\n mutation: Mutation,\n ...args: Args\n): undefined | T {\n if ('read' in writable$) {\n return;\n }\n\n if ('write' in writable$) {\n return writable$.write(mutation.visitor, ...args);\n }\n\n innerSetState(readComputed, writable$, context, mutation, args[0]);\n return;\n}\n\n/**\n * Creates a mutation operation context. The Mutation remains unique throughout\n * the mutation cycle and can track side effects produced by this mutation operation\n *\n * This tracking is implemented by coloring the visitor function, so the Mutation\n * needs to wrap get & set functions and ensure that all get & set operations\n * executed in the mutation context come from the same Mutation\n *\n * @param context\n * @param get\n * @param set\n * @returns\n */\nexport function createMutation(context: StoreContext, get: StoreGet, set: StoreSet): Mutation {\n const mutation: Mutation = {\n dirtyMarkers: new Set(),\n pendingListeners: new Set(),\n visitor: {\n get: <T>(signal$: Signal<T>) => {\n return get(signal$, context, mutation);\n },\n set: <T, Args extends SetArgs<T, unknown[]>>(\n signal$: State<T> | Command<T, Args>,\n ...args: Args\n ): undefined | T => {\n return set<T, Args>(signal$, context, ...args);\n },\n },\n };\n\n return mutation;\n}\n","import type { State } from '../../../types/core/signal';\nimport type { StateState, StoreContext } from '../../../types/core/store';\n\nexport function readState<T>(state: State<T>, context: StoreContext): StateState<T> {\n const atomState = context.stateMap.get(state);\n if (!atomState) {\n const initState = {\n val: state.init,\n epoch: 0,\n };\n context.stateMap.set(state, initState);\n return initState as StateState<T>;\n }\n\n return atomState as StateState<T>;\n}\n","import type { Command, Computed, Signal } from '../../../types/core/signal';\nimport type {\n ComputedState,\n Mounted,\n Mutation,\n ReadSignal,\n SignalState,\n StoreContext,\n} from '../../../types/core/store';\nimport { withNotifyInterceptor, withSubInterceptor, withUnsubInterceptor } from '../interceptor';\nimport { isComputedState } from '../typing-util';\n\nfunction unmountComputedDependencies<T>(\n computed$: Computed<T>,\n computedState: ComputedState<T>,\n context: StoreContext,\n mutation?: Mutation,\n) {\n for (const [dep] of Array.from(computedState.dependencies)) {\n context.stateMap.get(dep)?.mounted?.readDepts.delete(computed$ as Computed<unknown>);\n unmount(dep, context, mutation);\n }\n}\n\nfunction mountComputedDependencies<T>(\n readSignal: ReadSignal,\n computed$: Computed<T>,\n computedState: ComputedState<T>,\n context: StoreContext,\n mutation?: Mutation,\n) {\n for (const [dep] of Array.from(computedState.dependencies)) {\n const mounted = mount(readSignal, dep, context, mutation);\n mounted.readDepts.add(computed$ as Computed<unknown>);\n }\n}\n\nfunction initMount<T>(readSignal: ReadSignal, signal$: Signal<T>, context: StoreContext, mutation?: Mutation): Mounted {\n context.interceptor?.mount?.(signal$);\n\n const signalState = readSignal(signal$, context, mutation);\n\n signalState.mounted = signalState.mounted ?? {\n listeners: new Set(),\n readDepts: new Set(),\n };\n\n if (isComputedState(signalState)) {\n mountComputedDependencies(readSignal, signal$ as Computed<unknown>, signalState, context, mutation);\n }\n\n return signalState.mounted;\n}\n\nexport function mount<T>(\n readSignal: ReadSignal,\n signal$: Signal<T>,\n context: StoreContext,\n mutation?: Mutation,\n): Mounted {\n const mounted = context.stateMap.get(signal$)?.mounted;\n if (mounted) {\n return mounted;\n }\n\n return initMount(readSignal, signal$, context, mutation);\n}\n\nfunction doUnmount<T>(\n signal$: Signal<T>,\n signalState: SignalState<T>,\n context: StoreContext,\n mutation?: Mutation,\n): void {\n context.interceptor?.unmount?.(signal$);\n\n if (isComputedState(signalState)) {\n unmountComputedDependencies(signal$ as Computed<unknown>, signalState, context, mutation);\n }\n\n signalState.mounted = undefined;\n}\n\nexport function unmount<T>(signal$: Signal<T>, context: StoreContext, mutation?: Mutation): void {\n const signalState = context.stateMap.get(signal$);\n if (!signalState?.mounted || signalState.mounted.listeners.size || signalState.mounted.readDepts.size) {\n return;\n }\n\n doUnmount(signal$, signalState, context, mutation);\n}\n\nexport function subSingleSignal<T>(\n readSignal: ReadSignal,\n signal$: Signal<T>,\n callback$: Command<unknown, []>,\n context: StoreContext,\n signal: AbortSignal,\n) {\n withSubInterceptor(\n () => {\n const mounted = mount(readSignal, signal$, context);\n mounted.listeners.add(callback$);\n\n const unsub = () => {\n withUnsubInterceptor(\n () => {\n mounted.listeners.delete(callback$);\n\n if (mounted.readDepts.size === 0 && mounted.listeners.size === 0) {\n unmount(signal$, context);\n }\n },\n signal$,\n callback$,\n context.interceptor?.unsub,\n );\n };\n\n signal.addEventListener('abort', unsub, {\n once: true,\n });\n },\n signal$,\n callback$,\n context.interceptor?.sub,\n );\n}\n\nexport function notify(context: StoreContext, mutation: Mutation) {\n const pendingListeners = mutation.pendingListeners;\n mutation.pendingListeners = new Set();\n\n for (const listener of pendingListeners) {\n withNotifyInterceptor(\n () => {\n return listener.write(mutation.visitor);\n },\n listener,\n context.interceptor?.notify,\n );\n }\n}\n","import type { Command, Getter, Setter, Signal, State, Computed } from '../../../types/core/signal';\nimport type {\n StateMap,\n Store,\n StoreContext,\n StoreOptions,\n SubscribeOptions,\n ComputedState,\n Mounted,\n Mutation,\n ReadComputed,\n SignalState,\n StoreGet,\n StoreSet,\n SetArgs,\n} from '../../../types/core/store';\nimport { evaluateComputed, tryGetCached } from '../signal/computed';\nimport { withComputedInterceptor, withGetInterceptor, withSetInterceptor } from '../interceptor';\nimport { createMutation, set as innerSet } from './set';\nimport { readState } from '../signal/state';\nimport { canReadAsCompute } from '../typing-util';\nimport { mount as innerMount, unmount, subSingleSignal, notify } from './sub';\n\nconst readComputed: ReadComputed = <T>(\n computed$: Computed<T>,\n context: StoreContext,\n mutation?: Mutation,\n): ComputedState<T> => {\n const cachedState = tryGetCached(readComputed, computed$, context, mutation);\n if (cachedState) {\n return cachedState;\n }\n\n mutation?.dirtyMarkers.delete(computed$.id);\n\n return withComputedInterceptor(\n () => {\n return evaluateComputed(readSignal, mount, unmount, computed$, context, mutation);\n },\n computed$,\n context.interceptor?.computed,\n );\n};\n\nfunction readSignal<T>(signal$: Signal<T>, context: StoreContext, mutation?: Mutation): SignalState<T> {\n if (canReadAsCompute(signal$)) {\n return readComputed(signal$, context, mutation);\n }\n\n return readState(signal$, context);\n}\n\nfunction mount<T>(signal$: Signal<T>, context: StoreContext, mutation?: Mutation): Mounted {\n return innerMount(readSignal, signal$, context, mutation);\n}\n\nfunction sub<T>(\n signals$: Signal<T>[] | Signal<T>,\n callback$: Command<unknown, []>,\n context: StoreContext,\n options?: SubscribeOptions,\n): () => void {\n if (Array.isArray(signals$) && signals$.length === 0) {\n return () => void 0;\n }\n\n const controller = new AbortController();\n const signal = options?.signal ? AbortSignal.any([controller.signal, options.signal]) : controller.signal;\n\n if (!Array.isArray(signals$)) {\n subSingleSignal(readSignal, signals$, callback$, context, signal);\n } else {\n signals$.forEach((atom) => {\n subSingleSignal(readSignal, atom, callback$, context, signal);\n });\n }\n\n return () => {\n controller.abort();\n };\n}\n\nconst get: StoreGet = (signal, context, mutation) => {\n return withGetInterceptor(\n () => {\n return readSignal(signal, context, mutation).val;\n },\n signal,\n context.interceptor?.get,\n );\n};\n\nconst set: StoreSet = <T, Args extends SetArgs<T, unknown[]>>(\n atom: State<T> | Command<T, Args>,\n context: StoreContext,\n ...args: Args\n): T | undefined => {\n return withSetInterceptor<T, Args>(\n () => {\n const mutation = createMutation(context, get, set);\n\n let ret: T | undefined;\n try {\n ret = innerSet<T, Args>(readComputed, atom, context, mutation, ...args);\n } finally {\n notify(context, mutation);\n }\n return ret;\n },\n atom,\n context.interceptor?.set,\n ...args,\n );\n};\n\nexport class StoreImpl implements Store {\n protected readonly stateMap: StateMap = new WeakMap();\n protected readonly context: StoreContext;\n\n constructor(protected readonly options?: StoreOptions) {\n this.context = {\n stateMap: this.stateMap,\n interceptor: this.options?.interceptor,\n };\n }\n\n get: Getter = <T>(atom: Signal<T>): T => {\n return get(atom, this.context);\n };\n\n set: Setter = <T, Args extends SetArgs<T, unknown[]>>(\n atom: State<T> | Command<T, Args>,\n ...args: Args\n ): undefined | T => {\n return set<T, Args>(atom, this.context, ...args);\n };\n\n sub(\n targets$: Signal<unknown>[] | Signal<unknown>,\n cb$: Command<unknown, unknown[]>,\n options?: SubscribeOptions,\n ): () => void {\n return sub(targets$, cb$, this.context, options);\n }\n}\n\nexport function createStore(): Store {\n return new StoreImpl();\n}\n\nlet defaultStore: Store | undefined = undefined;\nexport function getDefaultStore(): Store {\n if (!defaultStore) {\n defaultStore = createStore();\n }\n return defaultStore;\n}\n","import type { ComputedState, SignalState, StoreInterceptor, SubscribeOptions } from '../../types/core/store';\nimport type { DebugStore, Edge, NestedAtom } from '../../types/debug/debug-store';\nimport type { Computed, Command, Subscribe, State } from '../core';\nimport { StoreImpl } from '../core/store/store';\nimport { canReadAsCompute } from '../core/typing-util';\n\nexport class DebugStoreImpl extends StoreImpl implements DebugStore {\n private readonly mountedAtomListenersCount = new Map<State<unknown> | Computed<unknown>, number>();\n\n override sub: Subscribe = (\n atoms: (State<unknown> | Computed<unknown>)[] | (State<unknown> | Computed<unknown>),\n cb: Command<unknown, unknown[]>,\n options?: SubscribeOptions,\n ): (() => void) => {\n const atomList = Array.isArray(atoms) ? atoms : [atoms];\n\n atomList.forEach((atom) => {\n this.mountedAtomListenersCount.set(atom, (this.mountedAtomListenersCount.get(atom) ?? 0) + 1);\n });\n\n const unsub = super.sub(atoms, cb, options);\n const decount = () => {\n atomList.forEach((atom) => {\n const count = this.mountedAtomListenersCount.get(atom) ?? 0;\n if (count === 0) {\n return;\n }\n\n this.mountedAtomListenersCount.set(atom, count - 1);\n if (count === 1) {\n this.mountedAtomListenersCount.delete(atom);\n }\n });\n };\n options?.signal?.addEventListener('abort', decount);\n return () => {\n unsub();\n decount();\n };\n };\n\n getReadDependencies = (atom: State<unknown> | Computed<unknown>): NestedAtom => {\n const atomState = this.context.stateMap.get(atom);\n if (!atomState) {\n return [atom];\n }\n\n if (!('dependencies' in atomState)) {\n return [atom];\n }\n\n return [\n atom,\n ...Array.from(atomState.dependencies).map(([key]) => {\n return this.getReadDependencies(key);\n }),\n ] as NestedAtom;\n };\n\n getReadDependents = (atom: State<unknown> | Computed<unknown>): NestedAtom => {\n const atomState = this.context.stateMap.get(atom);\n if (!atomState) {\n return [atom];\n }\n\n return [\n atom,\n ...Array.from(atomState.mounted?.readDepts ?? []).map((key) => this.getReadDependents(key)),\n ] as NestedAtom;\n };\n\n getSubscribeGraph = (): NestedAtom => {\n const subscribedAtoms = Array.from(this.mountedAtomListenersCount.keys());\n return subscribedAtoms.map((atom) => {\n const atomState = this.context.stateMap.get(atom);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const listeners = Array.from(atomState!.mounted!.listeners);\n return [atom, ...listeners];\n });\n };\n\n isMounted = (atom: State<unknown> | Computed<unknown>): boolean => {\n const mountState = this.stateMap.get(atom);\n return mountState?.mounted !== undefined;\n };\n\n getDependenciesGraph = (computed$: Computed<unknown>): Edge[] => {\n const stateMap = this.context.stateMap;\n function fillDependenciesGraph(computed$: Computed<unknown>, result: Edge[]) {\n const computedState = stateMap.get(computed$) as ComputedState<unknown>;\n for (const [child$, epoch] of computedState.dependencies.entries()) {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-non-null-assertion\n const childState = stateMap.get(child$)! as SignalState<unknown>;\n result.push([\n {\n signal: computed$,\n val: computedState.val,\n epoch: computedState.epoch,\n },\n {\n signal: child$,\n val: childState.val,\n epoch: childState.epoch,\n },\n epoch,\n ]);\n if (canReadAsCompute(child$)) {\n fillDependenciesGraph(child$, result);\n }\n }\n }\n\n const result: Edge[] = [];\n fillDependenciesGraph(computed$, result);\n return result;\n };\n}\n\nexport function createDebugStoreInternal(interceptor?: StoreInterceptor): DebugStore {\n return new DebugStoreImpl({\n interceptor: interceptor,\n });\n}\n","import type { CallbackFunc, SetArgs, StoreEventType, StoreInterceptor } from '../../types/core/store';\nimport type { DebugStore } from '../../types/debug/debug-store';\nimport type { Computed, Command, State } from '../core';\nimport { createDebugStoreInternal } from './debug-store';\n\nexport interface AtomWatch {\n target: State<unknown> | Computed<unknown> | Command<unknown, unknown[]> | string | RegExp;\n actions?: Set<StoreEventType>;\n}\n\nexport class ConsoleInterceptor implements StoreInterceptor {\n constructor(private readonly watches: AtomWatch[]) {}\n\n private shouldLog = (\n atom: State<unknown> | Computed<unknown> | Command<unknown, unknown[]>,\n action: StoreEventType,\n ) => {\n return this.watches.some((watch) => {\n let atomMatched = false;\n if (typeof watch.target === 'string') {\n atomMatched = atom.toString().includes(watch.target);\n } else if (watch.target instanceof RegExp) {\n atomMatched = watch.target.test(atom.toString());\n } else {\n atomMatched = watch.target === atom;\n }\n\n if (!atomMatched) {\n return false;\n }\n\n return !watch.actions || watch.actions.has(action);\n });\n };\n\n get = <T>(atom$: State<T> | Computed<T>, fn: () => T) => {\n if (!this.shouldLog(atom$, 'get')) {\n fn();\n return;\n }\n\n console.group('[R][GET] ' + atom$.toString());\n console.log('ret:', fn());\n console.groupEnd();\n };\n\n computed = <T>(atom$: Computed<T>, fn: () => T) => {\n if (!this.shouldLog(atom$, 'computed')) {\n fn();\n return;\n }\n\n console.group('[R][CPT] ' + atom$.toString());\n console.log('ret:', fn());\n console.groupEnd();\n };\n\n set = <T, Args extends SetArgs<T, unknown[]>>(atom$: State<T> | Command<T, Args>, fn: () => T, ...args: Args) => {\n if (!this.shouldLog(atom$ as unknown as State<T>, 'set')) {\n fn();\n return;\n }\n\n console.group('[R][SET] ' + atom$.toString(), '(', ...args, ')');\n console.log('ret:', fn());\n console.groupEnd();\n };\n\n sub = <T>(atom$: State<T> | Computed<T>, callback$: CallbackFunc<T>, fn: () => void) => {\n if (!this.shouldLog(atom$, 'sub')) {\n fn();\n return;\n }\n\n console.group('[R][SUB] ' + atom$.toString() + ', callback=' + callback$.toString());\n fn();\n console.groupEnd();\n };\n\n unsub = <T>(atom$: State<T> | Computed<T>, callback$: CallbackFunc<T>, fn: () => void) => {\n if (!this.shouldLog(atom$, 'unsub')) {\n fn();\n return;\n }\n\n console.group('[R][UNS] ' + atom$.toString() + ', callback=' + callback$.toString());\n fn();\n console.groupEnd();\n };\n\n mount = <T>(atom$: State<T> | Computed<T>) => {\n if (!this.shouldLog(atom$, 'mount')) {\n return;\n }\n\n console.log('[R][MNT] ' + atom$.toString());\n };\n\n unmount = <T>(atom$: State<T> | Computed<T>) => {\n if (!this.shouldLog(atom$, 'unmount')) {\n return;\n }\n\n console.log('[R][UNM] ' + atom$.toString());\n };\n\n notify = <T>(callback$: CallbackFunc<T>, fn: () => T) => {\n if (!this.shouldLog(callback$, 'notify')) {\n fn();\n return;\n }\n\n console.group('[R][NTF] ' + callback$.toString());\n console.log('ret:', fn());\n console.groupEnd();\n };\n}\n\nexport function createDebugStore(\n watches: (AtomWatch | string | RegExp | State<unknown> | Computed<unknown> | Command<unknown, unknown[]>)[] = [],\n defaultActions?: StoreEventType[],\n): DebugStore {\n const parsedDefaultActions = defaultActions ? new Set(defaultActions) : undefined;\n\n const parsedWatches = watches.map((watch): AtomWatch => {\n if (typeof watch === 'string' || watch instanceof RegExp) {\n return { target: watch, actions: parsedDefaultActions };\n }\n\n if ('target' in watch) {\n return watch;\n }\n\n return { target: watch, actions: parsedDefaultActions };\n });\n\n const interceptor = new ConsoleInterceptor(parsedWatches);\n return createDebugStoreInternal(interceptor);\n}\n"],"names":["withSetInterceptor","fn","writable$","interceptor","result","called","wrappedFn","data","_len","arguments","length","args","Array","_key","apply","concat","Error","withGetInterceptor","signal","withComputedInterceptor","val","withGeValInterceptor","withSubInterceptor","callback$","undefined","withUnsubInterceptor","withNotifyInterceptor","canReadAsCompute","atom","isComputedState","state","currentValue","context","_context$stateMap$get","stateMap","get","shouldDistinct","value","checkEpoch","readComputed","computedState","mutation","_iterator","_createForOfIteratorHelper","dependencies","entries","_step","s","n","done","_step$value","_slicedToArray","dep","epoch","depEpoch","err","e","f","tryGetCached","computed$","signalState","dirtyMarkers","has","id","mounted","wrapGet","readSignal","mount","callerComputed$","callerState","readDeps","Map","dep$","depState","set","callerMounted","readDepts","add","getOrInitComputedState","cleanupMissingDependencies","unmount","lastDeps","currDeps","_iterator2","keys","_step2","key","_depState$mounted","evaluateComputed","_wrapGet","_wrapGet2","_get","evalVal","read","depAtom","_context$interceptor","_computedState$abortC","_computed$$debugLabel","abortController","abort","debugLabel","AbortController","pushDirtyMarkers","_signalState$mounted$","_signalState$mounted","queue","from","nextQueue","push","pullEvaluate","_signalState$mounted$2","_signalState$mounted2","_signalState$mounted$3","_signalState$mounted3","_iterator3","listeners","_step3","listener","pendingListeners","_iterator4","_step4","_computedState$mounte","_computedState$mounte2","_iterator5","_step5","_i","_Array$from","propagationChanges","innerSetState","signal$","newValue","_ref","updater","init","write","visitor","createMutation","Set","_len2","_key2","readState","atomState","initState","unmountComputedDependencies","_Array$from$_i","mountComputedDependencies","_i2","_Array$from2","_Array$from2$_i","initMount","_context$interceptor$","call","_context$stateMap$get2","doUnmount","_context$interceptor2","_context$interceptor3","size","subSingleSignal","_context$interceptor5","unsub","_context$interceptor4","addEventListener","once","sub","notify","_loop","_context$interceptor6","cachedState","computed","innerMount","signals$","options","isArray","controller","AbortSignal","any","forEach","ret","innerSet","StoreImpl","_this","_this$options","_classCallCheck","_defineProperty","WeakMap","_createClass","targets$","cb$","DebugStoreImpl","_StoreImpl","_callSuper","atoms","cb","_options$signal","atomList","_this$mountedAtomList","mountedAtomListenersCount","_superPropGet","decount","_this$mountedAtomList2","count","_toConsumableArray","map","_ref2","getReadDependencies","_atomState$mounted$re","_atomState$mounted","getReadDependents","subscribedAtoms","mountState","fillDependenciesGraph","child$","childState","_inherits","createDebugStoreInternal","ConsoleInterceptor","watches","action","some","watch","atomMatched","target","toString","includes","RegExp","test","actions","atom$","shouldLog","console","group","log","groupEnd","_console","createDebugStore","defaultActions","parsedDefaultActions","parsedWatches"],"mappings":"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"}
|
package/debug/index.d.cts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
type Updater<T> = (current: T) => T;
|
|
2
|
+
type StateArg<T> = T | Updater<T>;
|
|
2
3
|
interface Setter {
|
|
3
|
-
<T>(state: State<T>, val:
|
|
4
|
+
<T>(state: State<T>, val: StateArg<T>): void;
|
|
4
5
|
<T, Args extends unknown[]>(command: Command<T, Args>, ...args: Args): T;
|
|
5
6
|
}
|
|
6
|
-
type Getter = <T>(readable:
|
|
7
|
+
type Getter = <T>(readable: Signal<T>) => T;
|
|
7
8
|
interface GetterOptions {
|
|
8
9
|
signal: AbortSignal;
|
|
9
10
|
}
|
|
@@ -13,21 +14,24 @@ type Write<T, Args extends unknown[]> = (visitor: {
|
|
|
13
14
|
set: Setter;
|
|
14
15
|
}, ...args: Args) => T;
|
|
15
16
|
interface State<T> {
|
|
17
|
+
id: number;
|
|
16
18
|
init: T;
|
|
17
19
|
debugLabel?: string;
|
|
18
20
|
toString: () => string;
|
|
19
21
|
}
|
|
20
22
|
interface Computed<T> {
|
|
23
|
+
id: number;
|
|
21
24
|
read: Read<T>;
|
|
22
25
|
debugLabel?: string;
|
|
23
26
|
toString: () => string;
|
|
24
27
|
}
|
|
25
28
|
interface Command<T, Args extends unknown[]> {
|
|
29
|
+
id: number;
|
|
26
30
|
write: Write<T, Args>;
|
|
27
31
|
debugLabel?: string;
|
|
28
32
|
toString: () => string;
|
|
29
33
|
}
|
|
30
|
-
type
|
|
34
|
+
type Signal<T> = State<T> | Computed<T>;
|
|
31
35
|
|
|
32
36
|
interface Store {
|
|
33
37
|
get: Getter;
|
|
@@ -38,12 +42,19 @@ interface SubscribeOptions {
|
|
|
38
42
|
signal?: AbortSignal;
|
|
39
43
|
}
|
|
40
44
|
type CallbackFunc<T> = Command<T, []>;
|
|
41
|
-
type Subscribe = (atoms$:
|
|
45
|
+
type Subscribe = (atoms$: Signal<unknown>[] | Signal<unknown>, callback: CallbackFunc<unknown>, options?: SubscribeOptions) => () => void;
|
|
42
46
|
type StoreEventType = 'set' | 'get' | 'sub' | 'unsub' | 'mount' | 'unmount' | 'notify' | 'computed';
|
|
43
47
|
|
|
44
48
|
type NestedAtom = (State<unknown> | Computed<unknown> | Command<unknown, unknown[]> | NestedAtom)[];
|
|
49
|
+
interface DAGNode<T> {
|
|
50
|
+
signal: Signal<T>;
|
|
51
|
+
val: T;
|
|
52
|
+
epoch: number;
|
|
53
|
+
}
|
|
54
|
+
type Edge = [DAGNode<unknown>, DAGNode<unknown>, number];
|
|
45
55
|
interface DebugStore extends Store {
|
|
46
56
|
getReadDependencies: (atom: Computed<unknown>) => NestedAtom;
|
|
57
|
+
getDependenciesGraph: (atom: Computed<unknown>) => Edge[];
|
|
47
58
|
getReadDependents: (atom: State<unknown> | Computed<unknown>) => NestedAtom;
|
|
48
59
|
isMounted: (atom: State<unknown> | Computed<unknown>) => boolean;
|
|
49
60
|
getSubscribeGraph: () => NestedAtom;
|
|
@@ -55,5 +66,5 @@ interface AtomWatch {
|
|
|
55
66
|
}
|
|
56
67
|
declare function createDebugStore(watches?: (AtomWatch | string | RegExp | State<unknown> | Computed<unknown> | Command<unknown, unknown[]>)[], defaultActions?: StoreEventType[]): DebugStore;
|
|
57
68
|
|
|
58
|
-
export { type DebugStore, createDebugStore };
|
|
69
|
+
export { type DAGNode, type DebugStore, type Edge, createDebugStore };
|
|
59
70
|
//# sourceMappingURL=index.d.cts.map
|
package/debug/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
type Updater<T> = (current: T) => T;
|
|
2
|
+
type StateArg<T> = T | Updater<T>;
|
|
2
3
|
interface Setter {
|
|
3
|
-
<T>(state: State<T>, val:
|
|
4
|
+
<T>(state: State<T>, val: StateArg<T>): void;
|
|
4
5
|
<T, Args extends unknown[]>(command: Command<T, Args>, ...args: Args): T;
|
|
5
6
|
}
|
|
6
|
-
type Getter = <T>(readable:
|
|
7
|
+
type Getter = <T>(readable: Signal<T>) => T;
|
|
7
8
|
interface GetterOptions {
|
|
8
9
|
signal: AbortSignal;
|
|
9
10
|
}
|
|
@@ -13,21 +14,24 @@ type Write<T, Args extends unknown[]> = (visitor: {
|
|
|
13
14
|
set: Setter;
|
|
14
15
|
}, ...args: Args) => T;
|
|
15
16
|
interface State<T> {
|
|
17
|
+
id: number;
|
|
16
18
|
init: T;
|
|
17
19
|
debugLabel?: string;
|
|
18
20
|
toString: () => string;
|
|
19
21
|
}
|
|
20
22
|
interface Computed<T> {
|
|
23
|
+
id: number;
|
|
21
24
|
read: Read<T>;
|
|
22
25
|
debugLabel?: string;
|
|
23
26
|
toString: () => string;
|
|
24
27
|
}
|
|
25
28
|
interface Command<T, Args extends unknown[]> {
|
|
29
|
+
id: number;
|
|
26
30
|
write: Write<T, Args>;
|
|
27
31
|
debugLabel?: string;
|
|
28
32
|
toString: () => string;
|
|
29
33
|
}
|
|
30
|
-
type
|
|
34
|
+
type Signal<T> = State<T> | Computed<T>;
|
|
31
35
|
|
|
32
36
|
interface Store {
|
|
33
37
|
get: Getter;
|
|
@@ -38,12 +42,19 @@ interface SubscribeOptions {
|
|
|
38
42
|
signal?: AbortSignal;
|
|
39
43
|
}
|
|
40
44
|
type CallbackFunc<T> = Command<T, []>;
|
|
41
|
-
type Subscribe = (atoms$:
|
|
45
|
+
type Subscribe = (atoms$: Signal<unknown>[] | Signal<unknown>, callback: CallbackFunc<unknown>, options?: SubscribeOptions) => () => void;
|
|
42
46
|
type StoreEventType = 'set' | 'get' | 'sub' | 'unsub' | 'mount' | 'unmount' | 'notify' | 'computed';
|
|
43
47
|
|
|
44
48
|
type NestedAtom = (State<unknown> | Computed<unknown> | Command<unknown, unknown[]> | NestedAtom)[];
|
|
49
|
+
interface DAGNode<T> {
|
|
50
|
+
signal: Signal<T>;
|
|
51
|
+
val: T;
|
|
52
|
+
epoch: number;
|
|
53
|
+
}
|
|
54
|
+
type Edge = [DAGNode<unknown>, DAGNode<unknown>, number];
|
|
45
55
|
interface DebugStore extends Store {
|
|
46
56
|
getReadDependencies: (atom: Computed<unknown>) => NestedAtom;
|
|
57
|
+
getDependenciesGraph: (atom: Computed<unknown>) => Edge[];
|
|
47
58
|
getReadDependents: (atom: State<unknown> | Computed<unknown>) => NestedAtom;
|
|
48
59
|
isMounted: (atom: State<unknown> | Computed<unknown>) => boolean;
|
|
49
60
|
getSubscribeGraph: () => NestedAtom;
|
|
@@ -55,5 +66,5 @@ interface AtomWatch {
|
|
|
55
66
|
}
|
|
56
67
|
declare function createDebugStore(watches?: (AtomWatch | string | RegExp | State<unknown> | Computed<unknown> | Command<unknown, unknown[]>)[], defaultActions?: StoreEventType[]): DebugStore;
|
|
57
68
|
|
|
58
|
-
export { type DebugStore, createDebugStore };
|
|
69
|
+
export { type DAGNode, type DebugStore, type Edge, createDebugStore };
|
|
59
70
|
//# sourceMappingURL=index.d.ts.map
|