signalium 0.3.8 → 1.0.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.
Files changed (287) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/CHANGELOG.md +15 -0
  3. package/build/react.js +19 -0
  4. package/build/transform.js +19 -0
  5. package/dist/cjs/config.d.ts +8 -3
  6. package/dist/cjs/config.d.ts.map +1 -1
  7. package/dist/cjs/config.js +14 -8
  8. package/dist/cjs/config.js.map +1 -1
  9. package/dist/cjs/debug.d.ts +2 -2
  10. package/dist/cjs/debug.d.ts.map +1 -1
  11. package/dist/cjs/debug.js +3 -3
  12. package/dist/cjs/debug.js.map +1 -1
  13. package/dist/cjs/hooks.d.ts +14 -42
  14. package/dist/cjs/hooks.d.ts.map +1 -1
  15. package/dist/cjs/hooks.js +19 -240
  16. package/dist/cjs/hooks.js.map +1 -1
  17. package/dist/cjs/index.d.ts +5 -3
  18. package/dist/cjs/index.d.ts.map +1 -1
  19. package/dist/cjs/index.js +18 -18
  20. package/dist/cjs/index.js.map +1 -1
  21. package/dist/cjs/internals/async.d.ts +50 -0
  22. package/dist/cjs/internals/async.d.ts.map +1 -0
  23. package/dist/cjs/internals/async.js +390 -0
  24. package/dist/cjs/internals/async.js.map +1 -0
  25. package/dist/cjs/internals/connect.d.ts +4 -0
  26. package/dist/cjs/internals/connect.d.ts.map +1 -0
  27. package/dist/cjs/internals/connect.js +37 -0
  28. package/dist/cjs/internals/connect.js.map +1 -0
  29. package/dist/cjs/internals/consumer.d.ts +6 -0
  30. package/dist/cjs/internals/consumer.d.ts.map +1 -0
  31. package/dist/cjs/internals/consumer.js +13 -0
  32. package/dist/cjs/internals/consumer.js.map +1 -0
  33. package/dist/cjs/internals/contexts.d.ts +33 -0
  34. package/dist/cjs/internals/contexts.d.ts.map +1 -0
  35. package/dist/cjs/internals/contexts.js +103 -0
  36. package/dist/cjs/internals/contexts.js.map +1 -0
  37. package/dist/cjs/internals/derived.d.ts +66 -0
  38. package/dist/cjs/internals/derived.d.ts.map +1 -0
  39. package/dist/cjs/internals/derived.js +128 -0
  40. package/dist/cjs/internals/derived.js.map +1 -0
  41. package/dist/cjs/internals/dirty.d.ts +5 -0
  42. package/dist/cjs/internals/dirty.d.ts.map +1 -0
  43. package/dist/cjs/internals/dirty.js +79 -0
  44. package/dist/cjs/internals/dirty.js.map +1 -0
  45. package/dist/cjs/internals/edge.d.ts +32 -0
  46. package/dist/cjs/internals/edge.d.ts.map +1 -0
  47. package/dist/cjs/internals/edge.js +59 -0
  48. package/dist/cjs/internals/edge.js.map +1 -0
  49. package/dist/cjs/internals/get.d.ts +10 -0
  50. package/dist/cjs/internals/get.d.ts.map +1 -0
  51. package/dist/cjs/internals/get.js +255 -0
  52. package/dist/cjs/internals/get.js.map +1 -0
  53. package/dist/cjs/internals/scheduling.d.ts +12 -0
  54. package/dist/cjs/internals/scheduling.d.ts.map +1 -0
  55. package/dist/cjs/internals/scheduling.js +117 -0
  56. package/dist/cjs/internals/scheduling.js.map +1 -0
  57. package/dist/cjs/internals/state.d.ts +18 -0
  58. package/dist/cjs/internals/state.d.ts.map +1 -0
  59. package/dist/cjs/internals/state.js +88 -0
  60. package/dist/cjs/internals/state.js.map +1 -0
  61. package/dist/cjs/internals/utils/debug-name.d.ts +2 -0
  62. package/dist/cjs/internals/utils/debug-name.d.ts.map +1 -0
  63. package/dist/cjs/internals/utils/debug-name.js +14 -0
  64. package/dist/cjs/internals/utils/debug-name.js.map +1 -0
  65. package/dist/cjs/internals/utils/equals.d.ts +3 -0
  66. package/dist/cjs/internals/utils/equals.d.ts.map +1 -0
  67. package/dist/cjs/internals/utils/equals.js +13 -0
  68. package/dist/cjs/internals/utils/equals.js.map +1 -0
  69. package/dist/cjs/internals/utils/hash.d.ts +7 -0
  70. package/dist/cjs/internals/utils/hash.d.ts.map +1 -0
  71. package/dist/cjs/internals/utils/hash.js +181 -0
  72. package/dist/cjs/internals/utils/hash.js.map +1 -0
  73. package/dist/cjs/internals/utils/stringify.d.ts +3 -0
  74. package/dist/cjs/internals/utils/stringify.d.ts.map +1 -0
  75. package/dist/cjs/{utils.js → internals/utils/stringify.js} +5 -27
  76. package/dist/cjs/internals/utils/stringify.js.map +1 -0
  77. package/dist/cjs/internals/utils/type-utils.d.ts +6 -0
  78. package/dist/cjs/internals/utils/type-utils.d.ts.map +1 -0
  79. package/dist/cjs/internals/utils/type-utils.js +22 -0
  80. package/dist/cjs/internals/utils/type-utils.js.map +1 -0
  81. package/dist/cjs/react/context.d.ts +1 -1
  82. package/dist/cjs/react/context.d.ts.map +1 -1
  83. package/dist/cjs/react/provider.d.ts +4 -3
  84. package/dist/cjs/react/provider.d.ts.map +1 -1
  85. package/dist/cjs/react/provider.js +7 -3
  86. package/dist/cjs/react/provider.js.map +1 -1
  87. package/dist/cjs/react/setup.d.ts.map +1 -1
  88. package/dist/cjs/react/setup.js +2 -1
  89. package/dist/cjs/react/setup.js.map +1 -1
  90. package/dist/cjs/react/signal-value.d.ts +5 -1
  91. package/dist/cjs/react/signal-value.d.ts.map +1 -1
  92. package/dist/cjs/react/signal-value.js +35 -45
  93. package/dist/cjs/react/signal-value.js.map +1 -1
  94. package/dist/cjs/trace.d.ts +32 -28
  95. package/dist/cjs/trace.d.ts.map +1 -1
  96. package/dist/cjs/trace.js +14 -16
  97. package/dist/cjs/trace.js.map +1 -1
  98. package/dist/cjs/transform.d.ts +6 -0
  99. package/dist/cjs/transform.d.ts.map +1 -0
  100. package/dist/cjs/transform.js +92 -0
  101. package/dist/cjs/transform.js.map +1 -0
  102. package/dist/cjs/types.d.ts +32 -40
  103. package/dist/cjs/types.d.ts.map +1 -1
  104. package/dist/esm/config.d.ts +8 -3
  105. package/dist/esm/config.d.ts.map +1 -1
  106. package/dist/esm/config.js +12 -7
  107. package/dist/esm/config.js.map +1 -1
  108. package/dist/esm/debug.d.ts +2 -2
  109. package/dist/esm/debug.d.ts.map +1 -1
  110. package/dist/esm/debug.js +2 -2
  111. package/dist/esm/debug.js.map +1 -1
  112. package/dist/esm/hooks.d.ts +14 -42
  113. package/dist/esm/hooks.d.ts.map +1 -1
  114. package/dist/esm/hooks.js +17 -226
  115. package/dist/esm/hooks.js.map +1 -1
  116. package/dist/esm/index.d.ts +5 -3
  117. package/dist/esm/index.d.ts.map +1 -1
  118. package/dist/esm/index.js +5 -3
  119. package/dist/esm/index.js.map +1 -1
  120. package/dist/esm/internals/async.d.ts +50 -0
  121. package/dist/esm/internals/async.d.ts.map +1 -0
  122. package/dist/esm/internals/async.js +383 -0
  123. package/dist/esm/internals/async.js.map +1 -0
  124. package/dist/esm/internals/connect.d.ts +4 -0
  125. package/dist/esm/internals/connect.d.ts.map +1 -0
  126. package/dist/esm/internals/connect.js +33 -0
  127. package/dist/esm/internals/connect.js.map +1 -0
  128. package/dist/esm/internals/consumer.d.ts +6 -0
  129. package/dist/esm/internals/consumer.d.ts.map +1 -0
  130. package/dist/esm/internals/consumer.js +9 -0
  131. package/dist/esm/internals/consumer.js.map +1 -0
  132. package/dist/esm/internals/contexts.d.ts +33 -0
  133. package/dist/esm/internals/contexts.d.ts.map +1 -0
  134. package/dist/esm/internals/contexts.js +92 -0
  135. package/dist/esm/internals/contexts.js.map +1 -0
  136. package/dist/esm/internals/derived.d.ts +66 -0
  137. package/dist/esm/internals/derived.d.ts.map +1 -0
  138. package/dist/esm/internals/derived.js +118 -0
  139. package/dist/esm/internals/derived.js.map +1 -0
  140. package/dist/esm/internals/dirty.d.ts +5 -0
  141. package/dist/esm/internals/dirty.d.ts.map +1 -0
  142. package/dist/esm/internals/dirty.js +75 -0
  143. package/dist/esm/internals/dirty.js.map +1 -0
  144. package/dist/esm/internals/edge.d.ts +32 -0
  145. package/dist/esm/internals/edge.d.ts.map +1 -0
  146. package/dist/esm/internals/edge.js +54 -0
  147. package/dist/esm/internals/edge.js.map +1 -0
  148. package/dist/esm/internals/get.d.ts +10 -0
  149. package/dist/esm/internals/get.d.ts.map +1 -0
  150. package/dist/esm/internals/get.js +247 -0
  151. package/dist/esm/internals/get.js.map +1 -0
  152. package/dist/esm/internals/scheduling.d.ts +12 -0
  153. package/dist/esm/internals/scheduling.d.ts.map +1 -0
  154. package/dist/esm/internals/scheduling.js +106 -0
  155. package/dist/esm/internals/scheduling.js.map +1 -0
  156. package/dist/esm/internals/state.d.ts +18 -0
  157. package/dist/esm/internals/state.d.ts.map +1 -0
  158. package/dist/esm/internals/state.js +82 -0
  159. package/dist/esm/internals/state.js.map +1 -0
  160. package/dist/esm/internals/utils/debug-name.d.ts +2 -0
  161. package/dist/esm/internals/utils/debug-name.d.ts.map +1 -0
  162. package/dist/esm/internals/utils/debug-name.js +11 -0
  163. package/dist/esm/internals/utils/debug-name.js.map +1 -0
  164. package/dist/esm/internals/utils/equals.d.ts +3 -0
  165. package/dist/esm/internals/utils/equals.d.ts.map +1 -0
  166. package/dist/esm/internals/utils/equals.js +9 -0
  167. package/dist/esm/internals/utils/equals.js.map +1 -0
  168. package/dist/esm/internals/utils/hash.d.ts +7 -0
  169. package/dist/esm/internals/utils/hash.d.ts.map +1 -0
  170. package/dist/esm/internals/utils/hash.js +174 -0
  171. package/dist/esm/internals/utils/hash.js.map +1 -0
  172. package/dist/esm/internals/utils/stringify.d.ts +3 -0
  173. package/dist/esm/internals/utils/stringify.d.ts.map +1 -0
  174. package/dist/esm/{utils.js → internals/utils/stringify.js} +4 -25
  175. package/dist/esm/internals/utils/stringify.js.map +1 -0
  176. package/dist/esm/internals/utils/type-utils.d.ts +6 -0
  177. package/dist/esm/internals/utils/type-utils.d.ts.map +1 -0
  178. package/dist/esm/internals/utils/type-utils.js +15 -0
  179. package/dist/esm/internals/utils/type-utils.js.map +1 -0
  180. package/dist/esm/react/context.d.ts +1 -1
  181. package/dist/esm/react/context.d.ts.map +1 -1
  182. package/dist/esm/react/provider.d.ts +4 -3
  183. package/dist/esm/react/provider.d.ts.map +1 -1
  184. package/dist/esm/react/provider.js +6 -2
  185. package/dist/esm/react/provider.js.map +1 -1
  186. package/dist/esm/react/setup.d.ts.map +1 -1
  187. package/dist/esm/react/setup.js +3 -2
  188. package/dist/esm/react/setup.js.map +1 -1
  189. package/dist/esm/react/signal-value.d.ts +5 -1
  190. package/dist/esm/react/signal-value.d.ts.map +1 -1
  191. package/dist/esm/react/signal-value.js +34 -45
  192. package/dist/esm/react/signal-value.js.map +1 -1
  193. package/dist/esm/trace.d.ts +32 -28
  194. package/dist/esm/trace.d.ts.map +1 -1
  195. package/dist/esm/trace.js +13 -15
  196. package/dist/esm/trace.js.map +1 -1
  197. package/dist/esm/transform.d.ts +6 -0
  198. package/dist/esm/transform.d.ts.map +1 -0
  199. package/dist/esm/transform.js +89 -0
  200. package/dist/esm/transform.js.map +1 -0
  201. package/dist/esm/types.d.ts +32 -40
  202. package/dist/esm/types.d.ts.map +1 -1
  203. package/package.json +23 -4
  204. package/src/__tests__/__snapshots__/context.test.ts.snap +2101 -0
  205. package/src/__tests__/__snapshots__/nesting.test.ts.snap +16201 -0
  206. package/src/__tests__/__snapshots__/params-and-state.test.ts.snap +1879 -0
  207. package/src/__tests__/async-task.test.ts +327 -0
  208. package/src/__tests__/context.test.ts +517 -0
  209. package/src/__tests__/nesting.test.ts +298 -0
  210. package/src/__tests__/params-and-state.test.ts +230 -0
  211. package/src/__tests__/reactive-async.test.ts +548 -0
  212. package/src/__tests__/reactive-sync.test.ts +130 -0
  213. package/src/__tests__/subscription.test.ts +510 -0
  214. package/src/__tests__/utils/async.ts +1 -1
  215. package/src/__tests__/utils/instrumented-hooks.ts +229 -124
  216. package/src/__tests__/utils/permute.ts +25 -14
  217. package/src/config.ts +19 -9
  218. package/src/debug.ts +2 -2
  219. package/src/hooks.ts +46 -380
  220. package/src/index.ts +7 -24
  221. package/src/internals/async.ts +556 -0
  222. package/src/internals/connect.ts +41 -0
  223. package/src/internals/consumer.ts +13 -0
  224. package/src/internals/contexts.ts +133 -0
  225. package/src/internals/derived.ts +208 -0
  226. package/src/internals/dirty.ts +91 -0
  227. package/src/internals/edge.ts +109 -0
  228. package/src/internals/get.ts +298 -0
  229. package/src/internals/scheduling.ts +140 -0
  230. package/src/internals/state.ts +111 -0
  231. package/src/internals/utils/debug-name.ts +14 -0
  232. package/src/internals/utils/equals.ts +12 -0
  233. package/src/internals/utils/hash.ts +221 -0
  234. package/src/{utils.ts → internals/utils/stringify.ts} +3 -29
  235. package/src/internals/utils/type-utils.ts +19 -0
  236. package/src/react/__tests__/async.test.tsx +704 -0
  237. package/src/react/__tests__/basic.test.tsx +95 -0
  238. package/src/react/__tests__/contexts.test.tsx +99 -0
  239. package/src/react/__tests__/subscriptions.test.tsx +49 -0
  240. package/src/react/__tests__/utils.tsx +40 -0
  241. package/src/react/context.ts +1 -1
  242. package/src/react/provider.tsx +12 -4
  243. package/src/react/setup.ts +3 -2
  244. package/src/react/signal-value.ts +47 -67
  245. package/src/trace.ts +43 -38
  246. package/src/transform.ts +113 -0
  247. package/src/types.ts +56 -46
  248. package/transform.js +19 -0
  249. package/vitest.workspace.ts +38 -2
  250. package/dist/cjs/scheduling.d.ts +0 -11
  251. package/dist/cjs/scheduling.d.ts.map +0 -1
  252. package/dist/cjs/scheduling.js +0 -108
  253. package/dist/cjs/scheduling.js.map +0 -1
  254. package/dist/cjs/signals.d.ts +0 -73
  255. package/dist/cjs/signals.d.ts.map +0 -1
  256. package/dist/cjs/signals.js +0 -632
  257. package/dist/cjs/signals.js.map +0 -1
  258. package/dist/cjs/utils.d.ts +0 -4
  259. package/dist/cjs/utils.d.ts.map +0 -1
  260. package/dist/cjs/utils.js.map +0 -1
  261. package/dist/esm/scheduling.d.ts +0 -11
  262. package/dist/esm/scheduling.d.ts.map +0 -1
  263. package/dist/esm/scheduling.js +0 -97
  264. package/dist/esm/scheduling.js.map +0 -1
  265. package/dist/esm/signals.d.ts +0 -73
  266. package/dist/esm/signals.d.ts.map +0 -1
  267. package/dist/esm/signals.js +0 -614
  268. package/dist/esm/signals.js.map +0 -1
  269. package/dist/esm/utils.d.ts +0 -4
  270. package/dist/esm/utils.d.ts.map +0 -1
  271. package/dist/esm/utils.js.map +0 -1
  272. package/src/__tests__/hooks/async-computed.test.ts +0 -190
  273. package/src/__tests__/hooks/async-task.test.ts +0 -334
  274. package/src/__tests__/hooks/computed.test.ts +0 -126
  275. package/src/__tests__/hooks/context.test.ts +0 -527
  276. package/src/__tests__/hooks/nesting.test.ts +0 -303
  277. package/src/__tests__/hooks/params-and-state.test.ts +0 -168
  278. package/src/__tests__/hooks/subscription.test.ts +0 -97
  279. package/src/__tests__/signals/async.test.ts +0 -416
  280. package/src/__tests__/signals/basic.test.ts +0 -399
  281. package/src/__tests__/signals/subscription.test.ts +0 -632
  282. package/src/__tests__/signals/watcher.test.ts +0 -253
  283. package/src/__tests__/utils/builders.ts +0 -22
  284. package/src/__tests__/utils/instrumented-signals.ts +0 -291
  285. package/src/react/__tests__/react.test.tsx +0 -227
  286. package/src/scheduling.ts +0 -130
  287. package/src/signals.ts +0 -824
package/dist/esm/debug.js CHANGED
@@ -1,3 +1,3 @@
1
- export { setTracing, createTracer, createTracerFromId, removeTracer, VisualizerNode, VisualizerNodeType, TracerEventType, Tracer, TRACER, } from './trace.js';
2
- export { scheduleTracer } from './scheduling.js';
1
+ export { setTracing, createTracer, createTracerFromId, removeTracer, VisualizerNode, TracerEventType, Tracer, TRACER, SignalType, } from './trace.js';
2
+ export { scheduleTracer } from './internals/scheduling.js';
3
3
  //# sourceMappingURL=debug.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/debug.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,cAAc,EAEd,kBAAkB,EAClB,eAAe,EACf,MAAM,EACN,MAAM,GACP,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/debug.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,cAAc,EAEd,eAAe,EACf,MAAM,EACN,MAAM,EACN,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC"}
@@ -1,44 +1,16 @@
1
- import { ComputedSignal } from './signals.js';
2
- import { type AsyncTask, type AsyncReady, type AsyncResult, type Signal, type SignalOptions, type SignalOptionsWithInit, Watcher, WriteableSignal, SignalSubscribe } from './types.js';
3
- declare const CONTEXT_KEY: unique symbol;
4
- export type Context<T> = symbol & {
5
- [CONTEXT_KEY]: T;
6
- };
7
- export declare const COMPUTED_OWNERS: WeakMap<ComputedSignal<unknown>, SignalScope>;
8
- export declare const state: <T>(value: T, opts?: Partial<SignalOptions<T, unknown[]>>) => WriteableSignal<T>;
9
- export declare const createContext: <T>(initialValue: T, description?: string) => Context<T>;
10
- export type SignalStoreMap = {
11
- [K in Context<unknown>]: K extends Context<infer T> ? T : never;
12
- };
13
- export declare class SignalScope {
14
- private parent?;
15
- constructor(contexts: SignalStoreMap, parent?: SignalScope | undefined);
16
- private contexts;
17
- private children;
18
- private contextMask;
19
- private signals;
20
- getChild(contexts: SignalStoreMap): SignalScope;
21
- getContext<T>(context: Context<T>): T | undefined;
22
- private getSignal;
23
- private setSignal;
24
- private deleteSignal;
25
- run(fn: (...args: any[]) => any, args: any[], key: string, signal: Signal<unknown>, initialized: boolean): any;
26
- get(makeSignal: (fn: (...args: any[]) => any, opts?: Partial<SignalOptionsWithInit<unknown, unknown[]>>) => Signal<unknown>, fn: (...args: any[]) => any, key: string, params: string, args: unknown[], opts?: Partial<SignalOptions<unknown, unknown[]>>): unknown;
27
- }
28
- export declare let ROOT_SCOPE: SignalScope;
29
- export declare const clearRootScope: () => void;
30
- export declare const getOverrideScope: () => SignalScope | undefined;
31
- export declare const setOverrideScope: (scope: SignalScope | undefined) => void;
32
- export declare const withContext: <T>(contexts: SignalStoreMap, fn: () => T) => T;
33
- export declare const useContext: <T>(context: Context<T>) => T;
34
- export declare function computed<T, Args extends unknown[]>(fn: (...args: Args) => T, opts?: Partial<SignalOptions<T, Args>>): (...args: Args) => T;
35
- export type AsyncAwaitableResult<T> = T | Promise<T>;
36
- export declare function asyncComputed<T, Args extends unknown[]>(fn: (...args: Args) => T | Promise<T>, opts?: SignalOptions<T, Args>): (...args: Args) => AsyncResult<T>;
37
- export declare function asyncComputed<T, Args extends unknown[]>(fn: (...args: Args) => T | Promise<T>, opts: SignalOptionsWithInit<T, Args>): (...args: Args) => AsyncReady<T>;
38
- export declare function subscription<T, Args extends unknown[]>(fn: SignalSubscribe<T, Args>, opts?: Partial<SignalOptionsWithInit<T, Args>>): (...args: Args) => T;
39
- export declare const asyncTask: <T, Args extends unknown[]>(fn: (...args: Args) => Promise<T>, opts?: Partial<SignalOptionsWithInit<T, Args>>) => (<BuildArgs extends unknown[], RunArgs extends Args extends [...BuildArgs, ...infer _Rest] ? _Rest : Args>(...args: Args extends [...BuildArgs, ...infer _Rest] ? BuildArgs : Args) => AsyncTask<T, RunArgs>);
40
- export declare function watcher<T>(fn: (prev: T | undefined) => T, opts?: SignalOptions<T, unknown[]> & {
1
+ import { ReactiveTask, ReactiveValue, ReadyReactivePromise, ReadyReactiveValue, Signal, SignalOptions, SignalSubscribe, type SignalOptionsWithInit } from './types.js';
2
+ import { SignalScope } from './internals/contexts.js';
3
+ import { createStateSignal } from './internals/state.js';
4
+ import { ReactivePromise } from './internals/async.js';
5
+ import { Tracer } from './trace.js';
6
+ export declare const state: typeof createStateSignal;
7
+ export declare function reactive<T, Args extends unknown[]>(fn: (...args: Args) => T, opts?: Partial<SignalOptionsWithInit<T, Args>>): (...args: Args) => ReactiveValue<T>;
8
+ export declare function reactive<T, Args extends unknown[]>(fn: (...args: Args) => T, opts: SignalOptionsWithInit<T, Args>): (...args: Args) => ReadyReactiveValue<T>;
9
+ export declare function subscription<T>(subscribe: SignalSubscribe<T>, opts?: SignalOptions<T, unknown[]>): ReactivePromise<T>;
10
+ export declare function subscription<T>(subscribe: SignalSubscribe<T>, opts: SignalOptionsWithInit<T, unknown[]>): ReadyReactivePromise<T>;
11
+ export declare const task: <T, Args extends unknown[]>(fn: (...args: Args) => Promise<T>, opts?: Partial<SignalOptionsWithInit<T, Args>>) => ReactiveTask<T, Args>;
12
+ export declare function watcher<T>(fn: () => T, opts?: SignalOptions<T, unknown[]> & {
41
13
  scope?: SignalScope;
42
- }): Watcher<T>;
43
- export {};
14
+ tracer?: Tracer;
15
+ }): Signal<ReactiveValue<T>>;
44
16
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,MAAM,EACN,aAAa,EACb,eAAe,EACf,KAAK,qBAAqB,EAC3B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAmB,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,eAAO,MAAM,KAAK,0BAAoB,CAAC;AAEvC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAChD,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EACxB,IAAI,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAC7C,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC;AACvC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAChD,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EACxB,IAAI,EAAE,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,GACnC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAa5C,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;AACvH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,EAC7B,IAAI,EAAE,qBAAqB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GACxC,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAU3B,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,MACxC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,SAC1B,OAAO,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAC7C,YAAY,CAAC,CAAC,EAAE,IAAI,CAItB,CAAC;AAEF,wBAAgB,OAAO,CAAC,CAAC,EACvB,EAAE,EAAE,MAAM,CAAC,EACX,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5E,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAE1B"}
package/dist/esm/hooks.js CHANGED
@@ -1,234 +1,25 @@
1
- import { createComputedSignal, createAsyncComputedSignal, createSubscriptionSignal, getCurrentConsumer, createWatcherSignal, createStateSignal, createAsyncTaskSignal, } from './signals.js';
2
- import { getObjectId, getUnknownSignalFnName, hashValue } from './utils.js';
3
- import { getFrameworkScope, useSignalValue } from './config.js';
4
- import WeakRef from './weakref.js';
5
- const CONTEXT_DEFAULT_VALUES = new Map();
6
- const CONTEXT_MASKS = new Map();
7
- let CONTEXT_MASKS_COUNT = 0;
8
- const COMPUTED_CONTEXT_MASKS = new Map();
9
- export const COMPUTED_OWNERS = new WeakMap();
10
- let CURRENT_MASK = null;
11
- export const state = (value, opts) => {
12
- const signal = createStateSignal(value, opts);
13
- return {
14
- set(v) {
15
- signal.set(v);
16
- },
17
- get() {
18
- // eslint-disable-next-line react-hooks/rules-of-hooks
19
- return useSignalValue(signal._desc, () => signal.get());
20
- },
21
- };
22
- };
23
- export const createContext = (initialValue, description) => {
24
- const count = CONTEXT_MASKS_COUNT++;
25
- const key = Symbol(description ?? `context:${count}`);
26
- CONTEXT_DEFAULT_VALUES.set(key, initialValue);
27
- CONTEXT_MASKS.set(key, BigInt(1) << BigInt(count));
28
- return key;
29
- };
30
- export class SignalScope {
31
- parent;
32
- constructor(contexts, parent) {
33
- this.parent = parent;
34
- this.contexts = Object.create(parent?.contexts || null);
35
- for (const key of Object.getOwnPropertySymbols(contexts)) {
36
- this.contexts[key] = contexts[key];
37
- this.contextMask |= CONTEXT_MASKS.get(key);
38
- }
39
- }
40
- contexts;
41
- children = new Map();
42
- contextMask = 0n;
43
- signals = new Map();
44
- getChild(contexts) {
45
- const key = hashValue(contexts);
46
- let child = this.children.get(key);
47
- if (child === undefined) {
48
- child = new SignalScope(contexts, this);
49
- this.children.set(key, child);
50
- }
51
- return child;
52
- }
53
- getContext(context) {
54
- const value = this.contexts[context];
55
- if (CURRENT_MASK !== null) {
56
- CURRENT_MASK |= CONTEXT_MASKS.get(context);
57
- }
58
- return value;
59
- }
60
- getSignal(key, computedMask) {
61
- return (this.contextMask & computedMask) === 0n && this.parent
62
- ? this.parent.getSignal(key, computedMask)
63
- : this.signals.get(key)?.deref();
64
- }
65
- setSignal(key, signal, mask, isPromoting) {
66
- if ((this.contextMask & mask) === 0n && this.parent) {
67
- this.parent.setSignal(key, signal, mask, isPromoting);
68
- }
69
- else {
70
- this.signals.set(key, new WeakRef(signal));
71
- if (isPromoting) {
72
- this.parent?.deleteSignal(key);
73
- }
74
- }
75
- }
76
- deleteSignal(key) {
77
- this.signals.delete(key);
78
- this.parent?.deleteSignal(key);
79
- }
80
- run(fn, args, key, signal, initialized) {
81
- const prevMask = CURRENT_MASK;
82
- const fnMask = COMPUTED_CONTEXT_MASKS.get(fn) ?? 0n;
83
- const signalMask = COMPUTED_CONTEXT_MASKS.get(signal) ?? 0n;
84
- try {
85
- CURRENT_MASK = signalMask | fnMask;
86
- return fn(...args);
87
- }
88
- finally {
89
- if (!initialized || signalMask !== CURRENT_MASK) {
90
- COMPUTED_CONTEXT_MASKS.set(fn, CURRENT_MASK);
91
- COMPUTED_CONTEXT_MASKS.set(signal, CURRENT_MASK);
92
- getCurrentScope().setSignal(key, signal, CURRENT_MASK, initialized);
93
- initialized = true;
94
- }
95
- CURRENT_MASK = prevMask;
96
- }
97
- }
98
- get(makeSignal, fn, key, params, args, opts) {
99
- const computedMask = COMPUTED_CONTEXT_MASKS.get(fn) ?? 0n;
100
- const fnName = opts?.desc ?? fn.name ?? getUnknownSignalFnName(fn, makeSignal);
101
- let signal = this.getSignal(key, computedMask);
102
- if (signal === undefined) {
103
- const optsWithMeta = { ...opts, id: key, desc: fnName, params };
104
- let initialized = false;
105
- if (makeSignal === createSubscriptionSignal) {
106
- signal = makeSignal(state => {
107
- const sub = this.run(fn, [state, ...args], key, signal, initialized);
108
- if (typeof sub === 'object' && sub !== null && sub?.update) {
109
- const originalUpdate = sub.update;
110
- sub.update = () => {
111
- return this.run(originalUpdate, [], key, signal, initialized);
112
- };
113
- }
114
- initialized = true;
115
- return sub;
116
- }, optsWithMeta);
117
- }
118
- else {
119
- signal = makeSignal((...runArgs) => {
120
- const result = this.run(fn, [...args, ...runArgs], key, signal, initialized);
121
- initialized = true;
122
- return result;
123
- }, optsWithMeta);
124
- }
125
- }
126
- COMPUTED_OWNERS.set(signal, this);
127
- const value = signal.get();
128
- if (CURRENT_MASK !== null) {
129
- CURRENT_MASK |= COMPUTED_CONTEXT_MASKS.get(fn) ?? 0n;
130
- }
131
- return value;
132
- }
133
- }
134
- export let ROOT_SCOPE = new SignalScope({});
135
- export const clearRootScope = () => {
136
- ROOT_SCOPE = new SignalScope({});
137
- };
138
- let OVERRIDE_SCOPE;
139
- export const getOverrideScope = () => {
140
- return OVERRIDE_SCOPE;
141
- };
142
- export const setOverrideScope = (scope) => {
143
- OVERRIDE_SCOPE = scope;
144
- };
145
- const getCurrentScope = () => {
146
- if (OVERRIDE_SCOPE !== undefined) {
147
- return OVERRIDE_SCOPE;
148
- }
149
- const currentConsumer = getCurrentConsumer();
150
- if (currentConsumer) {
151
- const scope = COMPUTED_OWNERS.get(currentConsumer);
152
- return scope ?? ROOT_SCOPE;
153
- }
154
- return getFrameworkScope() ?? ROOT_SCOPE;
155
- };
156
- export const withContext = (contexts, fn) => {
157
- const prevScope = OVERRIDE_SCOPE;
158
- const currentScope = getCurrentScope();
159
- try {
160
- OVERRIDE_SCOPE = currentScope.getChild(contexts);
161
- return fn();
162
- }
163
- finally {
164
- OVERRIDE_SCOPE = prevScope;
165
- }
166
- };
167
- export const useContext = (context) => {
168
- let scope = OVERRIDE_SCOPE;
169
- if (scope === undefined) {
170
- const currentConsumer = getCurrentConsumer();
171
- scope = currentConsumer ? COMPUTED_OWNERS.get(currentConsumer) : undefined;
172
- }
173
- if (scope === undefined) {
174
- scope = getFrameworkScope();
175
- }
176
- if (scope === undefined) {
177
- throw new Error('useContext must be used within a signal hook, a withContext, or within a framework-specific context provider.');
178
- }
179
- return scope.getContext(context) ?? CONTEXT_DEFAULT_VALUES.get(context);
180
- };
181
- const getParamsKey = (args, opts) => {
182
- return opts?.paramKey ? opts.paramKey(...args) : args.map(arg => hashValue(arg)).join(', ');
183
- };
184
- const getComputedKey = (fn, params) => {
185
- const fnId = getObjectId(fn);
186
- return `${fnId}(${params})`;
187
- };
188
- export function computed(fn, opts) {
1
+ import { useDerivedSignal } from './config.js';
2
+ import { getCurrentScope } from './internals/contexts.js';
3
+ import { createStateSignal } from './internals/state.js';
4
+ import { createDerivedSignal } from './internals/derived.js';
5
+ import { ReactivePromise } from './internals/async.js';
6
+ export const state = createStateSignal;
7
+ export function reactive(fn, opts) {
189
8
  return (...args) => {
190
- const params = getParamsKey(args, opts);
191
- const key = getComputedKey(fn, params);
192
- return useSignalValue(key, () => {
193
- const scope = getCurrentScope();
194
- return scope.get(createComputedSignal, fn, key, params, args, opts);
195
- });
9
+ const scope = getCurrentScope();
10
+ const signal = scope.get(fn, args, opts);
11
+ return useDerivedSignal(signal);
196
12
  };
197
13
  }
198
- export function asyncComputed(fn, opts) {
199
- return (...args) => {
200
- const params = getParamsKey(args, opts);
201
- const key = getComputedKey(fn, params);
202
- return useSignalValue(key, () => {
203
- const scope = getCurrentScope();
204
- return scope.get(createAsyncComputedSignal, fn, key, params, args, opts);
205
- });
206
- };
14
+ export function subscription(subscribe, opts) {
15
+ const scope = getCurrentScope();
16
+ return ReactivePromise.createSubscription(subscribe, scope, opts);
207
17
  }
208
- export function subscription(fn, opts) {
209
- return (...args) => {
210
- const params = getParamsKey(args, opts);
211
- const key = getComputedKey(fn, params);
212
- return useSignalValue(key, () => {
213
- const scope = getCurrentScope();
214
- return scope.get(createSubscriptionSignal, fn, key, params, args, opts);
215
- });
216
- };
217
- }
218
- export const asyncTask = (fn, opts) => {
219
- return (...args) => {
220
- const params = getParamsKey(args, opts);
221
- const key = getComputedKey(fn, params);
222
- return useSignalValue(key, () => {
223
- const scope = getCurrentScope();
224
- return scope.get(createAsyncTaskSignal, fn, key, params, args, opts);
225
- });
226
- };
18
+ export const task = (fn, opts) => {
19
+ const scope = getCurrentScope();
20
+ return ReactivePromise.createTask(fn, scope, opts);
227
21
  };
228
22
  export function watcher(fn, opts) {
229
- const scope = opts?.scope ?? ROOT_SCOPE;
230
- const w = createWatcherSignal(fn, opts);
231
- COMPUTED_OWNERS.set(w, scope);
232
- return w;
23
+ return createDerivedSignal(fn, undefined, undefined, opts?.scope, opts);
233
24
  }
234
25
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/hooks.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAe,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,MAAM,CAAC,MAAM,KAAK,GAAG,iBAAiB,CAAC;AAUvC,MAAM,UAAU,QAAQ,CACtB,EAAwB,EACxB,IAA8C;IAE9C,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,EAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAEhD,OAAO,gBAAgB,CAAC,MAAM,CAAE,CAAC;IACnC,CAAC,CAAC;AACJ,CAAC;AAOD,MAAM,UAAU,YAAY,CAC1B,SAA6B,EAC7B,IAAmD;IAEnD,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAEhC,OAAO,eAAe,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,EAAiC,EACjC,IAA8C,EACvB,EAAE;IACzB,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAEhC,OAAO,eAAe,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,UAAU,OAAO,CACrB,EAAW,EACX,IAA6E;IAE7E,OAAO,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC1E,CAAC"}
@@ -1,6 +1,8 @@
1
1
  export type * from './types.js';
2
- export { createStateSignal, createComputedSignal, createAsyncComputedSignal, createSubscriptionSignal, createWatcherSignal, createAsyncTaskSignal, getCurrentConsumer, } from './signals.js';
3
- export { state, createContext, useContext, withContext, computed, asyncComputed, asyncTask, subscription, watcher, SignalScope, type Context, type SignalStoreMap, } from './hooks.js';
2
+ export { state, reactive, subscription, task, watcher } from './hooks.js';
3
+ export { isReactivePromise, isReactiveTask, isReactiveSubscription } from './internals/async.js';
4
+ export { callback } from './internals/get.js';
5
+ export { createContext, useContext, withContexts, SignalScope, CONTEXT_KEY } from './internals/contexts.js';
4
6
  export { setConfig } from './config.js';
5
- export { hashValue as stringifyArgs } from './utils.js';
7
+ export { hashValue, registerCustomHash } from './internals/utils/hash.js';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,KAAK,EACL,aAAa,EACb,UAAU,EACV,WAAW,EACX,QAAQ,EACR,aAAa,EACb,SAAS,EACT,YAAY,EACZ,OAAO,EACP,WAAW,EACX,KAAK,OAAO,EACZ,KAAK,cAAc,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAC;AAEhC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEjG,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE5G,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
package/dist/esm/index.js CHANGED
@@ -1,5 +1,7 @@
1
- export { createStateSignal, createComputedSignal, createAsyncComputedSignal, createSubscriptionSignal, createWatcherSignal, createAsyncTaskSignal, getCurrentConsumer, } from './signals.js';
2
- export { state, createContext, useContext, withContext, computed, asyncComputed, asyncTask, subscription, watcher, SignalScope, } from './hooks.js';
1
+ export { state, reactive, subscription, task, watcher } from './hooks.js';
2
+ export { isReactivePromise, isReactiveTask, isReactiveSubscription } from './internals/async.js';
3
+ export { callback } from './internals/get.js';
4
+ export { createContext, useContext, withContexts, SignalScope, CONTEXT_KEY } from './internals/contexts.js';
3
5
  export { setConfig } from './config.js';
4
- export { hashValue as stringifyArgs } from './utils.js';
6
+ export { hashValue, registerCustomHash } from './internals/utils/hash.js';
5
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,KAAK,EACL,aAAa,EACb,UAAU,EACV,WAAW,EACX,QAAQ,EACR,aAAa,EACb,SAAS,EACT,YAAY,EACZ,OAAO,EACP,WAAW,GAGZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEjG,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE5G,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { BaseReactivePromise, ReactiveSubscription, ReactiveTask, ReactivePromise as IReactivePromise, SignalOptionsWithInit, SignalSubscribe } from '../types.js';
2
+ import { DerivedSignal } from './derived.js';
3
+ import { PromiseEdge } from './edge.js';
4
+ import { SignalScope } from './contexts.js';
5
+ export declare class ReactivePromise<T, Args extends unknown[] = unknown[]> implements BaseReactivePromise<T> {
6
+ private _value;
7
+ private _error;
8
+ private _flags;
9
+ private _signal;
10
+ private _equals;
11
+ private _promise;
12
+ private _pending;
13
+ private _stateSubs;
14
+ _awaitSubs: Map<WeakRef<DerivedSignal<unknown, unknown[]>>, PromiseEdge>;
15
+ private _version;
16
+ static createPromise<T>(promise: Promise<T>, signal?: DerivedSignal<T, unknown[]>, initValue?: T | undefined): ReactivePromise<unknown, unknown[]>;
17
+ static createSubscription<T>(subscribe: SignalSubscribe<T>, scope: SignalScope, opts?: Partial<SignalOptionsWithInit<T, unknown[]>>): ReactivePromise<T, unknown[]>;
18
+ static createTask<T, Args extends unknown[]>(task: (...args: Args) => Promise<T>, scope: SignalScope, opts?: Partial<SignalOptionsWithInit<T, Args>>): ReactiveTask<T, Args>;
19
+ private _initFlags;
20
+ private _consumeFlags;
21
+ private _connect;
22
+ private _setFlags;
23
+ _setPending(): void;
24
+ _setPromise(promise: Promise<T>): Promise<void>;
25
+ private _setValue;
26
+ private _setError;
27
+ private _scheduleSubs;
28
+ get value(): T | undefined;
29
+ get error(): unknown;
30
+ get isPending(): boolean;
31
+ get isRejected(): boolean;
32
+ get isResolved(): boolean;
33
+ get isReady(): boolean;
34
+ get isSettled(): boolean;
35
+ get data(): T | undefined;
36
+ get isFetching(): boolean;
37
+ get isSuccess(): boolean;
38
+ get isError(): boolean;
39
+ get isFetched(): boolean;
40
+ run(...args: Args): this;
41
+ rerun(): void;
42
+ then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): Promise<TResult1 | TResult2>;
43
+ catch<TResult = never>(onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null): Promise<T | TResult>;
44
+ finally(onfinally?: (() => void) | null): Promise<T>;
45
+ get [Symbol.toStringTag](): string;
46
+ }
47
+ export declare function isReactivePromise(obj: unknown): obj is IReactivePromise<unknown>;
48
+ export declare function isReactiveTask(obj: unknown): obj is ReactiveTask<unknown, unknown[]>;
49
+ export declare function isReactiveSubscription<T, Args extends unknown[]>(obj: unknown): obj is ReactiveSubscription<T>;
50
+ //# sourceMappingURL=async.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../../../src/internals/async.ts"],"names":[],"mappings":"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"}