cross-state 0.6.4 → 0.6.7

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.
Files changed (148) hide show
  1. package/dist/cjs/_virtual/use-sync-external-store-with-selector.development.cjs +103 -0
  2. package/dist/cjs/_virtual/use-sync-external-store-with-selector.development.cjs.map +1 -0
  3. package/dist/cjs/_virtual/use-sync-external-store-with-selector.development2.cjs +5 -0
  4. package/dist/cjs/_virtual/use-sync-external-store-with-selector.development2.cjs.map +1 -0
  5. package/dist/cjs/_virtual/use-sync-external-store-with-selector.production.min.cjs +71 -0
  6. package/dist/cjs/_virtual/use-sync-external-store-with-selector.production.min.cjs.map +1 -0
  7. package/dist/cjs/_virtual/use-sync-external-store-with-selector.production.min2.cjs +5 -0
  8. package/dist/cjs/_virtual/use-sync-external-store-with-selector.production.min2.cjs.map +1 -0
  9. package/dist/cjs/_virtual/with-selector.cjs +12 -0
  10. package/dist/cjs/_virtual/with-selector.cjs.map +1 -0
  11. package/dist/cjs/_virtual/with-selector2.cjs +13 -0
  12. package/dist/cjs/_virtual/with-selector2.cjs.map +1 -0
  13. package/dist/cjs/core/cache.cjs +227 -0
  14. package/dist/cjs/core/cache.cjs.map +1 -0
  15. package/dist/cjs/core/resourceGroup.cjs +53 -0
  16. package/dist/cjs/core/resourceGroup.cjs.map +1 -0
  17. package/dist/cjs/core/store.cjs +259 -0
  18. package/dist/cjs/core/store.cjs.map +1 -0
  19. package/dist/cjs/immer/immerActions.cjs +10 -0
  20. package/dist/cjs/immer/immerActions.cjs.map +1 -0
  21. package/dist/cjs/immer.cjs +2 -7
  22. package/dist/cjs/immer.cjs.map +1 -1
  23. package/dist/cjs/index.cjs +19 -290
  24. package/dist/cjs/index.cjs.map +1 -1
  25. package/dist/cjs/lib/calcDuration.cjs +9 -0
  26. package/dist/cjs/lib/calcDuration.cjs.map +1 -0
  27. package/dist/cjs/lib/calculationHelper.cjs +140 -0
  28. package/dist/cjs/lib/calculationHelper.cjs.map +1 -0
  29. package/dist/cjs/lib/callable.cjs +11 -0
  30. package/dist/cjs/lib/callable.cjs.map +1 -0
  31. package/dist/cjs/lib/clone.cjs +19 -0
  32. package/dist/cjs/lib/clone.cjs.map +1 -0
  33. package/dist/cjs/lib/debounce.cjs +28 -0
  34. package/dist/cjs/lib/debounce.cjs.map +1 -0
  35. package/dist/cjs/lib/equals.cjs +5 -0
  36. package/dist/cjs/lib/equals.cjs.map +1 -0
  37. package/dist/cjs/lib/forwardError.cjs +9 -0
  38. package/dist/cjs/lib/forwardError.cjs.map +1 -0
  39. package/dist/cjs/lib/hash.cjs +19 -0
  40. package/dist/cjs/lib/hash.cjs.map +1 -0
  41. package/dist/cjs/lib/instanceCache.cjs +68 -0
  42. package/dist/cjs/lib/instanceCache.cjs.map +1 -0
  43. package/dist/cjs/lib/makeSelector.cjs +14 -0
  44. package/dist/cjs/lib/makeSelector.cjs.map +1 -0
  45. package/dist/cjs/lib/propAccess.cjs +66 -0
  46. package/dist/cjs/lib/propAccess.cjs.map +1 -0
  47. package/dist/cjs/lib/queue.cjs +61 -0
  48. package/dist/cjs/lib/queue.cjs.map +1 -0
  49. package/dist/cjs/lib/standardMethods.cjs +78 -0
  50. package/dist/cjs/lib/standardMethods.cjs.map +1 -0
  51. package/dist/cjs/lib/throttle.cjs +25 -0
  52. package/dist/cjs/lib/throttle.cjs.map +1 -0
  53. package/dist/cjs/lib/trackingProxy.cjs +39 -0
  54. package/dist/cjs/lib/trackingProxy.cjs.map +1 -0
  55. package/dist/cjs/react/read.cjs +15 -0
  56. package/dist/cjs/react/read.cjs.map +1 -0
  57. package/dist/cjs/react/storeScope.cjs +31 -0
  58. package/dist/cjs/react/storeScope.cjs.map +1 -0
  59. package/dist/cjs/react/useCache.cjs +31 -0
  60. package/dist/cjs/react/useCache.cjs.map +1 -0
  61. package/dist/cjs/react/useProp.cjs +9 -0
  62. package/dist/cjs/react/useProp.cjs.map +1 -0
  63. package/dist/cjs/react/useStore.cjs +51 -0
  64. package/dist/cjs/react/useStore.cjs.map +1 -0
  65. package/dist/cjs/react.cjs +11 -264
  66. package/dist/cjs/react.cjs.map +1 -1
  67. package/dist/es/_virtual/use-sync-external-store-with-selector.development.js +103 -0
  68. package/dist/es/_virtual/use-sync-external-store-with-selector.development.js.map +1 -0
  69. package/dist/es/_virtual/use-sync-external-store-with-selector.development2.js +5 -0
  70. package/dist/es/_virtual/use-sync-external-store-with-selector.development2.js.map +1 -0
  71. package/dist/es/_virtual/use-sync-external-store-with-selector.production.min.js +71 -0
  72. package/dist/es/_virtual/use-sync-external-store-with-selector.production.min.js.map +1 -0
  73. package/dist/es/_virtual/use-sync-external-store-with-selector.production.min2.js +5 -0
  74. package/dist/es/_virtual/use-sync-external-store-with-selector.production.min2.js.map +1 -0
  75. package/dist/es/_virtual/with-selector.js +11 -0
  76. package/dist/es/_virtual/with-selector.js.map +1 -0
  77. package/dist/es/_virtual/with-selector2.js +14 -0
  78. package/dist/es/_virtual/with-selector2.js.map +1 -0
  79. package/dist/es/core/cache.js +227 -0
  80. package/dist/es/core/cache.js.map +1 -0
  81. package/dist/es/core/resourceGroup.js +53 -0
  82. package/dist/es/core/resourceGroup.js.map +1 -0
  83. package/dist/es/core/store.js +259 -0
  84. package/dist/es/core/store.js.map +1 -0
  85. package/dist/es/{immer.mjs → immer/immerActions.js} +1 -1
  86. package/dist/es/immer/immerActions.js.map +1 -0
  87. package/dist/es/immer.js +5 -0
  88. package/dist/es/immer.js.map +1 -0
  89. package/dist/es/index.js +22 -0
  90. package/dist/es/index.js.map +1 -0
  91. package/dist/es/lib/calcDuration.js +9 -0
  92. package/dist/es/lib/calcDuration.js.map +1 -0
  93. package/dist/es/lib/calculationHelper.js +140 -0
  94. package/dist/es/lib/calculationHelper.js.map +1 -0
  95. package/dist/es/lib/callable.js +11 -0
  96. package/dist/es/lib/callable.js.map +1 -0
  97. package/dist/es/lib/clone.js +19 -0
  98. package/dist/es/lib/clone.js.map +1 -0
  99. package/dist/es/lib/debounce.js +28 -0
  100. package/dist/es/lib/debounce.js.map +1 -0
  101. package/dist/es/lib/equals.js +5 -0
  102. package/dist/es/lib/equals.js.map +1 -0
  103. package/dist/es/lib/forwardError.js +9 -0
  104. package/dist/es/lib/forwardError.js.map +1 -0
  105. package/dist/es/lib/hash.js +19 -0
  106. package/dist/es/lib/hash.js.map +1 -0
  107. package/dist/es/lib/instanceCache.js +68 -0
  108. package/dist/es/lib/instanceCache.js.map +1 -0
  109. package/dist/es/lib/makeSelector.js +14 -0
  110. package/dist/es/lib/makeSelector.js.map +1 -0
  111. package/dist/es/lib/propAccess.js +66 -0
  112. package/dist/es/lib/propAccess.js.map +1 -0
  113. package/dist/es/lib/queue.js +61 -0
  114. package/dist/es/lib/queue.js.map +1 -0
  115. package/dist/es/lib/standardMethods.js +78 -0
  116. package/dist/es/lib/standardMethods.js.map +1 -0
  117. package/dist/es/lib/throttle.js +25 -0
  118. package/dist/es/lib/throttle.js.map +1 -0
  119. package/dist/es/lib/trackingProxy.js +39 -0
  120. package/dist/es/lib/trackingProxy.js.map +1 -0
  121. package/dist/es/react/read.js +15 -0
  122. package/dist/es/react/read.js.map +1 -0
  123. package/dist/es/react/storeScope.js +31 -0
  124. package/dist/es/react/storeScope.js.map +1 -0
  125. package/dist/es/react/useCache.js +31 -0
  126. package/dist/es/react/useCache.js.map +1 -0
  127. package/dist/es/react/useProp.js +9 -0
  128. package/dist/es/react/useProp.js.map +1 -0
  129. package/dist/es/react/useStore.js +51 -0
  130. package/dist/es/react/useStore.js.map +1 -0
  131. package/dist/es/react.js +14 -0
  132. package/dist/es/react.js.map +1 -0
  133. package/dist/types/core/cache.d.ts +19 -13
  134. package/dist/types/core/store.d.ts +6 -4
  135. package/dist/types/lib/callable.d.ts +4 -0
  136. package/dist/types/lib/instanceCache.d.ts +2 -2
  137. package/dist/types/react/useCache.d.ts +1 -1
  138. package/package.json +8 -8
  139. package/dist/cjs/hash.cjs +0 -715
  140. package/dist/cjs/hash.cjs.map +0 -1
  141. package/dist/es/hash.mjs +0 -716
  142. package/dist/es/hash.mjs.map +0 -1
  143. package/dist/es/immer.mjs.map +0 -1
  144. package/dist/es/index.mjs +0 -294
  145. package/dist/es/index.mjs.map +0 -1
  146. package/dist/es/react.mjs +0 -267
  147. package/dist/es/react.mjs.map +0 -1
  148. package/dist/types/lib/bind.d.ts +0 -1
@@ -13,24 +13,30 @@ export interface CacheFunction<T, Args extends any[] = []> {
13
13
  }, ...args: Args): Promise<T>;
14
14
  }
15
15
  export interface CacheOptions<T> {
16
- invalidateAfter?: Duration | ((state: ValueState<T> | ErrorState) => Duration | undefined);
17
- clearAfter?: Duration | ((state: ValueState<T> | ErrorState) => Duration | undefined);
16
+ invalidateAfter?: Duration | ((state: ValueState<T> | ErrorState) => Duration | null) | null;
17
+ invalidateOnWindowFocus?: boolean;
18
+ invalidateOnActivation?: boolean;
19
+ clearOnInvalidate?: boolean;
20
+ clearUnusedAfter?: Duration | null;
18
21
  resourceGroup?: ResourceGroup | ResourceGroup[];
19
22
  retain?: number;
20
- clearUnusedAfter?: Duration;
21
23
  }
22
24
  export declare class Cache<T> extends Store<Promise<T>> {
23
25
  readonly options: CacheOptions<T>;
26
+ readonly derivedFromCache?: {
27
+ cache: Cache<any>;
28
+ selectors: (Selector<any, any> | Path<any>)[];
29
+ } | undefined;
24
30
  readonly state: Store<CacheState<T>> & Omit<ThisType<Store<CacheState<T>>>, keyof Store<T_1>> & {
25
31
  delete<T_2 extends Record<any, any>, K_1 extends Exclude<{ [K in keyof T_2]: T_2 extends Record<K, T_2[K]> ? never : K; }[keyof T_2], undefined>>(this: Store<T_2>, key: K_1): void;
26
32
  clear<T_3 extends Record<any, any>>(this: Store<Partial<T_3>>): void;
27
33
  };
28
34
  protected stalePromise?: Promise<T>;
29
- protected timers: Set<number>;
30
- constructor(getter: CacheFunction<T>, options?: CacheOptions<T>, derivedFrom?: {
31
- store: Store<any>;
35
+ protected invalidationTimer?: ReturnType<typeof setTimeout>;
36
+ constructor(getter: CacheFunction<T>, options?: CacheOptions<T>, derivedFromCache?: {
37
+ cache: Cache<any>;
32
38
  selectors: (Selector<any, any> | Path<any>)[];
33
- });
39
+ } | undefined, _call?: (...args: any[]) => any);
34
40
  get({ update, backgroundUpdate }?: CacheGetOptions): Promise<T>;
35
41
  invalidate({ invalidateDependencies }?: {
36
42
  invalidateDependencies?: boolean;
@@ -42,15 +48,15 @@ export declare class Cache<T> extends Store<Promise<T>> {
42
48
  mapValue<P extends Path<T>>(selector: P): Cache<Value<T, P>>;
43
49
  protected watchPromise(): void;
44
50
  protected setTimers(): void;
51
+ protected watchFocus(): void;
45
52
  }
46
- declare function create<T>(cacheFunction: CacheFunction<T>, options?: CacheOptions<T>): Cache<T>;
47
- declare function withArgs<T, Args extends any[]>(cacheFunction: CacheFunction<T, Args>, options?: CacheOptions<T>): {
53
+ type CreateReturnType<T, Args extends any[]> = {
48
54
  (...args: Args): Cache<T>;
49
- invalidate: () => void;
50
- clear: () => void;
51
- };
55
+ invalidateAll: () => void;
56
+ clearAll: () => void;
57
+ } & ([] extends Args ? Cache<T> : {});
58
+ declare function create<T, Args extends any[]>(cacheFunction: CacheFunction<T, Args>, options?: CacheOptions<T>): CreateReturnType<T, Args>;
52
59
  export declare const createCache: typeof create & {
53
- withArgs: typeof withArgs;
54
60
  defaultOptions: CacheOptions<unknown>;
55
61
  };
56
62
  export {};
@@ -1,5 +1,6 @@
1
1
  import type { Cancel, Duration, Effect, Listener, Selector, SubscribeOptions, Update, Use, UseOptions } from './commonTypes';
2
2
  import { CalculationHelper } from '../lib/calculationHelper';
3
+ import { Callable } from '../lib/callable';
3
4
  import type { Path, Value } from '../lib/path';
4
5
  import { arrayMethods, mapMethods, recordMethods, setMethods } from '../lib/standardMethods';
5
6
  export type StoreMethods = Record<string, (...args: any[]) => any>;
@@ -17,13 +18,14 @@ export type Calculate<T> = (this: {
17
18
  }) => T;
18
19
  type StandardMethods<T> = T extends Map<any, any> ? typeof mapMethods : T extends Set<any> ? typeof setMethods : T extends Array<any> ? typeof arrayMethods : T extends Record<any, any> ? typeof recordMethods : Record<string, never>;
19
20
  type StoreWithMethods<T, Methods extends StoreMethods> = Store<T> & Omit<BoundStoreMethods<T, Methods>, keyof Store<T>> & StandardMethods<T>;
20
- export declare class Store<T> {
21
+ export declare class Store<T> extends Callable<any, any> {
21
22
  readonly getter: T | Calculate<T>;
22
23
  readonly options: StoreOptions;
23
- protected derivedFrom?: {
24
+ readonly derivedFrom?: {
24
25
  store: Store<any>;
25
26
  selectors: (Selector<any, any> | Path<any>)[];
26
27
  } | undefined;
28
+ protected readonly _call: (...args: any[]) => any;
27
29
  protected _value?: {
28
30
  v: T;
29
31
  };
@@ -38,7 +40,7 @@ export declare class Store<T> {
38
40
  constructor(getter: T | Calculate<T>, options?: StoreOptions, derivedFrom?: {
39
41
  store: Store<any>;
40
42
  selectors: (Selector<any, any> | Path<any>)[];
41
- } | undefined);
43
+ } | undefined, _call?: (...args: any[]) => any);
42
44
  get(): T;
43
45
  set(update: Update<T>): void;
44
46
  set<P extends Path<T>>(path: P, update: Update<Value<T, P>>): void;
@@ -60,7 +62,7 @@ export declare class Store<T> {
60
62
  */
61
63
  addEffect(effect: Effect, retain?: Duration): () => void;
62
64
  /** Return whether the store is currently active, which means whether it has at least one subscriber. */
63
- get isActive(): boolean;
65
+ isActive(): boolean;
64
66
  protected onSubscribe(): void;
65
67
  protected onUnsubscribe(): void;
66
68
  protected notify(): void;
@@ -0,0 +1,4 @@
1
+ export declare class Callable<Args extends any[], T> extends Function {
2
+ protected _call: (...args: Args) => T;
3
+ constructor(_call: (...args: Args) => T);
4
+ }
@@ -1,6 +1,6 @@
1
1
  export declare class InstanceCache<Args extends any[], T extends object> {
2
- private factory;
3
- private cacheTime?;
2
+ readonly factory: (...args: Args) => T;
3
+ readonly cacheTime?: number | undefined;
4
4
  private cache;
5
5
  private interval;
6
6
  constructor(factory: (...args: Args) => T, cacheTime?: number | undefined);
@@ -1,6 +1,6 @@
1
1
  import type { UseStoreOptions } from './useStore';
2
- import type { CacheState } from '../lib/cacheState';
3
2
  import type { Cache } from '../core';
3
+ import type { CacheState } from '../lib/cacheState';
4
4
  export type UseCacheArray<T> = [
5
5
  value: T | undefined,
6
6
  error: unknown | undefined,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cross-state",
3
- "version": "0.6.4",
3
+ "version": "0.6.7",
4
4
  "description": "(React) state library",
5
5
  "license": "ISC",
6
6
  "repository": "schummar/schummar-state",
@@ -16,23 +16,23 @@
16
16
  "react.d.ts"
17
17
  ],
18
18
  "main": "dist/cjs/index.cjs",
19
- "module": "dist/es/index.mjs",
19
+ "module": "dist/es/index.js",
20
20
  "types": "dist/types/index.d.ts",
21
21
  "exports": {
22
22
  ".": {
23
- "import": "./dist/es/index.mjs",
23
+ "import": "./dist/es/index.js",
24
24
  "require": "./dist/cjs/index.cjs",
25
- "default": "./dist/es/index.mjs"
25
+ "default": "./dist/es/index.js"
26
26
  },
27
27
  "./react": {
28
- "import": "./dist/es/react.mjs",
28
+ "import": "./dist/es/react.js",
29
29
  "require": "./dist/cjs/react.cjs",
30
- "default": "./dist/es/react.mjs"
30
+ "default": "./dist/es/react.js"
31
31
  },
32
32
  "./immer": {
33
- "import": "./dist/es/immer.mjs",
33
+ "import": "./dist/es/immer.js",
34
34
  "require": "./dist/cjs/immer.cjs",
35
- "default": "./dist/es/immer.mjs"
35
+ "default": "./dist/es/immer.js"
36
36
  }
37
37
  },
38
38
  "typesVersions": {