ccstate 4.0.0 → 4.2.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 +22 -29
- package/core/index.cjs +577 -788
- package/core/index.cjs.map +1 -0
- package/core/index.d.cts +7 -3
- package/core/index.d.cts.map +1 -0
- package/core/index.d.ts +7 -3
- package/core/index.d.ts.map +1 -0
- package/core/index.js +577 -788
- package/core/index.js.map +1 -0
- package/debug/index.cjs +584 -796
- package/debug/index.cjs.map +1 -0
- package/debug/index.d.cts +7 -3
- package/debug/index.d.cts.map +1 -0
- package/debug/index.d.ts +7 -3
- package/debug/index.d.ts.map +1 -0
- package/debug/index.js +584 -796
- package/debug/index.js.map +1 -0
- package/index.cjs +592 -801
- package/index.cjs.map +1 -0
- package/index.d.cts +7 -3
- package/index.d.cts.map +1 -0
- package/index.d.ts +7 -3
- package/index.d.ts.map +1 -0
- package/index.js +592 -801
- package/index.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/core/signal/factory.ts","../../src/core/interceptor.ts","../../src/core/typing-util.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"],"sourcesContent":["import type { Computed, Command, Read, State, Write } from '../../../types/core/signal';\n\ninterface Options {\n debugLabel?: string;\n}\n\nlet globalId = 0;\n\nconst generateToString = (id: number, prefix: string, debugLabel?: string) => {\n const label = `${prefix}${String(id)}${debugLabel ? ':' + debugLabel : ''}`;\n return () => label;\n};\n\nexport function state<T>(init: T, options?: Options): State<T> {\n const id = globalId++;\n const ret: State<T> = {\n id,\n init,\n toString: generateToString(id, 'S', options?.debugLabel),\n };\n\n if (options?.debugLabel) {\n ret.debugLabel = options.debugLabel;\n }\n return ret;\n}\n\nexport function computed<T>(read: Read<T>, options?: Options): Computed<T> {\n const id = globalId++;\n const ret: Computed<T> = {\n id,\n read,\n toString: generateToString(id, 'CPT', options?.debugLabel),\n };\n\n if (options?.debugLabel) {\n ret.debugLabel = options.debugLabel;\n }\n return ret;\n}\n\nexport function command<T, Args extends unknown[]>(write: Write<T, Args>, options?: Options): Command<T, Args> {\n const id = globalId++;\n const ret: Command<T, Args> = {\n id,\n write,\n toString: generateToString(id, 'CMD', options?.debugLabel),\n };\n if (options?.debugLabel) {\n ret.debugLabel = options.debugLabel;\n }\n return ret;\n}\n","import type { Command, Computed, Signal, State, Updater } from '../../types/core/signal';\nimport type {\n CallbackFunc,\n ComputedState,\n InterceptorComputed,\n InterceptorGet,\n InterceptorNotify,\n InterceptorSet,\n InterceptorSub,\n InterceptorUnsub,\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 unknown[]>(\n fn: () => T | undefined,\n writable$: State<T> | Command<T, Args>,\n interceptor: InterceptorSet | undefined,\n ...args: [T | Updater<T>] | 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 as Args));\n } else {\n interceptor(writable$, wrappedFn, args[0] as T | Updater<T>);\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 { 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';\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 computedState.val = evalVal;\n computedState.epoch += 1;\n\n return computedState;\n}\n","import type { Command, State, Updater, Computed, Signal } from '../../../types/core/signal';\nimport type { Mutation, ReadComputed, StoreContext, StateState, StoreGet, StoreSet } from '../../../types/core/store';\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: T | Updater<T>,\n) {\n const newValue: T =\n typeof val === 'function'\n ? (val as Updater<T>)((context.stateMap.get(signal$)?.val as T | undefined) ?? signal$.init)\n : val;\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 unknown[]>(\n readComputed: ReadComputed,\n writable$: State<T> | Command<T, Args>,\n context: StoreContext,\n mutation: Mutation,\n ...args: [T | Updater<T>] | 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 as 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 unknown[]>(\n signal$: State<T> | Command<T, Args>,\n ...args: [T | Updater<T>] | 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, Updater, 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} 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 unknown[]>(\n atom: State<T> | Command<T, Args>,\n context: StoreContext,\n ...args: [T | Updater<T>] | 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}) as StoreSet;\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 unknown[]>(\n atom: State<T> | Command<T, Args>,\n ...args: [T | Updater<T>] | 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"],"names":["globalId","generateToString","id","prefix","debugLabel","label","concat","String","state","init","options","ret","toString","computed","read","command","write","withSetInterceptor","fn","writable$","interceptor","result","called","wrappedFn","data","_len","arguments","length","args","Array","_key","apply","_toConsumableArray","Error","withGetInterceptor","signal","withComputedInterceptor","val","withGeValInterceptor","withSubInterceptor","callback$","undefined","withUnsubInterceptor","withNotifyInterceptor","canReadAsCompute","atom","isComputedState","checkEpoch","readComputed","computedState","context","mutation","_iterator","_createForOfIteratorHelper","dependencies","entries","_step","s","n","done","_context$stateMap$get","_step$value","_slicedToArray","value","dep","epoch","depEpoch","stateMap","get","err","e","f","tryGetCached","computed$","signalState","dirtyMarkers","has","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","depAtom","_context$interceptor","_computedState$abortC","_computed$$debugLabel","abortController","abort","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$","_ref","newValue","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","innerMount","signals$","isArray","controller","AbortSignal","any","forEach","innerSet","StoreImpl","_this","_this$options","_classCallCheck","_defineProperty","WeakMap","_createClass","targets$","cb$","createStore","defaultStore","getDefaultStore"],"mappings":"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"}
|