signalium 0.2.8 → 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 +6 -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 -68
  44. package/dist/cjs/signals.d.ts.map +1 -1
  45. package/dist/cjs/signals.js +223 -76
  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 -68
  100. package/dist/esm/signals.d.ts.map +1 -1
  101. package/dist/esm/signals.js +215 -72
  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 +328 -169
  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
@@ -3,25 +3,40 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ComputedSignal = void 0;
7
- exports.state = state;
8
- exports.computed = computed;
9
- exports.asyncComputed = asyncComputed;
10
- exports.subscription = subscription;
11
- exports.watcher = watcher;
6
+ exports.StateSignal = exports.ComputedSignal = void 0;
7
+ exports.signalTypeToVisualizerType = signalTypeToVisualizerType;
8
+ exports.createStateSignal = createStateSignal;
9
+ exports.createComputedSignal = createComputedSignal;
10
+ exports.createAsyncComputedSignal = createAsyncComputedSignal;
11
+ exports.createSubscriptionSignal = createSubscriptionSignal;
12
+ exports.createAsyncTaskSignal = createAsyncTaskSignal;
13
+ exports.createWatcherSignal = createWatcherSignal;
14
+ exports.getCurrentConsumer = getCurrentConsumer;
12
15
  exports.isTracking = isTracking;
13
16
  exports.untrack = untrack;
14
17
  const scheduling_js_1 = require("./scheduling.js");
15
18
  const weakref_js_1 = __importDefault(require("./weakref.js"));
19
+ const trace_js_1 = require("./trace.js");
16
20
  let CURRENT_ORD = 0;
17
21
  let CURRENT_CONSUMER;
18
22
  let CURRENT_IS_WAITING = false;
19
- let ID = 0;
20
23
  const SUBSCRIPTIONS = new WeakMap();
21
24
  const ACTIVE_ASYNCS = new WeakMap();
22
25
  const WAITING = Symbol();
26
+ const FALSE_EQUALS = () => false;
27
+ function signalTypeToVisualizerType(type) {
28
+ switch (type) {
29
+ case 0 /* SignalType.Computed */:
30
+ return trace_js_1.VisualizerNodeType.Computed;
31
+ case 1 /* SignalType.Subscription */:
32
+ return trace_js_1.VisualizerNodeType.Subscription;
33
+ case 2 /* SignalType.Async */:
34
+ return trace_js_1.VisualizerNodeType.AsyncComputed;
35
+ case 3 /* SignalType.Watcher */:
36
+ return trace_js_1.VisualizerNodeType.Watcher;
37
+ }
38
+ }
23
39
  class ComputedSignal {
24
- _id = ID++;
25
40
  _type;
26
41
  _deps = new Map();
27
42
  _dirtyDep = undefined;
@@ -32,13 +47,12 @@ class ComputedSignal {
32
47
  _connectedCount = 0;
33
48
  _currentValue;
34
49
  _compute;
35
- _equals;
50
+ _opts;
36
51
  _ref = new weakref_js_1.default(this);
37
- constructor(type, compute, equals, initValue) {
52
+ constructor(type, compute, opts, initValue) {
38
53
  this._type = type;
39
54
  this._compute = compute;
40
- this._equals = equals ?? ((a, b) => a === b);
41
- this._connectedCount = type === 3 /* SignalType.Watcher */ ? 1 : 0;
55
+ this._opts = opts;
42
56
  this._currentValue =
43
57
  type !== 2 /* SignalType.Async */
44
58
  ? initValue
@@ -58,6 +72,10 @@ class ComputedSignal {
58
72
  if (CURRENT_CONSUMER === undefined || CURRENT_CONSUMER._type !== 2 /* SignalType.Async */) {
59
73
  throw new Error('Cannot await an async signal outside of an async signal. If you are using an async function, you must use signal.await() for all async signals _before_ the first language-level `await` keyword statement (e.g. it must be synchronous).');
60
74
  }
75
+ trace_js_1.TRACER?.emit({
76
+ type: trace_js_1.TracerEventType.StartLoading,
77
+ id: CURRENT_CONSUMER._opts.id,
78
+ });
61
79
  const value = this._currentValue;
62
80
  if (value.isPending) {
63
81
  const currentConsumer = CURRENT_CONSUMER;
@@ -76,6 +94,16 @@ class ComputedSignal {
76
94
  if (CURRENT_CONSUMER !== undefined) {
77
95
  const { _deps: deps, _computedCount: computedCount, _connectedCount: connectedCount } = CURRENT_CONSUMER;
78
96
  const prevLink = deps.get(this);
97
+ if (prevLink === undefined) {
98
+ trace_js_1.TRACER?.emit({
99
+ type: trace_js_1.TracerEventType.Connected,
100
+ id: CURRENT_CONSUMER._opts.id,
101
+ childId: this._opts.id,
102
+ name: this._opts.desc,
103
+ params: this._opts.params,
104
+ nodeType: signalTypeToVisualizerType(this._type),
105
+ });
106
+ }
79
107
  const ord = CURRENT_ORD++;
80
108
  this._check(!prevLink && connectedCount > 0);
81
109
  if (prevLink === undefined) {
@@ -94,7 +122,6 @@ class ComputedSignal {
94
122
  prevLink.ord = ord;
95
123
  prevLink.version = this._version;
96
124
  prevLink.consumedAt = computedCount;
97
- // prevLink.nextDirty = undefined;
98
125
  this._subs.add(prevLink);
99
126
  }
100
127
  }
@@ -103,14 +130,13 @@ class ComputedSignal {
103
130
  }
104
131
  return this._currentValue;
105
132
  }
106
- _check(shouldWatch = false) {
107
- // COUNTS.checks++;
133
+ _check(shouldWatch = false, connectCount = 1, immediate = false) {
108
134
  let state = this._state;
109
135
  let connectedCount = this._connectedCount;
110
136
  const wasConnected = connectedCount > 0;
111
137
  const shouldConnect = shouldWatch && !wasConnected;
112
138
  if (shouldWatch) {
113
- this._connectedCount = connectedCount = connectedCount + 1;
139
+ this._connectedCount = connectedCount = connectedCount + connectCount;
114
140
  }
115
141
  if (shouldConnect) {
116
142
  if (this._type === 1 /* SignalType.Subscription */) {
@@ -140,7 +166,7 @@ class ComputedSignal {
140
166
  }
141
167
  }
142
168
  if (state === 2 /* SignalState.Dirty */) {
143
- this._run(wasConnected, shouldConnect);
169
+ this._run(wasConnected, shouldConnect, immediate);
144
170
  }
145
171
  else {
146
172
  this._resetDirty();
@@ -149,7 +175,11 @@ class ComputedSignal {
149
175
  this._dirtyDep = undefined;
150
176
  return this._version;
151
177
  }
152
- _run(wasConnected, shouldConnect) {
178
+ _run(wasConnected, shouldConnect, immediate = false) {
179
+ trace_js_1.TRACER?.emit({
180
+ type: trace_js_1.TracerEventType.StartUpdate,
181
+ id: this._opts.id,
182
+ });
153
183
  const { _type: type } = this;
154
184
  const prevConsumer = CURRENT_CONSUMER;
155
185
  try {
@@ -158,11 +188,12 @@ class ComputedSignal {
158
188
  this._computedCount++;
159
189
  switch (type) {
160
190
  case 0 /* SignalType.Computed */: {
191
+ const version = this._version;
161
192
  const prevValue = this._currentValue;
162
193
  const nextValue = this._compute(prevValue);
163
- if (!this._equals(prevValue, nextValue)) {
194
+ if (version === 0 || !this._opts.equals(prevValue, nextValue)) {
164
195
  this._currentValue = nextValue;
165
- this._version++;
196
+ this._version = version + 1;
166
197
  }
167
198
  break;
168
199
  }
@@ -202,7 +233,12 @@ class ComputedSignal {
202
233
  }
203
234
  else if (nextValue instanceof Promise) {
204
235
  const currentVersion = ++this._version;
205
- nextValue = nextValue.then(result => {
236
+ trace_js_1.TRACER?.emit({
237
+ type: trace_js_1.TracerEventType.StartLoading,
238
+ id: this._opts.id,
239
+ });
240
+ nextValue = nextValue
241
+ .then(result => {
206
242
  if (currentVersion !== this._version) {
207
243
  return;
208
244
  }
@@ -222,6 +258,13 @@ class ComputedSignal {
222
258
  value.isError = true;
223
259
  this._version++;
224
260
  (0, scheduling_js_1.scheduleDirty)(this);
261
+ })
262
+ .finally(() => {
263
+ trace_js_1.TRACER?.emit({
264
+ type: trace_js_1.TracerEventType.EndLoading,
265
+ id: this._opts.id,
266
+ value: value,
267
+ });
225
268
  });
226
269
  ACTIVE_ASYNCS.set(this, nextValue);
227
270
  value.isPending = true;
@@ -235,18 +278,34 @@ class ComputedSignal {
235
278
  value.isSuccess = true;
236
279
  value.isError = false;
237
280
  this._version++;
281
+ trace_js_1.TRACER?.emit({
282
+ type: trace_js_1.TracerEventType.EndLoading,
283
+ id: this._opts.id,
284
+ value: value,
285
+ });
238
286
  }
239
287
  break;
240
288
  }
241
289
  case 1 /* SignalType.Subscription */: {
242
290
  if (shouldConnect) {
243
291
  const subscription = this._compute(() => this._currentValue, value => {
244
- if (this._equals(value, this._currentValue)) {
292
+ const version = this._version;
293
+ if (version !== 0 && this._opts.equals(value, this._currentValue)) {
245
294
  return;
246
295
  }
296
+ trace_js_1.TRACER?.emit({
297
+ type: trace_js_1.TracerEventType.StartUpdate,
298
+ id: this._opts.id,
299
+ });
247
300
  this._currentValue = value;
248
- this._version++;
301
+ this._version = version + 1;
249
302
  this._dirtyConsumers();
303
+ trace_js_1.TRACER?.emit({
304
+ type: trace_js_1.TracerEventType.EndUpdate,
305
+ id: this._opts.id,
306
+ value: this._currentValue,
307
+ preserveChildren: true,
308
+ });
250
309
  });
251
310
  SUBSCRIPTIONS.set(this, subscription);
252
311
  }
@@ -257,30 +316,53 @@ class ComputedSignal {
257
316
  break;
258
317
  }
259
318
  default: {
260
- this._compute();
319
+ const version = this._version;
320
+ const prevValue = this._currentValue;
321
+ const nextValue = this._compute(prevValue);
322
+ if (version === 0 || !this._opts.equals(prevValue, nextValue)) {
323
+ this._currentValue = nextValue;
324
+ this._version = version + 1;
325
+ if (immediate) {
326
+ this._runEffects();
327
+ }
328
+ else {
329
+ (0, scheduling_js_1.scheduleEffect)(this);
330
+ }
331
+ }
332
+ break;
261
333
  }
262
334
  }
263
335
  }
264
336
  finally {
265
- const deps = this._deps;
266
- for (const link of deps.values()) {
267
- if (link.consumedAt === this._computedCount)
268
- continue;
269
- const dep = link.dep;
270
- if (wasConnected) {
271
- (0, scheduling_js_1.scheduleDisconnect)(dep);
337
+ trace_js_1.TRACER?.emit({
338
+ type: trace_js_1.TracerEventType.EndUpdate,
339
+ id: this._opts.id,
340
+ value: this._currentValue,
341
+ });
342
+ if (this._type !== 3 /* SignalType.Watcher */) {
343
+ const deps = this._deps;
344
+ for (const link of deps.values()) {
345
+ if (link.consumedAt === this._computedCount)
346
+ continue;
347
+ const dep = link.dep;
348
+ if (wasConnected) {
349
+ (0, scheduling_js_1.scheduleDisconnect)(dep);
350
+ }
351
+ trace_js_1.TRACER?.emit({
352
+ type: trace_js_1.TracerEventType.Disconnected,
353
+ id: this._opts.id,
354
+ childId: dep._opts.id,
355
+ });
356
+ deps.delete(dep);
357
+ dep._subs.delete(link);
272
358
  }
273
- deps.delete(dep);
274
- dep._subs.delete(link);
275
359
  }
276
360
  CURRENT_CONSUMER = prevConsumer;
277
361
  }
278
362
  }
279
363
  _resetDirty() {
280
364
  let dirty = this._dirtyDep;
281
- // COUNTS.dirtyResetIterations++;
282
365
  while (dirty !== undefined) {
283
- // COUNTS.dirtyResetIterations++;
284
366
  dirty.dep._subs.add(dirty);
285
367
  let nextDirty = dirty.nextDirty;
286
368
  dirty.nextDirty = undefined;
@@ -317,7 +399,6 @@ class ComputedSignal {
317
399
  else {
318
400
  let nextDirty = dirty.nextDirty;
319
401
  while (nextDirty !== undefined && nextDirty.ord < ord) {
320
- // COUNTS.dirtyInsertIterations++;
321
402
  dirty = nextDirty;
322
403
  nextDirty = dirty.nextDirty;
323
404
  }
@@ -356,18 +437,55 @@ class ComputedSignal {
356
437
  dep._disconnect();
357
438
  }
358
439
  }
440
+ _runEffects() {
441
+ for (const subscriber of this._opts.subscribers) {
442
+ subscriber(this._currentValue);
443
+ }
444
+ }
445
+ addListener(subscriber, opts) {
446
+ const subscribers = this._opts.subscribers;
447
+ const index = subscribers.indexOf(subscriber);
448
+ if (index === -1) {
449
+ subscribers.push(subscriber);
450
+ if (opts?.immediate) {
451
+ this._check(true, 1, true);
452
+ }
453
+ else {
454
+ (0, scheduling_js_1.scheduleConnect)(this);
455
+ }
456
+ }
457
+ return () => {
458
+ const index = subscribers.indexOf(subscriber);
459
+ if (index !== -1) {
460
+ subscribers.splice(index, 1);
461
+ (0, scheduling_js_1.scheduleDisconnect)(this);
462
+ }
463
+ };
464
+ }
359
465
  }
360
466
  exports.ComputedSignal = ComputedSignal;
467
+ let STATE_ID = 0;
361
468
  class StateSignal {
362
469
  _value;
363
470
  _equals;
364
471
  _subs = [];
365
- constructor(_value, _equals = (a, b) => a === b) {
472
+ _desc;
473
+ constructor(_value, _equals = (a, b) => a === b, desc = 'state') {
366
474
  this._value = _value;
367
475
  this._equals = _equals;
476
+ this._desc = `${desc}${STATE_ID++}`;
368
477
  }
369
478
  get() {
370
479
  if (CURRENT_CONSUMER !== undefined) {
480
+ trace_js_1.TRACER?.emit({
481
+ type: trace_js_1.TracerEventType.ConsumeState,
482
+ id: CURRENT_CONSUMER._opts.id,
483
+ childId: this._desc,
484
+ value: this._value,
485
+ setValue: (value) => {
486
+ this.set(value);
487
+ },
488
+ });
371
489
  this._subs.push(CURRENT_CONSUMER._ref);
372
490
  }
373
491
  return this._value;
@@ -397,51 +515,81 @@ class StateSignal {
397
515
  this._subs = [];
398
516
  }
399
517
  }
400
- function state(initialValue, opts) {
401
- return new StateSignal(initialValue, opts?.equals);
518
+ exports.StateSignal = StateSignal;
519
+ let UNKNOWN_SIGNAL_ID = 0;
520
+ const normalizeOpts = (opts) => {
521
+ return {
522
+ equals: opts?.equals === false ? FALSE_EQUALS : (opts?.equals ?? ((a, b) => a === b)),
523
+ id: opts?.id ?? `unknownSignal${UNKNOWN_SIGNAL_ID++}`,
524
+ desc: opts?.desc,
525
+ params: opts?.params,
526
+ };
527
+ };
528
+ function createStateSignal(initialValue, opts) {
529
+ const equals = opts?.equals === false ? FALSE_EQUALS : (opts?.equals ?? ((a, b) => a === b));
530
+ return new StateSignal(initialValue, equals, opts?.desc);
402
531
  }
403
- function computed(compute, opts) {
404
- return new ComputedSignal(0 /* SignalType.Computed */, compute, opts?.equals);
532
+ function createComputedSignal(compute, opts) {
533
+ return new ComputedSignal(0 /* SignalType.Computed */, compute, normalizeOpts(opts));
405
534
  }
406
- function asyncComputed(compute, opts) {
407
- return new ComputedSignal(2 /* SignalType.Async */, compute, opts?.equals, opts?.initValue);
535
+ function createAsyncComputedSignal(compute, opts) {
536
+ return new ComputedSignal(2 /* SignalType.Async */, compute, normalizeOpts(opts), opts?.initValue);
408
537
  }
409
- function subscription(subscribe, opts) {
410
- return new ComputedSignal(1 /* SignalType.Subscription */, subscribe, opts?.equals, opts?.initValue);
538
+ function createSubscriptionSignal(subscribe, opts) {
539
+ return new ComputedSignal(1 /* SignalType.Subscription */, subscribe, normalizeOpts(opts), opts?.initValue);
411
540
  }
412
- function watcher(fn, opts) {
413
- const subscribers = [];
414
- let initialized = false;
415
- const watcher = new ComputedSignal(3 /* SignalType.Watcher */, () => {
416
- fn();
417
- if (initialized) {
418
- untrack(() => {
419
- for (const subscriber of subscribers) {
420
- subscriber();
421
- }
422
- });
541
+ function createAsyncTaskSignal(fn) {
542
+ let currentPromise;
543
+ const task = {
544
+ result: undefined,
545
+ error: undefined,
546
+ isPending: false,
547
+ isSuccess: false,
548
+ isError: false,
549
+ isReady: false,
550
+ async run(...params) {
551
+ if (!task.isPending) {
552
+ currentPromise = run(...params);
553
+ }
554
+ return currentPromise;
555
+ },
556
+ };
557
+ const run = async (...params) => {
558
+ try {
559
+ task.isPending = true;
560
+ task.isError = false;
561
+ task.isSuccess = false;
562
+ signal.set(task);
563
+ const result = await fn(...params);
564
+ task.result = result;
565
+ task.isSuccess = true;
566
+ task.isReady = true;
567
+ return result;
423
568
  }
424
- else {
425
- initialized = true;
569
+ catch (error) {
570
+ task.error = error;
571
+ task.isError = true;
572
+ throw error;
573
+ }
574
+ finally {
575
+ task.isPending = false;
576
+ signal.set(task);
426
577
  }
427
- });
428
- if (opts?.immediate) {
429
- watcher.get();
430
- }
431
- else {
432
- (0, scheduling_js_1.scheduleWatcher)(watcher);
433
- }
434
- return {
435
- disconnect() {
436
- (0, scheduling_js_1.scheduleDisconnect)(watcher);
437
- },
438
- subscribe(subscriber) {
439
- subscribers.push(subscriber);
440
- return () => {
441
- subscribers.splice(subscribers.indexOf(subscriber), 1);
442
- };
443
- },
444
578
  };
579
+ const signal = createStateSignal(task, { equals: false });
580
+ return signal;
581
+ }
582
+ function createWatcherSignal(fn, opts) {
583
+ const normalizedOpts = normalizeOpts({
584
+ equals: FALSE_EQUALS,
585
+ subscribers: [],
586
+ ...opts,
587
+ });
588
+ normalizedOpts.subscribers = [];
589
+ return new ComputedSignal(3 /* SignalType.Watcher */, fn, normalizedOpts);
590
+ }
591
+ function getCurrentConsumer() {
592
+ return CURRENT_CONSUMER;
445
593
  }
446
594
  function isTracking() {
447
595
  return CURRENT_CONSUMER !== undefined;
@@ -450,7 +598,6 @@ function untrack(fn) {
450
598
  const prevConsumer = CURRENT_CONSUMER;
451
599
  try {
452
600
  CURRENT_CONSUMER = undefined;
453
- // LAST_CONSUMED = undefined;
454
601
  return fn();
455
602
  }
456
603
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"signals.js","sourceRoot":"","sources":["../../src/signals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signals.js","sourceRoot":"","sources":["../../src/signals.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ import { Signal, Watcher } from './types.js';
2
+ export declare let TRACER: TracerProxy | undefined;
3
+ export declare enum VisualizerNodeType {
4
+ State = 0,
5
+ Computed = 1,
6
+ AsyncComputed = 2,
7
+ Subscription = 3,
8
+ Watcher = 4
9
+ }
10
+ export interface VisualizerLink {
11
+ connected: boolean;
12
+ version: number;
13
+ node: VisualizerNode;
14
+ }
15
+ export declare enum TracerEventType {
16
+ StartUpdate = "StartUpdate",
17
+ EndUpdate = "EndUpdate",
18
+ StartLoading = "StartLoading",
19
+ EndLoading = "EndLoading",
20
+ Connected = "Connected",
21
+ Disconnected = "Disconnected",
22
+ ConsumeState = "ConsumeState"
23
+ }
24
+ type StartUpdateEvent = {
25
+ type: TracerEventType.StartUpdate;
26
+ id: string;
27
+ };
28
+ type EndUpdateEvent = {
29
+ type: TracerEventType.EndUpdate;
30
+ id: string;
31
+ value: unknown;
32
+ preserveChildren?: boolean;
33
+ };
34
+ type StartLoadingEvent = {
35
+ type: TracerEventType.StartLoading;
36
+ id: string;
37
+ };
38
+ type EndLoadingEvent = {
39
+ type: TracerEventType.EndLoading;
40
+ id: string;
41
+ value: unknown;
42
+ };
43
+ type ConnectedEvent = {
44
+ type: TracerEventType.Connected;
45
+ id: string;
46
+ childId: string;
47
+ nodeType: VisualizerNodeType;
48
+ name?: string;
49
+ params?: string;
50
+ };
51
+ type DisconnectedEvent = {
52
+ type: TracerEventType.Disconnected;
53
+ id: string;
54
+ childId: string;
55
+ };
56
+ type ConsumeStateEvent = {
57
+ type: TracerEventType.ConsumeState;
58
+ id: string;
59
+ childId: string;
60
+ value: unknown;
61
+ setValue: (value: unknown) => void;
62
+ };
63
+ type TracerEvent = StartUpdateEvent | EndUpdateEvent | StartLoadingEvent | EndLoadingEvent | ConnectedEvent | DisconnectedEvent | ConsumeStateEvent;
64
+ export declare class VisualizerNode {
65
+ private tracer;
66
+ depth: number;
67
+ type: VisualizerNodeType;
68
+ id: string;
69
+ value: unknown;
70
+ name?: string | undefined;
71
+ params?: string | undefined;
72
+ private _setValue?;
73
+ private subscribers;
74
+ private nextStateChildren;
75
+ stateChildren: VisualizerNode[];
76
+ children: VisualizerLink[];
77
+ updating: boolean;
78
+ loading: boolean;
79
+ version: number;
80
+ private updatingVersion;
81
+ private didConnect;
82
+ constructor(tracer: Tracer, depth: number, type: VisualizerNodeType, id: string, value: unknown, name?: string | undefined, params?: string | undefined, _setValue?: ((value: unknown) => void) | undefined);
83
+ get showParams(): boolean;
84
+ get showValue(): boolean;
85
+ get interactive(): boolean;
86
+ setValue(value: unknown): void;
87
+ connectChild(child: VisualizerNode): boolean;
88
+ disconnectChild(childId: string): void;
89
+ startUpdate(): void;
90
+ endUpdate(value: unknown, preserveChildren?: boolean): void;
91
+ startLoading(): void;
92
+ endLoading(value: unknown): void;
93
+ consumeState(id: string, value: unknown, setValue: (value: unknown) => void): void;
94
+ notify(): void;
95
+ subscribe(subscriber: () => void): () => void;
96
+ }
97
+ export declare class Tracer {
98
+ showParams: boolean;
99
+ showValue: boolean;
100
+ interactive: boolean;
101
+ private nodeMap;
102
+ delay: number;
103
+ maxDepth: number;
104
+ private initialized;
105
+ constructor(id: string, immediate?: boolean, showParams?: boolean, showValue?: boolean, interactive?: boolean);
106
+ rootNode: VisualizerNode;
107
+ private eventQueue;
108
+ private currentFlush;
109
+ emit(event: TracerEvent): void;
110
+ handleEvent(event: TracerEvent, nextEvent?: TracerEvent): boolean;
111
+ flush(): Promise<void>;
112
+ addListener(listener: () => void): () => void;
113
+ }
114
+ declare class TracerProxy {
115
+ private tracers;
116
+ constructor();
117
+ emit(event: TracerEvent): void;
118
+ createTracer(id: string, immediate?: boolean): Tracer;
119
+ removeTracer(tracer: Tracer): void;
120
+ flush(): void;
121
+ }
122
+ export declare function setTracing(enabled: boolean): void;
123
+ export declare function createTracer(_signal: Signal<unknown> | Watcher<unknown>, immediate?: boolean): Tracer;
124
+ export declare function createTracerFromId(id: string, immediate?: boolean): Tracer;
125
+ export declare function removeTracer(tracer: Tracer): void;
126
+ export {};
127
+ //# sourceMappingURL=trace.d.ts.map