cross-state 0.6.6 → 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 (147) 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 -299
  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 -289
  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 +13 -11
  134. package/dist/types/core/store.d.ts +5 -3
  135. package/dist/types/lib/callable.d.ts +4 -0
  136. package/dist/types/lib/instanceCache.d.ts +2 -2
  137. package/package.json +8 -8
  138. package/dist/cjs/hash.cjs +0 -718
  139. package/dist/cjs/hash.cjs.map +0 -1
  140. package/dist/es/hash.mjs +0 -719
  141. package/dist/es/hash.mjs.map +0 -1
  142. package/dist/es/immer.mjs.map +0 -1
  143. package/dist/es/index.mjs +0 -303
  144. package/dist/es/index.mjs.map +0 -1
  145. package/dist/es/react.mjs +0 -292
  146. package/dist/es/react.mjs.map +0 -1
  147. package/dist/types/lib/bind.d.ts +0 -1
@@ -13,11 +13,13 @@ 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>;
@@ -30,11 +32,11 @@ export declare class Cache<T> extends Store<Promise<T>> {
30
32
  clear<T_3 extends Record<any, any>>(this: Store<Partial<T_3>>): void;
31
33
  };
32
34
  protected stalePromise?: Promise<T>;
33
- protected timers: Set<number>;
35
+ protected invalidationTimer?: ReturnType<typeof setTimeout>;
34
36
  constructor(getter: CacheFunction<T>, options?: CacheOptions<T>, derivedFromCache?: {
35
37
  cache: Cache<any>;
36
38
  selectors: (Selector<any, any> | Path<any>)[];
37
- } | undefined);
39
+ } | undefined, _call?: (...args: any[]) => any);
38
40
  get({ update, backgroundUpdate }?: CacheGetOptions): Promise<T>;
39
41
  invalidate({ invalidateDependencies }?: {
40
42
  invalidateDependencies?: boolean;
@@ -46,15 +48,15 @@ export declare class Cache<T> extends Store<Promise<T>> {
46
48
  mapValue<P extends Path<T>>(selector: P): Cache<Value<T, P>>;
47
49
  protected watchPromise(): void;
48
50
  protected setTimers(): void;
51
+ protected watchFocus(): void;
49
52
  }
50
- declare function create<T>(cacheFunction: CacheFunction<T>, options?: CacheOptions<T>): Cache<T>;
51
- declare function withArgs<T, Args extends any[]>(cacheFunction: CacheFunction<T, Args>, options?: CacheOptions<T>): {
53
+ type CreateReturnType<T, Args extends any[]> = {
52
54
  (...args: Args): Cache<T>;
53
- invalidate: () => void;
54
- clear: () => void;
55
- };
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>;
56
59
  export declare const createCache: typeof create & {
57
- withArgs: typeof withArgs;
58
60
  defaultOptions: CacheOptions<unknown>;
59
61
  };
60
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
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);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cross-state",
3
- "version": "0.6.6",
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": {