@fluixi/reactive 1.0.0-alpha.95 → 1.0.0-alpha.96

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 (69) hide show
  1. package/dist/cdn/reactive.cjs +14 -3
  2. package/dist/cdn/reactive.global.js +2 -2
  3. package/dist/cdn/reactive.mjs +14 -3
  4. package/dist/cdn/signal.cjs +1 -1
  5. package/dist/cdn/signal.global.js +2 -2
  6. package/dist/cdn/signal.mjs +1 -1
  7. package/dist/index.cjs +14 -3
  8. package/dist/index.mjs +14 -3
  9. package/dist/lib/index.cjs +15 -4
  10. package/dist/lib/index.mjs +15 -4
  11. package/dist/lib/observable/index.cjs +1 -1
  12. package/dist/lib/observable/index.mjs +1 -1
  13. package/dist/lib/signal/api.cjs +23 -3
  14. package/dist/lib/signal/api.mjs +23 -3
  15. package/dist/lib/signal/cached-resource.cjs +14 -3
  16. package/dist/lib/signal/cached-resource.mjs +14 -3
  17. package/dist/lib/signal/graph/children.cjs +1 -1
  18. package/dist/lib/signal/graph/children.mjs +1 -1
  19. package/dist/lib/signal/graph/compat.cjs +15 -4
  20. package/dist/lib/signal/graph/compat.mjs +15 -4
  21. package/dist/lib/signal/graph/core.cjs +2 -2
  22. package/dist/lib/signal/graph/core.mjs +2 -2
  23. package/dist/lib/signal/graph/debounced.cjs +13 -2
  24. package/dist/lib/signal/graph/debounced.mjs +13 -2
  25. package/dist/lib/signal/graph/derived.cjs +13 -2
  26. package/dist/lib/signal/graph/derived.mjs +13 -2
  27. package/dist/lib/signal/graph/error-boundary.cjs +13 -2
  28. package/dist/lib/signal/graph/error-boundary.mjs +13 -2
  29. package/dist/lib/signal/graph/index.cjs +2 -2
  30. package/dist/lib/signal/graph/index.mjs +2 -2
  31. package/dist/lib/signal/graph/observe.cjs +1 -1
  32. package/dist/lib/signal/graph/observe.mjs +1 -1
  33. package/dist/lib/signal/graph/resource.cjs +13 -2
  34. package/dist/lib/signal/graph/resource.mjs +13 -2
  35. package/dist/lib/signal/graph/runtime.cjs +23 -3
  36. package/dist/lib/signal/graph/runtime.d.ts +4 -1
  37. package/dist/lib/signal/graph/runtime.d.ts.map +1 -1
  38. package/dist/lib/signal/graph/runtime.js +23 -4
  39. package/dist/lib/signal/graph/runtime.mjs +23 -3
  40. package/dist/lib/signal/graph/signal-next.cjs +15 -4
  41. package/dist/lib/signal/graph/signal-next.mjs +15 -4
  42. package/dist/lib/signal/graph/state.cjs +1 -1
  43. package/dist/lib/signal/graph/state.mjs +1 -1
  44. package/dist/lib/signal/graph/suspense.cjs +13 -2
  45. package/dist/lib/signal/graph/suspense.mjs +13 -2
  46. package/dist/lib/signal/index-legacy.cjs +15 -4
  47. package/dist/lib/signal/index-legacy.mjs +15 -4
  48. package/dist/lib/signal/index.cjs +15 -4
  49. package/dist/lib/signal/index.mjs +15 -4
  50. package/dist/lib/signal/list.cjs +14 -3
  51. package/dist/lib/signal/list.mjs +14 -3
  52. package/dist/lib/signal/resource-api.cjs +13 -2
  53. package/dist/lib/signal/resource-api.mjs +13 -2
  54. package/dist/lib/signal/signal.cjs +13 -2
  55. package/dist/lib/signal/signal.mjs +13 -2
  56. package/dist/lib/signal/utilities.cjs +14 -3
  57. package/dist/lib/signal/utilities.mjs +14 -3
  58. package/dist/lib/store/api.cjs +1 -1
  59. package/dist/lib/store/api.mjs +1 -1
  60. package/dist/lib/store/index.cjs +2 -2
  61. package/dist/lib/store/index.mjs +2 -2
  62. package/dist/lib/store/store.cjs +1 -1
  63. package/dist/lib/store/store.mjs +1 -1
  64. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  65. package/dist/version.generated.cjs +2 -2
  66. package/dist/version.generated.d.ts +1 -1
  67. package/dist/version.generated.js +1 -1
  68. package/dist/version.generated.mjs +2 -2
  69. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  // src/version.generated.ts
2
- var VERSION = "1.0.0-alpha.95";
2
+ var VERSION = "1.0.0-alpha.96";
3
3
 
4
4
  // src/lib/signal/graph/state.ts
5
5
  var MAJOR = VERSION.split(".")[0];
@@ -270,6 +270,15 @@ var Watcher = class {
270
270
  if (wasEmpty) this._notifyFn();
271
271
  }
272
272
  };
273
+ function untrack(fn) {
274
+ if (G.untracked) return fn();
275
+ G.untracked = true;
276
+ try {
277
+ return fn();
278
+ } finally {
279
+ G.untracked = false;
280
+ }
281
+ }
273
282
 
274
283
  // src/lib/signal/graph/runtime.ts
275
284
  function createChildOwner(parent) {
@@ -343,7 +352,7 @@ function createRoot(fn) {
343
352
  const prev = G.owner;
344
353
  G.owner = owner;
345
354
  try {
346
- return fn(() => disposeOwner(owner));
355
+ return untrack(() => fn(() => disposeOwner(owner)));
347
356
  } finally {
348
357
  G.owner = prev;
349
358
  }
@@ -365,6 +374,8 @@ function flushSync() {
365
374
  if (G.flushing) return;
366
375
  G.flushing = true;
367
376
  let guard = 0;
377
+ let failed = false;
378
+ let first;
368
379
  try {
369
380
  while (G.queue.length) {
370
381
  if (++guard > 1e5) throw new Error("[fluixi] effect flush did not settle (cycle?)");
@@ -372,12 +383,21 @@ function flushSync() {
372
383
  G.queue = [];
373
384
  for (const e of batchOf) {
374
385
  e.queued = false;
375
- if (!e.disposed) e.run();
386
+ if (e.disposed) continue;
387
+ try {
388
+ e.run();
389
+ } catch (error) {
390
+ if (!failed) {
391
+ failed = true;
392
+ first = error;
393
+ }
394
+ }
376
395
  }
377
396
  }
378
397
  } finally {
379
398
  G.flushing = false;
380
399
  }
400
+ if (failed) throw first;
381
401
  }
382
402
  function afterWrite() {
383
403
  if (G.batchDepth === 0) flushSync();
@@ -1,4 +1,4 @@
1
- /*! @fluixi/reactive v1.0.0-alpha.95 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
1
+ /*! @fluixi/reactive v1.0.0-alpha.96 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
2
2
  "use strict";
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -28,7 +28,7 @@ __export(cached_resource_exports, {
28
28
  module.exports = __toCommonJS(cached_resource_exports);
29
29
 
30
30
  // src/version.generated.ts
31
- var VERSION = "1.0.0-alpha.95";
31
+ var VERSION = "1.0.0-alpha.96";
32
32
 
33
33
  // src/lib/signal/graph/state.ts
34
34
  var MAJOR = VERSION.split(".")[0];
@@ -351,6 +351,8 @@ function flushSync() {
351
351
  if (G.flushing) return;
352
352
  G.flushing = true;
353
353
  let guard = 0;
354
+ let failed = false;
355
+ let first;
354
356
  try {
355
357
  while (G.queue.length) {
356
358
  if (++guard > 1e5) throw new Error("[fluixi] effect flush did not settle (cycle?)");
@@ -358,12 +360,21 @@ function flushSync() {
358
360
  G.queue = [];
359
361
  for (const e of batchOf) {
360
362
  e.queued = false;
361
- if (!e.disposed) e.run();
363
+ if (e.disposed) continue;
364
+ try {
365
+ e.run();
366
+ } catch (error) {
367
+ if (!failed) {
368
+ failed = true;
369
+ first = error;
370
+ }
371
+ }
362
372
  }
363
373
  }
364
374
  } finally {
365
375
  G.flushing = false;
366
376
  }
377
+ if (failed) throw first;
367
378
  }
368
379
  function afterWrite() {
369
380
  if (G.batchDepth === 0) flushSync();
@@ -1,7 +1,7 @@
1
- /*! @fluixi/reactive v1.0.0-alpha.95 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
1
+ /*! @fluixi/reactive v1.0.0-alpha.96 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
2
2
 
3
3
  // src/version.generated.ts
4
- var VERSION = "1.0.0-alpha.95";
4
+ var VERSION = "1.0.0-alpha.96";
5
5
 
6
6
  // src/lib/signal/graph/state.ts
7
7
  var MAJOR = VERSION.split(".")[0];
@@ -324,6 +324,8 @@ function flushSync() {
324
324
  if (G.flushing) return;
325
325
  G.flushing = true;
326
326
  let guard = 0;
327
+ let failed = false;
328
+ let first;
327
329
  try {
328
330
  while (G.queue.length) {
329
331
  if (++guard > 1e5) throw new Error("[fluixi] effect flush did not settle (cycle?)");
@@ -331,12 +333,21 @@ function flushSync() {
331
333
  G.queue = [];
332
334
  for (const e of batchOf) {
333
335
  e.queued = false;
334
- if (!e.disposed) e.run();
336
+ if (e.disposed) continue;
337
+ try {
338
+ e.run();
339
+ } catch (error) {
340
+ if (!failed) {
341
+ failed = true;
342
+ first = error;
343
+ }
344
+ }
335
345
  }
336
346
  }
337
347
  } finally {
338
348
  G.flushing = false;
339
349
  }
350
+ if (failed) throw first;
340
351
  }
341
352
  function afterWrite() {
342
353
  if (G.batchDepth === 0) flushSync();
@@ -25,7 +25,7 @@ __export(children_exports, {
25
25
  module.exports = __toCommonJS(children_exports);
26
26
 
27
27
  // src/version.generated.ts
28
- var VERSION = "1.0.0-alpha.95";
28
+ var VERSION = "1.0.0-alpha.96";
29
29
 
30
30
  // src/lib/signal/graph/state.ts
31
31
  var MAJOR = VERSION.split(".")[0];
@@ -1,5 +1,5 @@
1
1
  // src/version.generated.ts
2
- var VERSION = "1.0.0-alpha.95";
2
+ var VERSION = "1.0.0-alpha.96";
3
3
 
4
4
  // src/lib/signal/graph/state.ts
5
5
  var MAJOR = VERSION.split(".")[0];
@@ -1,4 +1,4 @@
1
- /*! @fluixi/reactive v1.0.0-alpha.95 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
1
+ /*! @fluixi/reactive v1.0.0-alpha.96 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
2
2
  "use strict";
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -42,7 +42,7 @@ __export(compat_exports, {
42
42
  module.exports = __toCommonJS(compat_exports);
43
43
 
44
44
  // src/version.generated.ts
45
- var VERSION = "1.0.0-alpha.95";
45
+ var VERSION = "1.0.0-alpha.96";
46
46
 
47
47
  // src/lib/signal/graph/state.ts
48
48
  var MAJOR = VERSION.split(".")[0];
@@ -369,7 +369,7 @@ function createRoot(fn) {
369
369
  const prev = G.owner;
370
370
  G.owner = owner;
371
371
  try {
372
- return fn(() => disposeOwner(owner));
372
+ return untrack(() => fn(() => disposeOwner(owner)));
373
373
  } finally {
374
374
  G.owner = prev;
375
375
  }
@@ -391,6 +391,8 @@ function flushSync() {
391
391
  if (G.flushing) return;
392
392
  G.flushing = true;
393
393
  let guard = 0;
394
+ let failed = false;
395
+ let first;
394
396
  try {
395
397
  while (G.queue.length) {
396
398
  if (++guard > 1e5) throw new Error("[fluixi] effect flush did not settle (cycle?)");
@@ -398,12 +400,21 @@ function flushSync() {
398
400
  G.queue = [];
399
401
  for (const e of batchOf) {
400
402
  e.queued = false;
401
- if (!e.disposed) e.run();
403
+ if (e.disposed) continue;
404
+ try {
405
+ e.run();
406
+ } catch (error) {
407
+ if (!failed) {
408
+ failed = true;
409
+ first = error;
410
+ }
411
+ }
402
412
  }
403
413
  }
404
414
  } finally {
405
415
  G.flushing = false;
406
416
  }
417
+ if (failed) throw first;
407
418
  }
408
419
  function afterWrite() {
409
420
  if (G.batchDepth === 0) flushSync();
@@ -1,7 +1,7 @@
1
- /*! @fluixi/reactive v1.0.0-alpha.95 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
1
+ /*! @fluixi/reactive v1.0.0-alpha.96 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
2
2
 
3
3
  // src/version.generated.ts
4
- var VERSION = "1.0.0-alpha.95";
4
+ var VERSION = "1.0.0-alpha.96";
5
5
 
6
6
  // src/lib/signal/graph/state.ts
7
7
  var MAJOR = VERSION.split(".")[0];
@@ -328,7 +328,7 @@ function createRoot(fn) {
328
328
  const prev = G.owner;
329
329
  G.owner = owner;
330
330
  try {
331
- return fn(() => disposeOwner(owner));
331
+ return untrack(() => fn(() => disposeOwner(owner)));
332
332
  } finally {
333
333
  G.owner = prev;
334
334
  }
@@ -350,6 +350,8 @@ function flushSync() {
350
350
  if (G.flushing) return;
351
351
  G.flushing = true;
352
352
  let guard = 0;
353
+ let failed = false;
354
+ let first;
353
355
  try {
354
356
  while (G.queue.length) {
355
357
  if (++guard > 1e5) throw new Error("[fluixi] effect flush did not settle (cycle?)");
@@ -357,12 +359,21 @@ function flushSync() {
357
359
  G.queue = [];
358
360
  for (const e of batchOf) {
359
361
  e.queued = false;
360
- if (!e.disposed) e.run();
362
+ if (e.disposed) continue;
363
+ try {
364
+ e.run();
365
+ } catch (error) {
366
+ if (!failed) {
367
+ failed = true;
368
+ first = error;
369
+ }
370
+ }
361
371
  }
362
372
  }
363
373
  } finally {
364
374
  G.flushing = false;
365
375
  }
376
+ if (failed) throw first;
366
377
  }
367
378
  function afterWrite() {
368
379
  if (G.batchDepth === 0) flushSync();
@@ -1,4 +1,4 @@
1
- /*! @fluixi/reactive v1.0.0-alpha.95 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
1
+ /*! @fluixi/reactive v1.0.0-alpha.96 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
2
2
  "use strict";
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -31,7 +31,7 @@ __export(core_exports, {
31
31
  module.exports = __toCommonJS(core_exports);
32
32
 
33
33
  // src/version.generated.ts
34
- var VERSION = "1.0.0-alpha.95";
34
+ var VERSION = "1.0.0-alpha.96";
35
35
 
36
36
  // src/lib/signal/graph/state.ts
37
37
  var MAJOR = VERSION.split(".")[0];
@@ -1,7 +1,7 @@
1
- /*! @fluixi/reactive v1.0.0-alpha.95 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
1
+ /*! @fluixi/reactive v1.0.0-alpha.96 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
2
2
 
3
3
  // src/version.generated.ts
4
- var VERSION = "1.0.0-alpha.95";
4
+ var VERSION = "1.0.0-alpha.96";
5
5
 
6
6
  // src/lib/signal/graph/state.ts
7
7
  var MAJOR = VERSION.split(".")[0];
@@ -26,7 +26,7 @@ __export(debounced_exports, {
26
26
  module.exports = __toCommonJS(debounced_exports);
27
27
 
28
28
  // src/version.generated.ts
29
- var VERSION = "1.0.0-alpha.95";
29
+ var VERSION = "1.0.0-alpha.96";
30
30
 
31
31
  // src/lib/signal/graph/state.ts
32
32
  var MAJOR = VERSION.split(".")[0];
@@ -349,6 +349,8 @@ function flushSync() {
349
349
  if (G.flushing) return;
350
350
  G.flushing = true;
351
351
  let guard = 0;
352
+ let failed = false;
353
+ let first;
352
354
  try {
353
355
  while (G.queue.length) {
354
356
  if (++guard > 1e5) throw new Error("[fluixi] effect flush did not settle (cycle?)");
@@ -356,12 +358,21 @@ function flushSync() {
356
358
  G.queue = [];
357
359
  for (const e of batchOf) {
358
360
  e.queued = false;
359
- if (!e.disposed) e.run();
361
+ if (e.disposed) continue;
362
+ try {
363
+ e.run();
364
+ } catch (error) {
365
+ if (!failed) {
366
+ failed = true;
367
+ first = error;
368
+ }
369
+ }
360
370
  }
361
371
  }
362
372
  } finally {
363
373
  G.flushing = false;
364
374
  }
375
+ if (failed) throw first;
365
376
  }
366
377
  function afterWrite() {
367
378
  if (G.batchDepth === 0) flushSync();
@@ -1,5 +1,5 @@
1
1
  // src/version.generated.ts
2
- var VERSION = "1.0.0-alpha.95";
2
+ var VERSION = "1.0.0-alpha.96";
3
3
 
4
4
  // src/lib/signal/graph/state.ts
5
5
  var MAJOR = VERSION.split(".")[0];
@@ -322,6 +322,8 @@ function flushSync() {
322
322
  if (G.flushing) return;
323
323
  G.flushing = true;
324
324
  let guard = 0;
325
+ let failed = false;
326
+ let first;
325
327
  try {
326
328
  while (G.queue.length) {
327
329
  if (++guard > 1e5) throw new Error("[fluixi] effect flush did not settle (cycle?)");
@@ -329,12 +331,21 @@ function flushSync() {
329
331
  G.queue = [];
330
332
  for (const e of batchOf) {
331
333
  e.queued = false;
332
- if (!e.disposed) e.run();
334
+ if (e.disposed) continue;
335
+ try {
336
+ e.run();
337
+ } catch (error) {
338
+ if (!failed) {
339
+ failed = true;
340
+ first = error;
341
+ }
342
+ }
333
343
  }
334
344
  }
335
345
  } finally {
336
346
  G.flushing = false;
337
347
  }
348
+ if (failed) throw first;
338
349
  }
339
350
  function afterWrite() {
340
351
  if (G.batchDepth === 0) flushSync();
@@ -27,7 +27,7 @@ __export(derived_exports, {
27
27
  module.exports = __toCommonJS(derived_exports);
28
28
 
29
29
  // src/version.generated.ts
30
- var VERSION = "1.0.0-alpha.95";
30
+ var VERSION = "1.0.0-alpha.96";
31
31
 
32
32
  // src/lib/signal/graph/state.ts
33
33
  var MAJOR = VERSION.split(".")[0];
@@ -341,6 +341,8 @@ function flushSync() {
341
341
  if (G.flushing) return;
342
342
  G.flushing = true;
343
343
  let guard = 0;
344
+ let failed = false;
345
+ let first;
344
346
  try {
345
347
  while (G.queue.length) {
346
348
  if (++guard > 1e5) throw new Error("[fluixi] effect flush did not settle (cycle?)");
@@ -348,12 +350,21 @@ function flushSync() {
348
350
  G.queue = [];
349
351
  for (const e of batchOf) {
350
352
  e.queued = false;
351
- if (!e.disposed) e.run();
353
+ if (e.disposed) continue;
354
+ try {
355
+ e.run();
356
+ } catch (error) {
357
+ if (!failed) {
358
+ failed = true;
359
+ first = error;
360
+ }
361
+ }
352
362
  }
353
363
  }
354
364
  } finally {
355
365
  G.flushing = false;
356
366
  }
367
+ if (failed) throw first;
357
368
  }
358
369
  function afterWrite() {
359
370
  if (G.batchDepth === 0) flushSync();
@@ -1,5 +1,5 @@
1
1
  // src/version.generated.ts
2
- var VERSION = "1.0.0-alpha.95";
2
+ var VERSION = "1.0.0-alpha.96";
3
3
 
4
4
  // src/lib/signal/graph/state.ts
5
5
  var MAJOR = VERSION.split(".")[0];
@@ -313,6 +313,8 @@ function flushSync() {
313
313
  if (G.flushing) return;
314
314
  G.flushing = true;
315
315
  let guard = 0;
316
+ let failed = false;
317
+ let first;
316
318
  try {
317
319
  while (G.queue.length) {
318
320
  if (++guard > 1e5) throw new Error("[fluixi] effect flush did not settle (cycle?)");
@@ -320,12 +322,21 @@ function flushSync() {
320
322
  G.queue = [];
321
323
  for (const e of batchOf) {
322
324
  e.queued = false;
323
- if (!e.disposed) e.run();
325
+ if (e.disposed) continue;
326
+ try {
327
+ e.run();
328
+ } catch (error) {
329
+ if (!failed) {
330
+ failed = true;
331
+ first = error;
332
+ }
333
+ }
324
334
  }
325
335
  }
326
336
  } finally {
327
337
  G.flushing = false;
328
338
  }
339
+ if (failed) throw first;
329
340
  }
330
341
  function afterWrite() {
331
342
  if (G.batchDepth === 0) flushSync();
@@ -27,7 +27,7 @@ __export(error_boundary_exports, {
27
27
  module.exports = __toCommonJS(error_boundary_exports);
28
28
 
29
29
  // src/version.generated.ts
30
- var VERSION = "1.0.0-alpha.95";
30
+ var VERSION = "1.0.0-alpha.96";
31
31
 
32
32
  // src/lib/signal/graph/state.ts
33
33
  var MAJOR = VERSION.split(".")[0];
@@ -225,6 +225,8 @@ function flushSync() {
225
225
  if (G.flushing) return;
226
226
  G.flushing = true;
227
227
  let guard = 0;
228
+ let failed = false;
229
+ let first;
228
230
  try {
229
231
  while (G.queue.length) {
230
232
  if (++guard > 1e5) throw new Error("[fluixi] effect flush did not settle (cycle?)");
@@ -232,12 +234,21 @@ function flushSync() {
232
234
  G.queue = [];
233
235
  for (const e of batchOf) {
234
236
  e.queued = false;
235
- if (!e.disposed) e.run();
237
+ if (e.disposed) continue;
238
+ try {
239
+ e.run();
240
+ } catch (error) {
241
+ if (!failed) {
242
+ failed = true;
243
+ first = error;
244
+ }
245
+ }
236
246
  }
237
247
  }
238
248
  } finally {
239
249
  G.flushing = false;
240
250
  }
251
+ if (failed) throw first;
241
252
  }
242
253
  function afterWrite() {
243
254
  if (G.batchDepth === 0) flushSync();
@@ -1,5 +1,5 @@
1
1
  // src/version.generated.ts
2
- var VERSION = "1.0.0-alpha.95";
2
+ var VERSION = "1.0.0-alpha.96";
3
3
 
4
4
  // src/lib/signal/graph/state.ts
5
5
  var MAJOR = VERSION.split(".")[0];
@@ -197,6 +197,8 @@ function flushSync() {
197
197
  if (G.flushing) return;
198
198
  G.flushing = true;
199
199
  let guard = 0;
200
+ let failed = false;
201
+ let first;
200
202
  try {
201
203
  while (G.queue.length) {
202
204
  if (++guard > 1e5) throw new Error("[fluixi] effect flush did not settle (cycle?)");
@@ -204,12 +206,21 @@ function flushSync() {
204
206
  G.queue = [];
205
207
  for (const e of batchOf) {
206
208
  e.queued = false;
207
- if (!e.disposed) e.run();
209
+ if (e.disposed) continue;
210
+ try {
211
+ e.run();
212
+ } catch (error) {
213
+ if (!failed) {
214
+ failed = true;
215
+ first = error;
216
+ }
217
+ }
208
218
  }
209
219
  }
210
220
  } finally {
211
221
  G.flushing = false;
212
222
  }
223
+ if (failed) throw first;
213
224
  }
214
225
  function afterWrite() {
215
226
  if (G.batchDepth === 0) flushSync();
@@ -1,4 +1,4 @@
1
- /*! @fluixi/reactive v1.0.0-alpha.95 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
1
+ /*! @fluixi/reactive v1.0.0-alpha.96 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
2
2
  "use strict";
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -29,7 +29,7 @@ __export(index_exports, {
29
29
  module.exports = __toCommonJS(index_exports);
30
30
 
31
31
  // src/version.generated.ts
32
- var VERSION = "1.0.0-alpha.95";
32
+ var VERSION = "1.0.0-alpha.96";
33
33
 
34
34
  // src/lib/signal/graph/state.ts
35
35
  var MAJOR = VERSION.split(".")[0];
@@ -1,7 +1,7 @@
1
- /*! @fluixi/reactive v1.0.0-alpha.95 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
1
+ /*! @fluixi/reactive v1.0.0-alpha.96 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
2
2
 
3
3
  // src/version.generated.ts
4
- var VERSION = "1.0.0-alpha.95";
4
+ var VERSION = "1.0.0-alpha.96";
5
5
 
6
6
  // src/lib/signal/graph/state.ts
7
7
  var MAJOR = VERSION.split(".")[0];
@@ -45,7 +45,7 @@ __export(observe_exports, {
45
45
  module.exports = __toCommonJS(observe_exports);
46
46
 
47
47
  // src/version.generated.ts
48
- var VERSION = "1.0.0-alpha.95";
48
+ var VERSION = "1.0.0-alpha.96";
49
49
 
50
50
  // src/lib/signal/graph/state.ts
51
51
  var MAJOR = VERSION.split(".")[0];
@@ -1,5 +1,5 @@
1
1
  // src/version.generated.ts
2
- var VERSION = "1.0.0-alpha.95";
2
+ var VERSION = "1.0.0-alpha.96";
3
3
 
4
4
  // src/lib/signal/graph/state.ts
5
5
  var MAJOR = VERSION.split(".")[0];
@@ -25,7 +25,7 @@ __export(resource_exports, {
25
25
  module.exports = __toCommonJS(resource_exports);
26
26
 
27
27
  // src/version.generated.ts
28
- var VERSION = "1.0.0-alpha.95";
28
+ var VERSION = "1.0.0-alpha.96";
29
29
 
30
30
  // src/lib/signal/graph/state.ts
31
31
  var MAJOR = VERSION.split(".")[0];
@@ -348,6 +348,8 @@ function flushSync() {
348
348
  if (G.flushing) return;
349
349
  G.flushing = true;
350
350
  let guard = 0;
351
+ let failed = false;
352
+ let first;
351
353
  try {
352
354
  while (G.queue.length) {
353
355
  if (++guard > 1e5) throw new Error("[fluixi] effect flush did not settle (cycle?)");
@@ -355,12 +357,21 @@ function flushSync() {
355
357
  G.queue = [];
356
358
  for (const e of batchOf) {
357
359
  e.queued = false;
358
- if (!e.disposed) e.run();
360
+ if (e.disposed) continue;
361
+ try {
362
+ e.run();
363
+ } catch (error) {
364
+ if (!failed) {
365
+ failed = true;
366
+ first = error;
367
+ }
368
+ }
359
369
  }
360
370
  }
361
371
  } finally {
362
372
  G.flushing = false;
363
373
  }
374
+ if (failed) throw first;
364
375
  }
365
376
  function afterWrite() {
366
377
  if (G.batchDepth === 0) flushSync();
@@ -1,5 +1,5 @@
1
1
  // src/version.generated.ts
2
- var VERSION = "1.0.0-alpha.95";
2
+ var VERSION = "1.0.0-alpha.96";
3
3
 
4
4
  // src/lib/signal/graph/state.ts
5
5
  var MAJOR = VERSION.split(".")[0];
@@ -322,6 +322,8 @@ function flushSync() {
322
322
  if (G.flushing) return;
323
323
  G.flushing = true;
324
324
  let guard = 0;
325
+ let failed = false;
326
+ let first;
325
327
  try {
326
328
  while (G.queue.length) {
327
329
  if (++guard > 1e5) throw new Error("[fluixi] effect flush did not settle (cycle?)");
@@ -329,12 +331,21 @@ function flushSync() {
329
331
  G.queue = [];
330
332
  for (const e of batchOf) {
331
333
  e.queued = false;
332
- if (!e.disposed) e.run();
334
+ if (e.disposed) continue;
335
+ try {
336
+ e.run();
337
+ } catch (error) {
338
+ if (!failed) {
339
+ failed = true;
340
+ first = error;
341
+ }
342
+ }
333
343
  }
334
344
  }
335
345
  } finally {
336
346
  G.flushing = false;
337
347
  }
348
+ if (failed) throw first;
338
349
  }
339
350
  function afterWrite() {
340
351
  if (G.batchDepth === 0) flushSync();