ccstate 4.2.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/core/index.cjs +25 -18
- package/core/index.cjs.map +1 -1
- package/core/index.d.cts +4 -2
- package/core/index.d.ts +4 -2
- package/core/index.js +25 -18
- package/core/index.js.map +1 -1
- package/debug/index.cjs +61 -6
- package/debug/index.cjs.map +1 -1
- package/debug/index.d.cts +10 -2
- package/debug/index.d.ts +10 -2
- package/debug/index.js +61 -6
- package/debug/index.js.map +1 -1
- package/index.cjs +61 -6
- package/index.cjs.map +1 -1
- package/index.d.cts +11 -2
- package/index.d.ts +11 -2
- package/index.js +61 -6
- package/index.js.map +1 -1
- package/package.json +1 -1
package/core/index.cjs
CHANGED
|
@@ -52,9 +52,6 @@ function _arrayLikeToArray(r, a) {
|
|
|
52
52
|
function _arrayWithHoles(r) {
|
|
53
53
|
if (Array.isArray(r)) return r;
|
|
54
54
|
}
|
|
55
|
-
function _arrayWithoutHoles(r) {
|
|
56
|
-
if (Array.isArray(r)) return _arrayLikeToArray(r);
|
|
57
|
-
}
|
|
58
55
|
function _classCallCheck(a, n) {
|
|
59
56
|
if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
|
|
60
57
|
}
|
|
@@ -125,9 +122,6 @@ function _defineProperty(e, r, t) {
|
|
|
125
122
|
writable: !0
|
|
126
123
|
}) : e[r] = t, e;
|
|
127
124
|
}
|
|
128
|
-
function _iterableToArray(r) {
|
|
129
|
-
if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
|
|
130
|
-
}
|
|
131
125
|
function _iterableToArrayLimit(r, l) {
|
|
132
126
|
var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
133
127
|
if (null != t) {
|
|
@@ -158,15 +152,9 @@ function _iterableToArrayLimit(r, l) {
|
|
|
158
152
|
function _nonIterableRest() {
|
|
159
153
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
160
154
|
}
|
|
161
|
-
function _nonIterableSpread() {
|
|
162
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
163
|
-
}
|
|
164
155
|
function _slicedToArray(r, e) {
|
|
165
156
|
return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
|
|
166
157
|
}
|
|
167
|
-
function _toConsumableArray(r) {
|
|
168
|
-
return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();
|
|
169
|
-
}
|
|
170
158
|
function _toPrimitive(t, r) {
|
|
171
159
|
if ("object" != typeof t || !t) return t;
|
|
172
160
|
var e = t[Symbol.toPrimitive];
|
|
@@ -207,7 +195,7 @@ function withSetInterceptor(fn, writable$, interceptor) {
|
|
|
207
195
|
args[_key - 3] = arguments[_key];
|
|
208
196
|
}
|
|
209
197
|
if ('write' in writable$) {
|
|
210
|
-
interceptor.apply(void 0, [writable$, wrappedFn].concat(
|
|
198
|
+
interceptor.apply(void 0, [writable$, wrappedFn].concat(args));
|
|
211
199
|
} else {
|
|
212
200
|
interceptor(writable$, wrappedFn, args[0]);
|
|
213
201
|
}
|
|
@@ -338,6 +326,14 @@ function isComputedState(state) {
|
|
|
338
326
|
return 'dependencies' in state;
|
|
339
327
|
}
|
|
340
328
|
|
|
329
|
+
function currentValue(signal, context) {
|
|
330
|
+
var _context$stateMap$get;
|
|
331
|
+
return (_context$stateMap$get = context.stateMap.get(signal)) === null || _context$stateMap$get === void 0 ? void 0 : _context$stateMap$get.val;
|
|
332
|
+
}
|
|
333
|
+
function shouldDistinct(signal, value, context) {
|
|
334
|
+
return currentValue(signal, context) === value;
|
|
335
|
+
}
|
|
336
|
+
|
|
341
337
|
function checkEpoch(readComputed, computedState, context, mutation) {
|
|
342
338
|
var _iterator = _createForOfIteratorHelper(computedState.dependencies.entries()),
|
|
343
339
|
_step;
|
|
@@ -443,8 +439,10 @@ function evaluateComputed(readSignal, mount, unmount, computed$, context, mutati
|
|
|
443
439
|
}
|
|
444
440
|
});
|
|
445
441
|
cleanupMissingDependencies(unmount, computed$, lastDeps, dependencies, context, mutation);
|
|
446
|
-
|
|
447
|
-
|
|
442
|
+
if (!shouldDistinct(computed$, evalVal, context)) {
|
|
443
|
+
computedState.val = evalVal;
|
|
444
|
+
computedState.epoch += 1;
|
|
445
|
+
}
|
|
448
446
|
return computedState;
|
|
449
447
|
}
|
|
450
448
|
|
|
@@ -542,8 +540,17 @@ function propagationChanges(readComputed, signalState, context, mutation) {
|
|
|
542
540
|
pullEvaluate(readComputed, signalState, context, mutation);
|
|
543
541
|
}
|
|
544
542
|
function innerSetState(readComputed, signal$, context, mutation, val) {
|
|
545
|
-
var
|
|
546
|
-
|
|
543
|
+
var newValue;
|
|
544
|
+
if (typeof val === 'function') {
|
|
545
|
+
var _ref, _context$stateMap$get;
|
|
546
|
+
var updater = val;
|
|
547
|
+
newValue = updater((_ref = (_context$stateMap$get = context.stateMap.get(signal$)) === null || _context$stateMap$get === void 0 ? void 0 : _context$stateMap$get.val) !== null && _ref !== void 0 ? _ref : signal$.init);
|
|
548
|
+
} else {
|
|
549
|
+
newValue = val;
|
|
550
|
+
}
|
|
551
|
+
if (shouldDistinct(signal$, newValue, context)) {
|
|
552
|
+
return;
|
|
553
|
+
}
|
|
547
554
|
var signalState = context.stateMap.get(signal$);
|
|
548
555
|
if (!signalState) {
|
|
549
556
|
context.stateMap.set(signal$, {
|
|
@@ -565,7 +572,7 @@ function set(readComputed, writable$, context, mutation) {
|
|
|
565
572
|
args[_key - 4] = arguments[_key];
|
|
566
573
|
}
|
|
567
574
|
if ('write' in writable$) {
|
|
568
|
-
return writable$.write.apply(writable$, [mutation.visitor].concat(
|
|
575
|
+
return writable$.write.apply(writable$, [mutation.visitor].concat(args));
|
|
569
576
|
}
|
|
570
577
|
innerSetState(readComputed, writable$, context, mutation, args[0]);
|
|
571
578
|
return;
|
package/core/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","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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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/core/signal/factory.ts","../../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"],"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 } 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"],"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","Error","withGetInterceptor","signal","withComputedInterceptor","val","withGeValInterceptor","withSubInterceptor","callback$","undefined","withUnsubInterceptor","withNotifyInterceptor","canReadAsCompute","atom","isComputedState","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","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$","newValue","_ref","updater","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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"}
|
package/core/index.d.cts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
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
7
|
type Getter = <T>(readable: Signal<T>) => T;
|
|
@@ -49,9 +50,10 @@ interface SubscribeOptions {
|
|
|
49
50
|
}
|
|
50
51
|
type CallbackFunc<T> = Command<T, []>;
|
|
51
52
|
type Subscribe = (atoms$: Signal<unknown>[] | Signal<unknown>, callback: CallbackFunc<unknown>, options?: SubscribeOptions) => () => void;
|
|
53
|
+
type SetArgs<T, CommandArgs extends unknown[]> = [StateArg<T>] | CommandArgs;
|
|
52
54
|
|
|
53
55
|
declare function createStore(): Store;
|
|
54
56
|
declare function getDefaultStore(): Store;
|
|
55
57
|
|
|
56
|
-
export { type Command, type Computed, type Getter, type Read, type Setter, type State, type Store, type Subscribe, type Updater, type Write, command, computed, createStore, getDefaultStore, state };
|
|
58
|
+
export { type Command, type Computed, type Getter, type Read, type SetArgs, type Setter, type State, type StateArg, type Store, type Subscribe, type Updater, type Write, command, computed, createStore, getDefaultStore, state };
|
|
57
59
|
//# sourceMappingURL=index.d.cts.map
|
package/core/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
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
7
|
type Getter = <T>(readable: Signal<T>) => T;
|
|
@@ -49,9 +50,10 @@ interface SubscribeOptions {
|
|
|
49
50
|
}
|
|
50
51
|
type CallbackFunc<T> = Command<T, []>;
|
|
51
52
|
type Subscribe = (atoms$: Signal<unknown>[] | Signal<unknown>, callback: CallbackFunc<unknown>, options?: SubscribeOptions) => () => void;
|
|
53
|
+
type SetArgs<T, CommandArgs extends unknown[]> = [StateArg<T>] | CommandArgs;
|
|
52
54
|
|
|
53
55
|
declare function createStore(): Store;
|
|
54
56
|
declare function getDefaultStore(): Store;
|
|
55
57
|
|
|
56
|
-
export { type Command, type Computed, type Getter, type Read, type Setter, type State, type Store, type Subscribe, type Updater, type Write, command, computed, createStore, getDefaultStore, state };
|
|
58
|
+
export { type Command, type Computed, type Getter, type Read, type SetArgs, type Setter, type State, type StateArg, type Store, type Subscribe, type Updater, type Write, command, computed, createStore, getDefaultStore, state };
|
|
57
59
|
//# sourceMappingURL=index.d.ts.map
|
package/core/index.js
CHANGED
|
@@ -50,9 +50,6 @@ function _arrayLikeToArray(r, a) {
|
|
|
50
50
|
function _arrayWithHoles(r) {
|
|
51
51
|
if (Array.isArray(r)) return r;
|
|
52
52
|
}
|
|
53
|
-
function _arrayWithoutHoles(r) {
|
|
54
|
-
if (Array.isArray(r)) return _arrayLikeToArray(r);
|
|
55
|
-
}
|
|
56
53
|
function _classCallCheck(a, n) {
|
|
57
54
|
if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
|
|
58
55
|
}
|
|
@@ -123,9 +120,6 @@ function _defineProperty(e, r, t) {
|
|
|
123
120
|
writable: !0
|
|
124
121
|
}) : e[r] = t, e;
|
|
125
122
|
}
|
|
126
|
-
function _iterableToArray(r) {
|
|
127
|
-
if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
|
|
128
|
-
}
|
|
129
123
|
function _iterableToArrayLimit(r, l) {
|
|
130
124
|
var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
131
125
|
if (null != t) {
|
|
@@ -156,15 +150,9 @@ function _iterableToArrayLimit(r, l) {
|
|
|
156
150
|
function _nonIterableRest() {
|
|
157
151
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
158
152
|
}
|
|
159
|
-
function _nonIterableSpread() {
|
|
160
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
161
|
-
}
|
|
162
153
|
function _slicedToArray(r, e) {
|
|
163
154
|
return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
|
|
164
155
|
}
|
|
165
|
-
function _toConsumableArray(r) {
|
|
166
|
-
return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();
|
|
167
|
-
}
|
|
168
156
|
function _toPrimitive(t, r) {
|
|
169
157
|
if ("object" != typeof t || !t) return t;
|
|
170
158
|
var e = t[Symbol.toPrimitive];
|
|
@@ -205,7 +193,7 @@ function withSetInterceptor(fn, writable$, interceptor) {
|
|
|
205
193
|
args[_key - 3] = arguments[_key];
|
|
206
194
|
}
|
|
207
195
|
if ('write' in writable$) {
|
|
208
|
-
interceptor.apply(void 0, [writable$, wrappedFn].concat(
|
|
196
|
+
interceptor.apply(void 0, [writable$, wrappedFn].concat(args));
|
|
209
197
|
} else {
|
|
210
198
|
interceptor(writable$, wrappedFn, args[0]);
|
|
211
199
|
}
|
|
@@ -336,6 +324,14 @@ function isComputedState(state) {
|
|
|
336
324
|
return 'dependencies' in state;
|
|
337
325
|
}
|
|
338
326
|
|
|
327
|
+
function currentValue(signal, context) {
|
|
328
|
+
var _context$stateMap$get;
|
|
329
|
+
return (_context$stateMap$get = context.stateMap.get(signal)) === null || _context$stateMap$get === void 0 ? void 0 : _context$stateMap$get.val;
|
|
330
|
+
}
|
|
331
|
+
function shouldDistinct(signal, value, context) {
|
|
332
|
+
return currentValue(signal, context) === value;
|
|
333
|
+
}
|
|
334
|
+
|
|
339
335
|
function checkEpoch(readComputed, computedState, context, mutation) {
|
|
340
336
|
var _iterator = _createForOfIteratorHelper(computedState.dependencies.entries()),
|
|
341
337
|
_step;
|
|
@@ -441,8 +437,10 @@ function evaluateComputed(readSignal, mount, unmount, computed$, context, mutati
|
|
|
441
437
|
}
|
|
442
438
|
});
|
|
443
439
|
cleanupMissingDependencies(unmount, computed$, lastDeps, dependencies, context, mutation);
|
|
444
|
-
|
|
445
|
-
|
|
440
|
+
if (!shouldDistinct(computed$, evalVal, context)) {
|
|
441
|
+
computedState.val = evalVal;
|
|
442
|
+
computedState.epoch += 1;
|
|
443
|
+
}
|
|
446
444
|
return computedState;
|
|
447
445
|
}
|
|
448
446
|
|
|
@@ -540,8 +538,17 @@ function propagationChanges(readComputed, signalState, context, mutation) {
|
|
|
540
538
|
pullEvaluate(readComputed, signalState, context, mutation);
|
|
541
539
|
}
|
|
542
540
|
function innerSetState(readComputed, signal$, context, mutation, val) {
|
|
543
|
-
var
|
|
544
|
-
|
|
541
|
+
var newValue;
|
|
542
|
+
if (typeof val === 'function') {
|
|
543
|
+
var _ref, _context$stateMap$get;
|
|
544
|
+
var updater = val;
|
|
545
|
+
newValue = updater((_ref = (_context$stateMap$get = context.stateMap.get(signal$)) === null || _context$stateMap$get === void 0 ? void 0 : _context$stateMap$get.val) !== null && _ref !== void 0 ? _ref : signal$.init);
|
|
546
|
+
} else {
|
|
547
|
+
newValue = val;
|
|
548
|
+
}
|
|
549
|
+
if (shouldDistinct(signal$, newValue, context)) {
|
|
550
|
+
return;
|
|
551
|
+
}
|
|
545
552
|
var signalState = context.stateMap.get(signal$);
|
|
546
553
|
if (!signalState) {
|
|
547
554
|
context.stateMap.set(signal$, {
|
|
@@ -563,7 +570,7 @@ function set(readComputed, writable$, context, mutation) {
|
|
|
563
570
|
args[_key - 4] = arguments[_key];
|
|
564
571
|
}
|
|
565
572
|
if ('write' in writable$) {
|
|
566
|
-
return writable$.write.apply(writable$, [mutation.visitor].concat(
|
|
573
|
+
return writable$.write.apply(writable$, [mutation.visitor].concat(args));
|
|
567
574
|
}
|
|
568
575
|
innerSetState(readComputed, writable$, context, mutation, args[0]);
|
|
569
576
|
return;
|