ccstate 3.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.cts CHANGED
@@ -49,6 +49,7 @@ type Subscribe = (atoms$: ReadableAtom<unknown>[] | ReadableAtom<unknown>, callb
49
49
  type StoreEventType = 'set' | 'get' | 'sub' | 'unsub' | 'mount' | 'unmount' | 'notify' | 'computed';
50
50
 
51
51
  declare function createStore(): Store;
52
+ declare function getDefaultStore(): Store;
52
53
 
53
54
  type NestedAtom = (State<unknown> | Computed<unknown> | Command<unknown, unknown[]> | NestedAtom)[];
54
55
  interface DebugStore extends Store {
@@ -64,4 +65,5 @@ interface AtomWatch {
64
65
  }
65
66
  declare function createDebugStore(watches?: (AtomWatch | string | RegExp | State<unknown> | Computed<unknown> | Command<unknown, unknown[]>)[], defaultActions?: StoreEventType[]): DebugStore;
66
67
 
67
- export { type Command, type Computed, type DebugStore, type Getter, type Read, type Setter, type State, type Store, type Subscribe, type Updater, type Write, command, computed, createDebugStore, createStore, state };
68
+ export { type Command, type Computed, type DebugStore, type Getter, type Read, type Setter, type State, type Store, type Subscribe, type Updater, type Write, command, computed, createDebugStore, createStore, getDefaultStore, state };
69
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/index.d.ts CHANGED
@@ -49,6 +49,7 @@ type Subscribe = (atoms$: ReadableAtom<unknown>[] | ReadableAtom<unknown>, callb
49
49
  type StoreEventType = 'set' | 'get' | 'sub' | 'unsub' | 'mount' | 'unmount' | 'notify' | 'computed';
50
50
 
51
51
  declare function createStore(): Store;
52
+ declare function getDefaultStore(): Store;
52
53
 
53
54
  type NestedAtom = (State<unknown> | Computed<unknown> | Command<unknown, unknown[]> | NestedAtom)[];
54
55
  interface DebugStore extends Store {
@@ -64,4 +65,5 @@ interface AtomWatch {
64
65
  }
65
66
  declare function createDebugStore(watches?: (AtomWatch | string | RegExp | State<unknown> | Computed<unknown> | Command<unknown, unknown[]>)[], defaultActions?: StoreEventType[]): DebugStore;
66
67
 
67
- export { type Command, type Computed, type DebugStore, type Getter, type Read, type Setter, type State, type Store, type Subscribe, type Updater, type Write, command, computed, createDebugStore, createStore, state };
68
+ export { type Command, type Computed, type DebugStore, type Getter, type Read, type Setter, type State, type Store, type Subscribe, type Updater, type Write, command, computed, createDebugStore, createStore, getDefaultStore, state };
69
+ //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/index.js CHANGED
@@ -596,7 +596,7 @@ var AtomManager = /*#__PURE__*/function () {
596
596
  }
597
597
  var computedInterceptor = (_this$options = this.options) === null || _this$options === void 0 || (_this$options = _this$options.interceptor) === null || _this$options === void 0 ? void 0 : _this$options.computed;
598
598
  if (!computedInterceptor) {
599
- return this.computeComputedAtom(atom);
599
+ return this.computeComputedAtom(atom, ignoreMounted);
600
600
  }
601
601
  var result = {
602
602
  called: false
@@ -604,7 +604,7 @@ var AtomManager = /*#__PURE__*/function () {
604
604
  computedInterceptor(atom, function () {
605
605
  result = {
606
606
  called: true,
607
- data: _this2.computeComputedAtom(atom)
607
+ data: _this2.computeComputedAtom(atom, ignoreMounted)
608
608
  };
609
609
  return result.data.val;
610
610
  });
@@ -618,6 +618,7 @@ var AtomManager = /*#__PURE__*/function () {
618
618
  value: function computeComputedAtom(atom) {
619
619
  var _this3 = this,
620
620
  _this$options2;
621
+ var ignoreMounted = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
621
622
  var self = atom;
622
623
  var atomState = this.atomStateMap.get(self);
623
624
  if (!atomState) {
@@ -631,7 +632,7 @@ var AtomManager = /*#__PURE__*/function () {
631
632
  var readDeps = new Map();
632
633
  atomState.dependencies = readDeps;
633
634
  var wrappedGet = function wrappedGet(depAtom) {
634
- var depState = _this3.readAtomState(depAtom);
635
+ var depState = _this3.readAtomState(depAtom, ignoreMounted);
635
636
 
636
637
  // get 可能发生在异步过程中,当重复调用时,只有最新的 get 过程会修改 deps
637
638
  if (atomState.dependencies === readDeps) {
@@ -1074,6 +1075,13 @@ function createStore() {
1074
1075
  var listenerManager = new ListenerManager();
1075
1076
  return new StoreImpl(atomManager, listenerManager);
1076
1077
  }
1078
+ var defaultStore = undefined;
1079
+ function getDefaultStore() {
1080
+ if (!defaultStore) {
1081
+ defaultStore = createStore();
1082
+ }
1083
+ return defaultStore;
1084
+ }
1077
1085
 
1078
1086
  var DebugStoreImpl = /*#__PURE__*/function (_StoreImpl) {
1079
1087
  function DebugStoreImpl() {
@@ -1195,15 +1203,15 @@ var ConsoleInterceptor = /*#__PURE__*/_createClass(function ConsoleInterceptor(w
1195
1203
  console.groupEnd();
1196
1204
  });
1197
1205
  _defineProperty(this, "set", function (atom$, fn) {
1206
+ var _console;
1198
1207
  if (!_this.shouldLog(atom$, 'set')) {
1199
1208
  fn();
1200
1209
  return;
1201
1210
  }
1202
- console.group('[R][SET] ' + atom$.toString());
1203
1211
  for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
1204
1212
  args[_key - 2] = arguments[_key];
1205
1213
  }
1206
- console.log('arg:', args);
1214
+ (_console = console).group.apply(_console, ['[R][SET] ' + atom$.toString(), '('].concat(args, [')']));
1207
1215
  console.log('ret:', fn());
1208
1216
  console.groupEnd();
1209
1217
  });
@@ -1251,11 +1259,12 @@ var ConsoleInterceptor = /*#__PURE__*/_createClass(function ConsoleInterceptor(w
1251
1259
  function createDebugStore() {
1252
1260
  var watches = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
1253
1261
  var defaultActions = arguments.length > 1 ? arguments[1] : undefined;
1262
+ var parsedDefaultActions = defaultActions ? new Set(defaultActions) : undefined;
1254
1263
  var parsedWatches = watches.map(function (watch) {
1255
1264
  if (typeof watch === 'string' || watch instanceof RegExp) {
1256
1265
  return {
1257
1266
  target: watch,
1258
- actions: defaultActions ? new Set(defaultActions) : undefined
1267
+ actions: parsedDefaultActions
1259
1268
  };
1260
1269
  }
1261
1270
  if ('target' in watch) {
@@ -1263,11 +1272,12 @@ function createDebugStore() {
1263
1272
  }
1264
1273
  return {
1265
1274
  target: watch,
1266
- actions: defaultActions ? new Set(defaultActions) : undefined
1275
+ actions: parsedDefaultActions
1267
1276
  };
1268
1277
  });
1269
1278
  var interceptor = new ConsoleInterceptor(parsedWatches);
1270
1279
  return createDebugStoreInternal(interceptor);
1271
1280
  }
1272
1281
 
1273
- export { command, computed, createDebugStore, createStore, state };
1282
+ export { command, computed, createDebugStore, createStore, getDefaultStore, state };
1283
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/core/atom.ts","../src/core/atom-manager.ts","../src/core/store.ts","../src/debug/debug-store.ts","../src/debug/console-inspector.ts"],"sourcesContent":["import type { Computed, Command, Read, State, Write } from '../../types/core/atom';\n\ninterface Options {\n debugLabel?: string;\n}\n\nlet globalId = 0;\n\nconst generateToString = (prefix: string, debugLabel?: string) => {\n const id = globalId++;\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 ret: State<T> = {\n init,\n toString: generateToString('V', 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 ret: Computed<T> = {\n read,\n toString: generateToString('C', options?.debugLabel),\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 ret: Command<T, Args> = {\n write,\n toString: generateToString('F', options?.debugLabel),\n };\n if (options?.debugLabel) {\n ret.debugLabel = options.debugLabel;\n }\n return ret;\n}\n","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":["globalId","generateToString","prefix","debugLabel","id","label","concat","String","state","init","options","ret","toString","computed","read","command","write","canReadAsCompute","atom","isComputedState","AtomManager","_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","computeComputedAtom","result","called","data","val","Error","_this3","_this$options2","self","Map","set","lastDeps","readDeps","wrappedGet","depAtom","selfMounted","mount","readDepts","add","getInterceptor","fn","signal","_atomState$abortContr","_self$debugLabel","abortController","abort","AbortController","_iterator2","keys","_step2","has","tryUnmount","readStateAtom","initState","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","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","createStore","defaultStore","getDefaultStore","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","includes","RegExp","test","actions","atom$","shouldLog","console","group","log","groupEnd","_console","callback$","createDebugStore","defaultActions","parsedDefaultActions","parsedWatches"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccstate",
3
- "version": "3.0.0",
3
+ "version": "4.1.0",
4
4
  "description": "CCState Core",
5
5
  "private": false,
6
6
  "repository": {