signalium 0.2.7 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/.turbo/turbo-build.log +12 -0
  2. package/CHANGELOG.md +12 -0
  3. package/dist/cjs/config.d.ts +14 -5
  4. package/dist/cjs/config.d.ts.map +1 -1
  5. package/dist/cjs/config.js +23 -14
  6. package/dist/cjs/config.js.map +1 -1
  7. package/dist/cjs/debug.d.ts +3 -0
  8. package/dist/cjs/debug.d.ts.map +1 -0
  9. package/dist/cjs/debug.js +16 -0
  10. package/dist/cjs/debug.js.map +1 -0
  11. package/dist/cjs/hooks.d.ts +45 -0
  12. package/dist/cjs/hooks.d.ts.map +1 -0
  13. package/dist/cjs/hooks.js +260 -0
  14. package/dist/cjs/hooks.js.map +1 -0
  15. package/dist/cjs/index.d.ts +5 -3
  16. package/dist/cjs/index.d.ts.map +1 -1
  17. package/dist/cjs/index.js +21 -8
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/react/context.d.ts +4 -0
  20. package/dist/cjs/react/context.d.ts.map +1 -0
  21. package/dist/cjs/react/context.js +10 -0
  22. package/dist/cjs/react/context.js.map +1 -0
  23. package/dist/cjs/react/index.d.ts +5 -0
  24. package/dist/cjs/react/index.d.ts.map +1 -0
  25. package/dist/cjs/react/index.js +12 -0
  26. package/dist/cjs/react/index.js.map +1 -0
  27. package/dist/cjs/react/provider.d.ts +7 -0
  28. package/dist/cjs/react/provider.d.ts.map +1 -0
  29. package/dist/cjs/react/provider.js +13 -0
  30. package/dist/cjs/react/provider.js.map +1 -0
  31. package/dist/cjs/react/signal-value.d.ts +3 -0
  32. package/dist/cjs/react/signal-value.d.ts.map +1 -0
  33. package/dist/cjs/react/signal-value.js +42 -0
  34. package/dist/cjs/react/signal-value.js.map +1 -0
  35. package/dist/cjs/react/state.d.ts +3 -0
  36. package/dist/cjs/react/state.d.ts.map +1 -0
  37. package/dist/cjs/react/state.js +13 -0
  38. package/dist/cjs/react/state.js.map +1 -0
  39. package/dist/cjs/scheduling.d.ts +5 -0
  40. package/dist/cjs/scheduling.d.ts.map +1 -1
  41. package/dist/cjs/scheduling.js +59 -5
  42. package/dist/cjs/scheduling.js.map +1 -1
  43. package/dist/cjs/signals.d.ts +28 -65
  44. package/dist/cjs/signals.d.ts.map +1 -1
  45. package/dist/cjs/signals.js +223 -65
  46. package/dist/cjs/signals.js.map +1 -1
  47. package/dist/cjs/trace.d.ts +127 -0
  48. package/dist/cjs/trace.d.ts.map +1 -0
  49. package/dist/cjs/trace.js +319 -0
  50. package/dist/cjs/trace.js.map +1 -0
  51. package/dist/cjs/types.d.ts +66 -0
  52. package/dist/cjs/types.d.ts.map +1 -0
  53. package/dist/cjs/types.js +3 -0
  54. package/dist/cjs/types.js.map +1 -0
  55. package/dist/cjs/utils.d.ts +4 -0
  56. package/dist/cjs/utils.d.ts.map +1 -0
  57. package/dist/cjs/utils.js +80 -0
  58. package/dist/cjs/utils.js.map +1 -0
  59. package/dist/esm/config.d.ts +14 -5
  60. package/dist/esm/config.d.ts.map +1 -1
  61. package/dist/esm/config.js +19 -11
  62. package/dist/esm/config.js.map +1 -1
  63. package/dist/esm/debug.d.ts +3 -0
  64. package/dist/esm/debug.d.ts.map +1 -0
  65. package/dist/esm/debug.js +3 -0
  66. package/dist/esm/debug.js.map +1 -0
  67. package/dist/esm/hooks.d.ts +45 -0
  68. package/dist/esm/hooks.d.ts.map +1 -0
  69. package/dist/esm/hooks.js +243 -0
  70. package/dist/esm/hooks.js.map +1 -0
  71. package/dist/esm/index.d.ts +5 -3
  72. package/dist/esm/index.d.ts.map +1 -1
  73. package/dist/esm/index.js +4 -2
  74. package/dist/esm/index.js.map +1 -1
  75. package/dist/esm/react/context.d.ts +4 -0
  76. package/dist/esm/react/context.d.ts.map +1 -0
  77. package/dist/esm/react/context.js +6 -0
  78. package/dist/esm/react/context.js.map +1 -0
  79. package/dist/esm/react/index.d.ts +5 -0
  80. package/dist/esm/react/index.d.ts.map +1 -0
  81. package/dist/esm/react/index.js +5 -0
  82. package/dist/esm/react/index.js.map +1 -0
  83. package/dist/esm/react/provider.d.ts +7 -0
  84. package/dist/esm/react/provider.d.ts.map +1 -0
  85. package/dist/esm/react/provider.js +10 -0
  86. package/dist/esm/react/provider.js.map +1 -0
  87. package/dist/esm/react/signal-value.d.ts +3 -0
  88. package/dist/esm/react/signal-value.d.ts.map +1 -0
  89. package/dist/esm/react/signal-value.js +38 -0
  90. package/dist/esm/react/signal-value.js.map +1 -0
  91. package/dist/esm/react/state.d.ts +3 -0
  92. package/dist/esm/react/state.d.ts.map +1 -0
  93. package/dist/esm/react/state.js +10 -0
  94. package/dist/esm/react/state.js.map +1 -0
  95. package/dist/esm/scheduling.d.ts +5 -0
  96. package/dist/esm/scheduling.d.ts.map +1 -1
  97. package/dist/esm/scheduling.js +51 -1
  98. package/dist/esm/scheduling.js.map +1 -1
  99. package/dist/esm/signals.d.ts +28 -65
  100. package/dist/esm/signals.d.ts.map +1 -1
  101. package/dist/esm/signals.js +215 -61
  102. package/dist/esm/signals.js.map +1 -1
  103. package/dist/esm/trace.d.ts +127 -0
  104. package/dist/esm/trace.d.ts.map +1 -0
  105. package/dist/esm/trace.js +311 -0
  106. package/dist/esm/trace.js.map +1 -0
  107. package/dist/esm/types.d.ts +66 -0
  108. package/dist/esm/types.d.ts.map +1 -0
  109. package/dist/esm/types.js +2 -0
  110. package/dist/esm/types.js.map +1 -0
  111. package/dist/esm/utils.d.ts +4 -0
  112. package/dist/esm/utils.d.ts.map +1 -0
  113. package/dist/esm/utils.js +75 -0
  114. package/dist/esm/utils.js.map +1 -0
  115. package/package.json +43 -2
  116. package/src/__tests__/hooks/async-computed.test.ts +190 -0
  117. package/src/__tests__/hooks/async-task.test.ts +227 -0
  118. package/src/__tests__/hooks/computed.test.ts +126 -0
  119. package/src/__tests__/hooks/context.test.ts +527 -0
  120. package/src/__tests__/hooks/nesting.test.ts +303 -0
  121. package/src/__tests__/hooks/params-and-state.test.ts +168 -0
  122. package/src/__tests__/hooks/subscription.test.ts +97 -0
  123. package/src/__tests__/signals/async.test.ts +416 -0
  124. package/src/__tests__/signals/basic.test.ts +399 -0
  125. package/src/__tests__/signals/subscription.test.ts +632 -0
  126. package/src/__tests__/signals/watcher.test.ts +253 -0
  127. package/src/__tests__/utils/async.ts +6 -0
  128. package/src/__tests__/utils/builders.ts +22 -0
  129. package/src/__tests__/utils/instrumented-hooks.ts +309 -0
  130. package/src/__tests__/utils/instrumented-signals.ts +281 -0
  131. package/src/__tests__/utils/permute.ts +74 -0
  132. package/src/config.ts +32 -17
  133. package/src/debug.ts +14 -0
  134. package/src/hooks.ts +429 -0
  135. package/src/index.ts +28 -3
  136. package/src/react/__tests__/react.test.tsx +135 -0
  137. package/src/react/context.ts +8 -0
  138. package/src/react/index.ts +4 -0
  139. package/src/react/provider.tsx +18 -0
  140. package/src/react/signal-value.ts +56 -0
  141. package/src/react/state.ts +13 -0
  142. package/src/scheduling.ts +69 -1
  143. package/src/signals.ts +331 -157
  144. package/src/trace.ts +449 -0
  145. package/src/types.ts +86 -0
  146. package/src/utils.ts +83 -0
  147. package/tsconfig.json +2 -1
  148. package/vitest.workspace.ts +24 -0
  149. package/src/__tests__/async.test.ts +0 -426
  150. package/src/__tests__/basic.test.ts +0 -378
  151. package/src/__tests__/subscription.test.ts +0 -645
  152. package/src/__tests__/utils/instrumented.ts +0 -326
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/react/provider.tsx"],"names":[],"mappings":";;AAIA,sCAaC;;AAjBD,iCAAmC;AACnC,0CAA0D;AAC1D,6CAA4C;AAE5C,SAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,QAAQ,EACR,OAAO,GAAG,IAAI,GAKf;IACC,MAAM,WAAW,GAAG,IAAA,kBAAU,EAAC,yBAAY,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,sBAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAE3E,OAAO,uBAAC,yBAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAyB,CAAC;AACjF,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function useSignalValue<T>(key: string, fn: () => T): T;
2
+ export declare function setupReact(): void;
3
+ //# sourceMappingURL=signal-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal-value.d.ts","sourceRoot":"","sources":["../../../src/react/signal-value.ts"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CA4C7D;AAED,wBAAgB,UAAU,SAIzB"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useSignalValue = useSignalValue;
4
+ exports.setupReact = setupReact;
5
+ const react_1 = require("react");
6
+ const context_js_1 = require("./context.js");
7
+ const hooks_js_1 = require("../hooks.js");
8
+ const config_js_1 = require("../config.js");
9
+ function useSignalValue(key, fn) {
10
+ const [, setVersion] = (0, react_1.useState)(0);
11
+ const scope = (0, react_1.useContext)(context_js_1.ScopeContext);
12
+ const ref = (0, react_1.useRef)({
13
+ value: undefined,
14
+ unsub: undefined,
15
+ key: undefined,
16
+ });
17
+ const currentKey = ref.current.key;
18
+ if (key !== currentKey) {
19
+ ref.current.unsub?.();
20
+ const w = (0, hooks_js_1.watcher)(fn, { scope });
21
+ let initialized = false;
22
+ ref.current.unsub = w.addListener(value => {
23
+ ref.current.value = value;
24
+ // Trigger an update to the component
25
+ if (initialized) {
26
+ setVersion(v => v + 1);
27
+ }
28
+ initialized = true;
29
+ }, {
30
+ immediate: true,
31
+ });
32
+ ref.current.key = key;
33
+ }
34
+ (0, react_1.useEffect)(() => ref.current.unsub, []);
35
+ return ref.current.value;
36
+ }
37
+ function setupReact() {
38
+ (0, config_js_1.setConfig)({
39
+ useSignalValue,
40
+ });
41
+ }
42
+ //# sourceMappingURL=signal-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal-value.js","sourceRoot":"","sources":["../../../src/react/signal-value.ts"],"names":[],"mappings":";;AAKA,wCA4CC;AAED,gCAIC;AAvDD,iCAAgE;AAChE,6CAA4C;AAC5C,0CAAsC;AACtC,4CAAyC;AAEzC,SAAgB,cAAc,CAAI,GAAW,EAAE,EAAW;IACxD,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,IAAA,kBAAU,EAAC,yBAAY,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,IAAA,cAAM,EAIf;QACD,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;KACf,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;IAEnC,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;QACvB,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QAEtB,MAAM,CAAC,GAAG,IAAA,kBAAO,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAEjC,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,WAAW,CAC/B,KAAK,CAAC,EAAE;YACN,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;YAE1B,qCAAqC;YACrC,IAAI,WAAW,EAAE,CAAC;gBAChB,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,CAAC;YAED,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC,EACD;YACE,SAAS,EAAE,IAAI;SAChB,CACF,CAAC;QAEF,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;IACxB,CAAC;IAED,IAAA,iBAAS,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEvC,OAAO,GAAG,CAAC,OAAO,CAAC,KAAM,CAAC;AAC5B,CAAC;AAED,SAAgB,UAAU;IACxB,IAAA,qBAAS,EAAC;QACR,cAAc;KACf,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { SignalOptions, WriteableSignal } from '../types.js';
2
+ export declare function useStateSignal<T>(value: T, opts?: SignalOptions<T, unknown[]>): WriteableSignal<T>;
3
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/react/state.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE7D,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAQlG"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useStateSignal = useStateSignal;
4
+ const react_1 = require("react");
5
+ const hooks_js_1 = require("../hooks.js");
6
+ function useStateSignal(value, opts) {
7
+ const ref = (0, react_1.useRef)(undefined);
8
+ if (!ref.current) {
9
+ ref.current = (0, hooks_js_1.state)(value, opts);
10
+ }
11
+ return ref.current;
12
+ }
13
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/react/state.ts"],"names":[],"mappings":";;AAIA,wCAQC;AAZD,iCAA+B;AAC/B,0CAAoC;AAGpC,SAAgB,cAAc,CAAI,KAAQ,EAAE,IAAkC;IAC5E,MAAM,GAAG,GAAG,IAAA,cAAM,EAAiC,SAAS,CAAC,CAAC;IAE9D,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,GAAG,CAAC,OAAO,GAAG,IAAA,gBAAK,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,GAAG,CAAC,OAAO,CAAC;AACrB,CAAC"}
@@ -1,6 +1,11 @@
1
1
  import { ComputedSignal } from './signals.js';
2
+ import { Tracer } from './trace.js';
2
3
  export declare const scheduleWatcher: (watcher: ComputedSignal<any>) => void;
3
4
  export declare const scheduleDirty: (signal: ComputedSignal<any>) => void;
4
5
  export declare const schedulePull: (signal: ComputedSignal<any>) => void;
6
+ export declare const scheduleConnect: (connect: ComputedSignal<any>) => void;
5
7
  export declare const scheduleDisconnect: (disconnect: ComputedSignal<any>) => void;
8
+ export declare const scheduleEffect: (signal: ComputedSignal<any>) => void;
9
+ export declare const scheduleTracer: (tracer: Tracer) => void;
10
+ export declare const settled: () => Promise<void>;
6
11
  //# sourceMappingURL=scheduling.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scheduling.d.ts","sourceRoot":"","sources":["../../src/scheduling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAU9C,eAAO,MAAM,eAAe,YAAa,cAAc,CAAC,GAAG,CAAC,SAG3D,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,cAAc,CAAC,GAAG,CAAC,SAGxD,CAAC;AAEF,eAAO,MAAM,YAAY,WAAY,cAAc,CAAC,GAAG,CAAC,SAGvD,CAAC;AAEF,eAAO,MAAM,kBAAkB,eAAgB,cAAc,CAAC,GAAG,CAAC,SAMjE,CAAC"}
1
+ {"version":3,"file":"scheduling.d.ts","sourceRoot":"","sources":["../../src/scheduling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAyBpC,eAAO,MAAM,eAAe,YAAa,cAAc,CAAC,GAAG,CAAC,SAI3D,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,cAAc,CAAC,GAAG,CAAC,SAGxD,CAAC;AAEF,eAAO,MAAM,YAAY,WAAY,cAAc,CAAC,GAAG,CAAC,SAGvD,CAAC;AAEF,eAAO,MAAM,eAAe,YAAa,cAAc,CAAC,GAAG,CAAC,SAM3D,CAAC;AAEF,eAAO,MAAM,kBAAkB,eAAgB,cAAc,CAAC,GAAG,CAAC,SAMjE,CAAC;AAEF,eAAO,MAAM,cAAc,WAAY,cAAc,CAAC,GAAG,CAAC,SAGzD,CAAC;AAEF,eAAO,MAAM,cAAc,WAAY,MAAM,SAG5C,CAAC;AA0DF,eAAO,MAAM,OAAO,qBAInB,CAAC"}
@@ -1,34 +1,65 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.scheduleDisconnect = exports.schedulePull = exports.scheduleDirty = exports.scheduleWatcher = void 0;
3
+ exports.settled = exports.scheduleTracer = exports.scheduleEffect = exports.scheduleDisconnect = exports.scheduleConnect = exports.schedulePull = exports.scheduleDirty = exports.scheduleWatcher = void 0;
4
4
  const config_js_1 = require("./config.js");
5
5
  let PENDING_DIRTIES = [];
6
6
  let PENDING_PULLS = [];
7
7
  let PENDING_WATCHERS = [];
8
+ let PENDING_CONNECTS = new Map();
8
9
  let PENDING_DISCONNECTS = new Map();
10
+ let PENDING_EFFECTS = [];
11
+ let PENDING_TRACERS = [];
9
12
  const microtask = () => Promise.resolve();
13
+ let currentFlush = null;
14
+ const scheduleFlush = (fn) => {
15
+ if (currentFlush)
16
+ return;
17
+ let resolve;
18
+ const promise = new Promise(r => (resolve = r));
19
+ currentFlush = { promise, resolve: resolve };
20
+ (0, config_js_1.scheduleFlush)(flushWatchers);
21
+ };
10
22
  const scheduleWatcher = (watcher) => {
11
23
  PENDING_WATCHERS.push(watcher);
12
- (0, config_js_1.scheduleFlush)(flushWatchers);
24
+ scheduleFlush(flushWatchers);
13
25
  };
14
26
  exports.scheduleWatcher = scheduleWatcher;
15
27
  const scheduleDirty = (signal) => {
16
28
  PENDING_DIRTIES.push(signal);
17
- (0, config_js_1.scheduleFlush)(flushWatchers);
29
+ scheduleFlush(flushWatchers);
18
30
  };
19
31
  exports.scheduleDirty = scheduleDirty;
20
32
  const schedulePull = (signal) => {
21
33
  PENDING_PULLS.push(signal);
22
- (0, config_js_1.scheduleFlush)(flushWatchers);
34
+ scheduleFlush(flushWatchers);
23
35
  };
24
36
  exports.schedulePull = schedulePull;
37
+ const scheduleConnect = (connect) => {
38
+ const current = PENDING_CONNECTS.get(connect) ?? 0;
39
+ PENDING_CONNECTS.set(connect, current + 1);
40
+ scheduleFlush(flushWatchers);
41
+ };
42
+ exports.scheduleConnect = scheduleConnect;
25
43
  const scheduleDisconnect = (disconnect) => {
26
44
  const current = PENDING_DISCONNECTS.get(disconnect) ?? 0;
27
45
  PENDING_DISCONNECTS.set(disconnect, current + 1);
28
- (0, config_js_1.scheduleFlush)(flushWatchers);
46
+ scheduleFlush(flushWatchers);
29
47
  };
30
48
  exports.scheduleDisconnect = scheduleDisconnect;
49
+ const scheduleEffect = (signal) => {
50
+ PENDING_EFFECTS.push(signal);
51
+ scheduleFlush(flushWatchers);
52
+ };
53
+ exports.scheduleEffect = scheduleEffect;
54
+ const scheduleTracer = (tracer) => {
55
+ PENDING_TRACERS.push(tracer);
56
+ scheduleFlush(flushWatchers);
57
+ };
58
+ exports.scheduleTracer = scheduleTracer;
31
59
  const flushWatchers = async () => {
60
+ const flush = currentFlush;
61
+ // Flush all the dirty signals and pulls recursively, clearing
62
+ // the microtask queue until they are all settled
32
63
  while (PENDING_DIRTIES.length > 0 || PENDING_PULLS.length > 0) {
33
64
  for (const dirty of PENDING_DIRTIES) {
34
65
  dirty._dirtyConsumers();
@@ -40,15 +71,38 @@ const flushWatchers = async () => {
40
71
  PENDING_PULLS = [];
41
72
  await microtask();
42
73
  }
74
+ // Clear the flush so that if any more watchers are scheduled,
75
+ // they will be flushed in the next tick
76
+ currentFlush = null;
43
77
  (0, config_js_1.runBatch)(() => {
44
78
  for (const watcher of PENDING_WATCHERS) {
45
79
  watcher._check();
46
80
  }
81
+ for (const [signal, count] of PENDING_CONNECTS) {
82
+ signal._check(true, count);
83
+ }
47
84
  for (const [signal, count] of PENDING_DISCONNECTS) {
48
85
  signal._disconnect(count);
49
86
  }
87
+ for (const signal of PENDING_EFFECTS) {
88
+ signal._runEffects();
89
+ }
90
+ for (const tracer of PENDING_TRACERS) {
91
+ tracer.flush();
92
+ }
50
93
  PENDING_WATCHERS = [];
94
+ PENDING_CONNECTS.clear();
51
95
  PENDING_DISCONNECTS.clear();
96
+ PENDING_EFFECTS = [];
97
+ PENDING_TRACERS = [];
52
98
  });
99
+ // resolve the flush promise
100
+ flush.resolve();
101
+ };
102
+ const settled = async () => {
103
+ while (currentFlush) {
104
+ await currentFlush.promise;
105
+ }
53
106
  };
107
+ exports.settled = settled;
54
108
  //# sourceMappingURL=scheduling.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scheduling.js","sourceRoot":"","sources":["../../src/scheduling.ts"],"names":[],"mappings":";;;AACA,2CAAsD;AAEtD,IAAI,eAAe,GAA0B,EAAE,CAAC;AAChD,IAAI,aAAa,GAA0B,EAAE,CAAC;AAC9C,IAAI,gBAAgB,GAA0B,EAAE,CAAC;AACjD,IAAI,mBAAmB,GAAG,IAAI,GAAG,EAA+B,CAAC;AAEjE,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AAEnC,MAAM,eAAe,GAAG,CAAC,OAA4B,EAAE,EAAE;IAC9D,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAA,yBAAa,EAAC,aAAa,CAAC,CAAC;AAC/B,CAAC,CAAC;AAHW,QAAA,eAAe,mBAG1B;AAEK,MAAM,aAAa,GAAG,CAAC,MAA2B,EAAE,EAAE;IAC3D,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,IAAA,yBAAa,EAAC,aAAa,CAAC,CAAC;AAC/B,CAAC,CAAC;AAHW,QAAA,aAAa,iBAGxB;AAEK,MAAM,YAAY,GAAG,CAAC,MAA2B,EAAE,EAAE;IAC1D,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,IAAA,yBAAa,EAAC,aAAa,CAAC,CAAC;AAC/B,CAAC,CAAC;AAHW,QAAA,YAAY,gBAGvB;AAEK,MAAM,kBAAkB,GAAG,CAAC,UAA+B,EAAE,EAAE;IACpE,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAEzD,mBAAmB,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;IAEjD,IAAA,yBAAa,EAAC,aAAa,CAAC,CAAC;AAC/B,CAAC,CAAC;AANW,QAAA,kBAAkB,sBAM7B;AAEF,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;IAC/B,OAAO,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9D,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1B,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC;QAED,eAAe,GAAG,EAAE,CAAC;QACrB,aAAa,GAAG,EAAE,CAAC;QAEnB,MAAM,SAAS,EAAE,CAAC;IACpB,CAAC;IAED,IAAA,oBAAQ,EAAC,GAAG,EAAE;QACZ,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;YACvC,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,CAAC;QAED,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,mBAAmB,EAAE,CAAC;YAClD,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QAED,gBAAgB,GAAG,EAAE,CAAC;QACtB,mBAAmB,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"scheduling.js","sourceRoot":"","sources":["../../src/scheduling.ts"],"names":[],"mappings":"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"}
@@ -1,31 +1,11 @@
1
+ import { VisualizerNodeType } from './trace.js';
2
+ import { AsyncResult, AsyncSignal, AsyncTask, Signal, SignalAsyncCompute, SignalCompute, SignalEquals, SignalOptions, SignalOptionsWithInit, SignalSubscribe, Watcher, WatcherListenerOptions } from './types.js';
1
3
  declare const enum SignalType {
2
4
  Computed = 0,
3
5
  Subscription = 1,
4
6
  Async = 2,
5
7
  Watcher = 3
6
8
  }
7
- export interface Signal<T = unknown> {
8
- get(): T;
9
- }
10
- export interface WriteableSignal<T> extends Signal<T> {
11
- set(value: T): void;
12
- }
13
- export type AsyncSignal<T> = Signal<AsyncResult<T>>;
14
- export type SignalCompute<T> = (prev: T | undefined) => T;
15
- export type SignalAsyncCompute<T> = (prev: T | undefined) => T | Promise<T>;
16
- export type SignalWatcherEffect = () => void;
17
- export type SignalEquals<T> = (prev: T, next: T) => boolean;
18
- export type SignalSubscription = {
19
- update?(): void;
20
- unsubscribe?(): void;
21
- };
22
- export type SignalSubscribe<T> = (get: () => T, set: (value: T) => void) => SignalSubscription | undefined | void;
23
- export interface SignalOptions<T> {
24
- equals?: SignalEquals<T>;
25
- }
26
- export interface SignalOptionsWithInit<T> extends SignalOptions<T> {
27
- initValue: T;
28
- }
29
9
  declare const enum SignalState {
30
10
  Clean = 0,
31
11
  MaybeDirty = 1,
@@ -39,8 +19,13 @@ interface Link {
39
19
  consumedAt: number;
40
20
  nextDirty: Link | undefined;
41
21
  }
22
+ export declare function signalTypeToVisualizerType(type: SignalType): VisualizerNodeType;
23
+ interface InternalSignalOptions<T> extends SignalOptions<T, unknown[]> {
24
+ equals: SignalEquals<T>;
25
+ id: string;
26
+ subscribers?: ((value: T) => void)[];
27
+ }
42
28
  export declare class ComputedSignal<T> {
43
- _id: number;
44
29
  _type: SignalType;
45
30
  _deps: Map<ComputedSignal<any>, Link>;
46
31
  _dirtyDep: Link | undefined;
@@ -50,60 +35,38 @@ export declare class ComputedSignal<T> {
50
35
  _computedCount: number;
51
36
  _connectedCount: number;
52
37
  _currentValue: T | AsyncResult<T> | undefined;
53
- _compute: SignalCompute<T> | SignalAsyncCompute<T> | SignalSubscribe<T> | undefined;
54
- _equals: SignalEquals<T>;
38
+ _compute: SignalCompute<T> | SignalAsyncCompute<T> | SignalSubscribe<T>;
39
+ _opts: InternalSignalOptions<T>;
55
40
  _ref: WeakRef<ComputedSignal<T>>;
56
- constructor(type: SignalType, compute: SignalCompute<T> | SignalAsyncCompute<T> | SignalSubscribe<T> | undefined, equals?: SignalEquals<T>, initValue?: T);
41
+ constructor(type: SignalType, compute: SignalCompute<T> | SignalAsyncCompute<T> | SignalSubscribe<T>, opts: InternalSignalOptions<T>, initValue?: T);
57
42
  get(): T | AsyncResult<T>;
58
- _check(shouldWatch?: boolean): number;
59
- _run(wasConnected: boolean, shouldConnect: boolean): void;
43
+ _check(shouldWatch?: boolean, connectCount?: number, immediate?: boolean): number;
44
+ _run(wasConnected: boolean, shouldConnect: boolean, immediate?: boolean): void;
60
45
  _resetDirty(): void;
61
46
  _dirty(): void;
62
47
  _dirtyConsumers(): void;
63
48
  _disconnect(count?: number): void;
49
+ _runEffects(): void;
50
+ addListener(subscriber: (value: T) => void, opts?: WatcherListenerOptions): () => void;
64
51
  }
65
- export interface AsyncBaseResult<T> {
66
- invalidate(): void;
67
- await(): T;
68
- }
69
- export interface AsyncPending<T> extends AsyncBaseResult<T> {
70
- result: undefined;
71
- error: unknown;
72
- isPending: boolean;
73
- isReady: false;
74
- isError: boolean;
75
- isSuccess: boolean;
76
- didResolve: boolean;
77
- }
78
- export interface AsyncReady<T> extends AsyncBaseResult<T> {
79
- result: T;
80
- error: unknown;
81
- isPending: boolean;
82
- isReady: true;
83
- isError: boolean;
84
- isSuccess: boolean;
85
- didResolve: boolean;
86
- }
87
- export type AsyncResult<T> = AsyncPending<T> | AsyncReady<T>;
88
- declare class StateSignal<T> implements StateSignal<T> {
52
+ export declare class StateSignal<T> implements StateSignal<T> {
89
53
  private _value;
90
54
  private _equals;
91
- private _subs;
92
- constructor(_value: T, _equals?: SignalEquals<T>);
55
+ _subs: WeakRef<ComputedSignal<unknown>>[];
56
+ _desc: string;
57
+ constructor(_value: T, _equals?: SignalEquals<T>, desc?: string);
93
58
  get(): T;
94
59
  set(value: T): void;
95
60
  }
96
- export declare function state<T>(initialValue: T, opts?: SignalOptions<T>): StateSignal<T>;
97
- export declare function computed<T>(compute: (prev: T | undefined) => T, opts?: SignalOptions<T>): Signal<T>;
98
- export declare function asyncComputed<T>(compute: (prev: T | undefined) => Promise<T>, opts?: SignalOptions<T>): AsyncSignal<T>;
99
- export declare function asyncComputed<T>(compute: (prev: T | undefined) => Promise<T>, opts: SignalOptionsWithInit<T>): AsyncSignal<T>;
100
- export declare function subscription<T>(subscribe: SignalSubscribe<T>, opts?: SignalOptions<T>): Signal<T | undefined>;
101
- export declare function subscription<T>(subscribe: SignalSubscribe<T>, opts: SignalOptionsWithInit<T>): Signal<T>;
102
- export interface Watcher {
103
- disconnect(): void;
104
- subscribe(subscriber: () => void): () => void;
105
- }
106
- export declare function watcher(fn: () => void): Watcher;
61
+ export declare function createStateSignal<T>(initialValue: T, opts?: Omit<SignalOptions<T, unknown[]>, 'paramKey'>): StateSignal<T>;
62
+ export declare function createComputedSignal<T>(compute: (prev: T | undefined) => T, opts?: SignalOptions<T, unknown[]>): Signal<T>;
63
+ export declare function createAsyncComputedSignal<T>(compute: (prev: T | undefined) => Promise<T>, opts?: SignalOptions<T, unknown[]>): AsyncSignal<T>;
64
+ export declare function createAsyncComputedSignal<T>(compute: (prev: T | undefined) => Promise<T>, opts: SignalOptionsWithInit<T, unknown[]>): AsyncSignal<T>;
65
+ export declare function createSubscriptionSignal<T>(subscribe: SignalSubscribe<T>, opts?: SignalOptions<T, unknown[]>): Signal<T | undefined>;
66
+ export declare function createSubscriptionSignal<T>(subscribe: SignalSubscribe<T>, opts: SignalOptionsWithInit<T, unknown[]>): Signal<T>;
67
+ export declare function createAsyncTaskSignal<T, Args extends unknown[]>(fn: (...args: Args) => Promise<T>): Signal<AsyncTask<T, Args>>;
68
+ export declare function createWatcherSignal<T>(fn: (prev: T | undefined) => T, opts?: SignalOptions<T, unknown[]>): Watcher<T>;
69
+ export declare function getCurrentConsumer(): ComputedSignal<any> | undefined;
107
70
  export declare function isTracking(): boolean;
108
71
  export declare function untrack<T = void>(fn: () => T): T;
109
72
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../src/signals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../src/signals.ts"],"names":[],"mappings":"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"}