solid-js 2.0.0-beta.1 → 2.0.0-beta.2

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.
package/dist/server.cjs CHANGED
@@ -30,25 +30,12 @@ function getObserver() {
30
30
  }
31
31
  function createSignal(first, second, third) {
32
32
  if (typeof first === "function") {
33
- const ssrSource = third?.ssrSource;
34
- if (ssrSource === "initial" || ssrSource === "client") {
35
- signals.createOwner();
36
- let value = second;
37
- return [() => value, v => {
38
- return value = typeof v === "function" ? v(value) : v;
39
- }];
40
- }
41
- const memoOpts = third?.deferStream || ssrSource ? {
33
+ const opts = third?.deferStream || third?.ssrSource ? {
42
34
  deferStream: third?.deferStream,
43
- ssrSource
35
+ ssrSource: third?.ssrSource
44
36
  } : undefined;
45
- const memo = createMemo(p => {
46
- let value = first(p ? p[0]() : second);
47
- return [() => value, v => {
48
- return value = typeof v === "function" ? v(value) : v;
49
- }];
50
- }, undefined, memoOpts);
51
- return [() => memo()[0](), v => memo()[1](v)];
37
+ const memo = createMemo(prev => first(prev), second, opts);
38
+ return [memo, () => undefined];
52
39
  }
53
40
  return [() => first, v => {
54
41
  return first = typeof v === "function" ? v(first) : v;
@@ -185,42 +172,39 @@ function processResult(comp, result, owner, ctx, deferStream, ssrSource) {
185
172
  const promise = iter.next().then(v => {
186
173
  promise.s = 1;
187
174
  promise.v = v.value;
188
- if (comp.disposed) return;
175
+ if (comp.disposed) return v.value;
189
176
  comp.value = v.value;
190
177
  comp.error = undefined;
178
+ return v.value;
191
179
  }, () => {});
192
180
  if (ctx?.async && ctx.serialize && id && !noHydrate) ctx.serialize(id, promise, deferStream);
193
- if (uninitialized) {
194
- comp.error = new signals.NotReadyError(promise);
195
- }
181
+ comp.error = new signals.NotReadyError(promise);
196
182
  } else {
197
183
  const firstNext = iter.next();
198
184
  const firstReady = firstNext.then(r => {
199
185
  if (comp.disposed) return;
200
186
  if (!r.done) {
201
187
  comp.value = r.value;
202
- comp.error = undefined;
203
188
  }
189
+ comp.error = undefined;
190
+ return Promise.resolve();
204
191
  }, () => {});
205
- let servedFirst = false;
206
- const tapped = {
207
- [Symbol.asyncIterator]: () => ({
208
- next() {
209
- if (!servedFirst) {
210
- servedFirst = true;
211
- return firstNext.then(r => {
212
- if (!r.done && !comp.disposed) comp.value = r.value;
213
- return r;
214
- });
192
+ if (ctx?.async && ctx.serialize && id && !noHydrate) {
193
+ let tappedFirst = true;
194
+ const tapped = {
195
+ [Symbol.asyncIterator]: () => ({
196
+ next() {
197
+ if (tappedFirst) {
198
+ tappedFirst = false;
199
+ return firstNext.then(r => r);
200
+ }
201
+ return iter.next().then(r => r);
215
202
  }
216
- return iter.next().then(r => r);
217
- }
218
- })
219
- };
220
- if (ctx?.async && ctx.serialize && id && !noHydrate) ctx.serialize(id, tapped, deferStream);
221
- if (uninitialized) {
222
- comp.error = new signals.NotReadyError(firstReady);
203
+ })
204
+ };
205
+ ctx.serialize(id, tapped, deferStream);
223
206
  }
207
+ comp.error = new signals.NotReadyError(firstReady);
224
208
  }
225
209
  return;
226
210
  }
@@ -329,13 +313,14 @@ function createProjection(fn, initialValue = {}, options) {
329
313
  promise.s = 1;
330
314
  if (disposed) {
331
315
  promise.v = state;
332
- return;
316
+ return state;
333
317
  }
334
318
  if (r.value !== undefined && r.value !== state) {
335
319
  Object.assign(state, r.value);
336
320
  }
337
321
  promise.v = state;
338
322
  markReady();
323
+ return state;
339
324
  }, () => {});
340
325
  if (ctx?.async && !signals.getContext(NoHydrateContext) && owner.id) ctx.serialize(owner.id, promise, options?.deferStream);
341
326
  const [pending, markReady] = createPendingProxy(state, promise);
@@ -351,50 +336,53 @@ function createProjection(fn, initialValue = {}, options) {
351
336
  }
352
337
  }
353
338
  markReady(JSON.parse(JSON.stringify(state)));
339
+ return Promise.resolve();
354
340
  }, () => {
355
341
  markReady();
356
342
  });
357
- let servedFirst = false;
358
- const tapped = {
359
- [Symbol.asyncIterator]: () => ({
360
- next() {
361
- if (!servedFirst) {
362
- servedFirst = true;
363
- return firstNext.then(r => {
364
- if (!r.done && !disposed) return {
365
- done: false,
366
- value: state
343
+ if (ctx?.async && !signals.getContext(NoHydrateContext) && owner.id) {
344
+ let tappedFirst = true;
345
+ const tapped = {
346
+ [Symbol.asyncIterator]: () => ({
347
+ next() {
348
+ if (tappedFirst) {
349
+ tappedFirst = false;
350
+ return firstNext.then(r => {
351
+ if (r.done) return {
352
+ done: true,
353
+ value: undefined
354
+ };
355
+ return {
356
+ done: false,
357
+ value: JSON.parse(JSON.stringify(state))
358
+ };
359
+ });
360
+ }
361
+ return iter.next().then(r => {
362
+ if (disposed) return {
363
+ done: true,
364
+ value: undefined
367
365
  };
366
+ const flushed = patches.splice(0);
367
+ if (!r.done) {
368
+ if (r.value !== undefined && r.value !== draft) {
369
+ Object.assign(state, r.value);
370
+ }
371
+ return {
372
+ done: false,
373
+ value: flushed
374
+ };
375
+ }
368
376
  return {
369
- done: r.done,
377
+ done: true,
370
378
  value: undefined
371
379
  };
372
380
  });
373
381
  }
374
- return iter.next().then(r => {
375
- if (disposed) return {
376
- done: true,
377
- value: undefined
378
- };
379
- const flushed = patches.splice(0);
380
- if (!r.done) {
381
- if (r.value !== undefined && r.value !== draft) {
382
- Object.assign(state, r.value);
383
- }
384
- return {
385
- done: false,
386
- value: flushed
387
- };
388
- }
389
- return {
390
- done: true,
391
- value: undefined
392
- };
393
- });
394
- }
395
- })
396
- };
397
- if (ctx?.async && !signals.getContext(NoHydrateContext) && owner.id) ctx.serialize(owner.id, tapped, options?.deferStream);
382
+ })
383
+ };
384
+ ctx.serialize(owner.id, tapped, options?.deferStream);
385
+ }
398
386
  const [pending, markReady] = createPendingProxy(state, firstReady);
399
387
  return pending;
400
388
  }
@@ -806,6 +794,10 @@ Object.defineProperty(exports, "$PROXY", {
806
794
  enumerable: true,
807
795
  get: function () { return signals.$PROXY; }
808
796
  });
797
+ Object.defineProperty(exports, "$REFRESH", {
798
+ enumerable: true,
799
+ get: function () { return signals.$REFRESH; }
800
+ });
809
801
  Object.defineProperty(exports, "$TRACK", {
810
802
  enumerable: true,
811
803
  get: function () { return signals.$TRACK; }
@@ -858,6 +850,10 @@ Object.defineProperty(exports, "runWithOwner", {
858
850
  enumerable: true,
859
851
  get: function () { return signals.runWithOwner; }
860
852
  });
853
+ Object.defineProperty(exports, "setOnUnhandledAsync", {
854
+ enumerable: true,
855
+ get: function () { return signals.setOnUnhandledAsync; }
856
+ });
861
857
  Object.defineProperty(exports, "snapshot", {
862
858
  enumerable: true,
863
859
  get: function () { return signals.snapshot; }
package/dist/server.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { getOwner, getContext, getNextChildId, createOwner, runWithOwner, onCleanup, NotReadyError, isWrappable, setContext, flatten, createRoot } from '@solidjs/signals';
2
- export { $PROXY, $TRACK, NotReadyError, createOwner, createRoot, flatten, getNextChildId, getOwner, isEqual, isWrappable, merge, omit, onCleanup, runWithOwner, snapshot, storePath } from '@solidjs/signals';
2
+ export { $PROXY, $REFRESH, $TRACK, NotReadyError, createOwner, createRoot, flatten, getNextChildId, getOwner, isEqual, isWrappable, merge, omit, onCleanup, runWithOwner, setOnUnhandledAsync, snapshot, storePath } from '@solidjs/signals';
3
3
 
4
4
  const NoHydrateContext = {
5
5
  id: Symbol("NoHydrateContext"),
@@ -29,25 +29,12 @@ function getObserver() {
29
29
  }
30
30
  function createSignal(first, second, third) {
31
31
  if (typeof first === "function") {
32
- const ssrSource = third?.ssrSource;
33
- if (ssrSource === "initial" || ssrSource === "client") {
34
- createOwner();
35
- let value = second;
36
- return [() => value, v => {
37
- return value = typeof v === "function" ? v(value) : v;
38
- }];
39
- }
40
- const memoOpts = third?.deferStream || ssrSource ? {
32
+ const opts = third?.deferStream || third?.ssrSource ? {
41
33
  deferStream: third?.deferStream,
42
- ssrSource
34
+ ssrSource: third?.ssrSource
43
35
  } : undefined;
44
- const memo = createMemo(p => {
45
- let value = first(p ? p[0]() : second);
46
- return [() => value, v => {
47
- return value = typeof v === "function" ? v(value) : v;
48
- }];
49
- }, undefined, memoOpts);
50
- return [() => memo()[0](), v => memo()[1](v)];
36
+ const memo = createMemo(prev => first(prev), second, opts);
37
+ return [memo, () => undefined];
51
38
  }
52
39
  return [() => first, v => {
53
40
  return first = typeof v === "function" ? v(first) : v;
@@ -184,42 +171,39 @@ function processResult(comp, result, owner, ctx, deferStream, ssrSource) {
184
171
  const promise = iter.next().then(v => {
185
172
  promise.s = 1;
186
173
  promise.v = v.value;
187
- if (comp.disposed) return;
174
+ if (comp.disposed) return v.value;
188
175
  comp.value = v.value;
189
176
  comp.error = undefined;
177
+ return v.value;
190
178
  }, () => {});
191
179
  if (ctx?.async && ctx.serialize && id && !noHydrate) ctx.serialize(id, promise, deferStream);
192
- if (uninitialized) {
193
- comp.error = new NotReadyError(promise);
194
- }
180
+ comp.error = new NotReadyError(promise);
195
181
  } else {
196
182
  const firstNext = iter.next();
197
183
  const firstReady = firstNext.then(r => {
198
184
  if (comp.disposed) return;
199
185
  if (!r.done) {
200
186
  comp.value = r.value;
201
- comp.error = undefined;
202
187
  }
188
+ comp.error = undefined;
189
+ return Promise.resolve();
203
190
  }, () => {});
204
- let servedFirst = false;
205
- const tapped = {
206
- [Symbol.asyncIterator]: () => ({
207
- next() {
208
- if (!servedFirst) {
209
- servedFirst = true;
210
- return firstNext.then(r => {
211
- if (!r.done && !comp.disposed) comp.value = r.value;
212
- return r;
213
- });
191
+ if (ctx?.async && ctx.serialize && id && !noHydrate) {
192
+ let tappedFirst = true;
193
+ const tapped = {
194
+ [Symbol.asyncIterator]: () => ({
195
+ next() {
196
+ if (tappedFirst) {
197
+ tappedFirst = false;
198
+ return firstNext.then(r => r);
199
+ }
200
+ return iter.next().then(r => r);
214
201
  }
215
- return iter.next().then(r => r);
216
- }
217
- })
218
- };
219
- if (ctx?.async && ctx.serialize && id && !noHydrate) ctx.serialize(id, tapped, deferStream);
220
- if (uninitialized) {
221
- comp.error = new NotReadyError(firstReady);
202
+ })
203
+ };
204
+ ctx.serialize(id, tapped, deferStream);
222
205
  }
206
+ comp.error = new NotReadyError(firstReady);
223
207
  }
224
208
  return;
225
209
  }
@@ -328,13 +312,14 @@ function createProjection(fn, initialValue = {}, options) {
328
312
  promise.s = 1;
329
313
  if (disposed) {
330
314
  promise.v = state;
331
- return;
315
+ return state;
332
316
  }
333
317
  if (r.value !== undefined && r.value !== state) {
334
318
  Object.assign(state, r.value);
335
319
  }
336
320
  promise.v = state;
337
321
  markReady();
322
+ return state;
338
323
  }, () => {});
339
324
  if (ctx?.async && !getContext(NoHydrateContext) && owner.id) ctx.serialize(owner.id, promise, options?.deferStream);
340
325
  const [pending, markReady] = createPendingProxy(state, promise);
@@ -350,50 +335,53 @@ function createProjection(fn, initialValue = {}, options) {
350
335
  }
351
336
  }
352
337
  markReady(JSON.parse(JSON.stringify(state)));
338
+ return Promise.resolve();
353
339
  }, () => {
354
340
  markReady();
355
341
  });
356
- let servedFirst = false;
357
- const tapped = {
358
- [Symbol.asyncIterator]: () => ({
359
- next() {
360
- if (!servedFirst) {
361
- servedFirst = true;
362
- return firstNext.then(r => {
363
- if (!r.done && !disposed) return {
364
- done: false,
365
- value: state
342
+ if (ctx?.async && !getContext(NoHydrateContext) && owner.id) {
343
+ let tappedFirst = true;
344
+ const tapped = {
345
+ [Symbol.asyncIterator]: () => ({
346
+ next() {
347
+ if (tappedFirst) {
348
+ tappedFirst = false;
349
+ return firstNext.then(r => {
350
+ if (r.done) return {
351
+ done: true,
352
+ value: undefined
353
+ };
354
+ return {
355
+ done: false,
356
+ value: JSON.parse(JSON.stringify(state))
357
+ };
358
+ });
359
+ }
360
+ return iter.next().then(r => {
361
+ if (disposed) return {
362
+ done: true,
363
+ value: undefined
366
364
  };
365
+ const flushed = patches.splice(0);
366
+ if (!r.done) {
367
+ if (r.value !== undefined && r.value !== draft) {
368
+ Object.assign(state, r.value);
369
+ }
370
+ return {
371
+ done: false,
372
+ value: flushed
373
+ };
374
+ }
367
375
  return {
368
- done: r.done,
376
+ done: true,
369
377
  value: undefined
370
378
  };
371
379
  });
372
380
  }
373
- return iter.next().then(r => {
374
- if (disposed) return {
375
- done: true,
376
- value: undefined
377
- };
378
- const flushed = patches.splice(0);
379
- if (!r.done) {
380
- if (r.value !== undefined && r.value !== draft) {
381
- Object.assign(state, r.value);
382
- }
383
- return {
384
- done: false,
385
- value: flushed
386
- };
387
- }
388
- return {
389
- done: true,
390
- value: undefined
391
- };
392
- });
393
- }
394
- })
395
- };
396
- if (ctx?.async && !getContext(NoHydrateContext) && owner.id) ctx.serialize(owner.id, tapped, options?.deferStream);
381
+ })
382
+ };
383
+ ctx.serialize(owner.id, tapped, options?.deferStream);
384
+ }
397
385
  const [pending, markReady] = createPendingProxy(state, firstReady);
398
386
  return pending;
399
387
  }
package/dist/solid.cjs CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  var signals = require('@solidjs/signals');
4
4
 
5
+ const IS_DEV = false;
5
6
  const $DEVCOMP = Symbol(0);
6
7
  function createContext(defaultValue, options) {
7
8
  const id = Symbol(options && options.name || "");
@@ -132,11 +133,41 @@ function subFetch(fn, prev) {
132
133
  Promise = ogPromise;
133
134
  }
134
135
  }
135
- function consumeFirstSync(ai) {
136
- const iter = ai[Symbol.asyncIterator]();
137
- const r = iter.next();
138
- const value = !(r instanceof Promise) && !r.done ? r.value : undefined;
139
- return [value, iter];
136
+ function syncThenable(value) {
137
+ return {
138
+ then(fn) {
139
+ fn(value);
140
+ }
141
+ };
142
+ }
143
+ function normalizeIterator(it) {
144
+ let first = true;
145
+ let buffered = null;
146
+ return {
147
+ next() {
148
+ if (first) {
149
+ first = false;
150
+ const r = it.next();
151
+ return r && typeof r.then === "function" ? r : syncThenable(r);
152
+ }
153
+ if (buffered) {
154
+ const b = buffered;
155
+ buffered = null;
156
+ return b;
157
+ }
158
+ let latest = it.next();
159
+ if (latest && typeof latest.then === "function") return latest;
160
+ while (!latest.done) {
161
+ const peek = it.next();
162
+ if (peek && typeof peek.then === "function") {
163
+ buffered = peek;
164
+ break;
165
+ }
166
+ latest = peek;
167
+ }
168
+ return Promise.resolve(latest);
169
+ }
170
+ };
140
171
  }
141
172
  function applyPatches(target, patches) {
142
173
  for (const patch of patches) {
@@ -153,24 +184,6 @@ function applyPatches(target, patches) {
153
184
  }
154
185
  }
155
186
  }
156
- function scheduleIteratorConsumption(iter, apply) {
157
- const consume = () => {
158
- while (true) {
159
- const n = iter.next();
160
- if (n instanceof Promise) {
161
- n.then(r => {
162
- if (r.done) return;
163
- apply(r.value);
164
- consume();
165
- });
166
- return;
167
- }
168
- if (n.done) break;
169
- apply(n.value);
170
- }
171
- };
172
- consume();
173
- }
174
187
  function isAsyncIterable(v) {
175
188
  return v != null && typeof v[Symbol.asyncIterator] === "function";
176
189
  }
@@ -178,34 +191,85 @@ function hydrateSignalFromAsyncIterable(coreFn, compute, value, options) {
178
191
  const parent = signals.getOwner();
179
192
  const expectedId = signals.peekNextChildId(parent);
180
193
  if (!sharedConfig.has(expectedId)) return null;
181
- const initP = sharedConfig.load(expectedId);
182
- if (!isAsyncIterable(initP)) return null;
183
- const [firstValue, iter] = consumeFirstSync(initP);
184
- const [get, set] = signals.createSignal(firstValue);
185
- const result = coreFn(() => get(), firstValue, options);
186
- scheduleIteratorConsumption(iter, v => {
187
- set(() => v);
188
- signals.flush();
189
- });
190
- return result;
194
+ const loaded = sharedConfig.load(expectedId);
195
+ if (!isAsyncIterable(loaded)) return null;
196
+ const it = normalizeIterator(loaded[Symbol.asyncIterator]());
197
+ const iterable = {
198
+ [Symbol.asyncIterator]() {
199
+ return it;
200
+ }
201
+ };
202
+ return coreFn(() => iterable, value, options);
191
203
  }
192
204
  function hydrateStoreFromAsyncIterable(coreFn, initialValue, options) {
193
205
  const parent = signals.getOwner();
194
206
  const expectedId = signals.peekNextChildId(parent);
195
207
  if (!sharedConfig.has(expectedId)) return null;
196
- const initP = sharedConfig.load(expectedId);
197
- if (!isAsyncIterable(initP)) return null;
198
- const [firstState, iter] = consumeFirstSync(initP);
199
- const [store, setStore] = coreFn(() => {}, firstState ?? initialValue, options);
200
- scheduleIteratorConsumption(iter, patches => {
201
- setStore(d => {
202
- applyPatches(d, patches);
203
- });
204
- });
205
- return [store, setStore];
208
+ const loaded = sharedConfig.load(expectedId);
209
+ if (!isAsyncIterable(loaded)) return null;
210
+ const srcIt = loaded[Symbol.asyncIterator]();
211
+ let isFirst = true;
212
+ let buffered = null;
213
+ return coreFn(draft => {
214
+ const process = res => {
215
+ if (res.done) return {
216
+ done: true,
217
+ value: undefined
218
+ };
219
+ if (isFirst) {
220
+ isFirst = false;
221
+ if (Array.isArray(res.value)) {
222
+ for (let i = 0; i < res.value.length; i++) draft[i] = res.value[i];
223
+ draft.length = res.value.length;
224
+ } else {
225
+ Object.assign(draft, res.value);
226
+ }
227
+ } else {
228
+ applyPatches(draft, res.value);
229
+ }
230
+ return {
231
+ done: false,
232
+ value: undefined
233
+ };
234
+ };
235
+ return {
236
+ [Symbol.asyncIterator]() {
237
+ return {
238
+ next() {
239
+ if (isFirst) {
240
+ const r = srcIt.next();
241
+ return r && typeof r.then === "function" ? r.then(process) : syncThenable(process(r));
242
+ }
243
+ if (buffered) {
244
+ const b = buffered;
245
+ buffered = null;
246
+ return b.then(process);
247
+ }
248
+ let r = srcIt.next();
249
+ if (r && typeof r.then === "function") {
250
+ return r.then(process);
251
+ }
252
+ let result = process(r);
253
+ while (!r.done) {
254
+ const peek = srcIt.next();
255
+ if (peek && typeof peek.then === "function") {
256
+ buffered = peek;
257
+ break;
258
+ }
259
+ r = peek;
260
+ if (!r.done) result = process(r);
261
+ }
262
+ return Promise.resolve(result);
263
+ }
264
+ };
265
+ }
266
+ };
267
+ }, initialValue, options);
206
268
  }
207
269
  function hydratedCreateMemo(compute, value, options) {
208
- if (!sharedConfig.hydrating) return signals.createMemo(compute, value, options);
270
+ if (!sharedConfig.hydrating) {
271
+ return signals.createMemo(compute, value, options);
272
+ }
209
273
  markTopLevelSnapshotScope();
210
274
  const ssrSource = options?.ssrSource;
211
275
  if (ssrSource === "client") {
@@ -357,14 +421,16 @@ function hydratedCreateOptimisticStore(first, second, third) {
357
421
  return signals.createOptimisticStore(wrapStoreFn(first, ssrSource), second, third);
358
422
  }
359
423
  function hydratedCreateProjection(fn, initialValue, options) {
360
- if (!sharedConfig.hydrating) return signals.createProjection(fn, initialValue, options);
424
+ if (!sharedConfig.hydrating) {
425
+ return signals.createProjection(fn, initialValue, options);
426
+ }
361
427
  markTopLevelSnapshotScope();
362
428
  const ssrSource = options?.ssrSource;
363
429
  if (ssrSource === "client" || ssrSource === "initial") {
364
430
  return signals.createProjection(draft => draft, initialValue, options);
365
431
  }
366
- const aiResult = hydrateStoreFromAsyncIterable(signals.createStore, initialValue, options);
367
- if (aiResult !== null) return aiResult[0];
432
+ const aiResult = hydrateStoreFromAsyncIterable(signals.createProjection, initialValue, options);
433
+ if (aiResult !== null) return aiResult;
368
434
  return signals.createProjection(wrapStoreFn(fn, ssrSource), initialValue, options);
369
435
  }
370
436
  function hydratedEffect(coreFn, compute, effectFn, value, options) {
@@ -637,15 +703,10 @@ function Show(props) {
637
703
  if (c) {
638
704
  const child = props.children;
639
705
  const fn = typeof child === "function" && child.length > 0;
640
- return fn ? signals.untrack(() => {
641
- try {
642
- return child(() => {
643
- if (!signals.untrack(condition)) throw narrowedError("Show");
644
- return conditionValue();
645
- });
646
- } finally {
647
- }
648
- }) : child;
706
+ return fn ? signals.untrack(() => child(() => {
707
+ if (!signals.untrack(condition)) throw narrowedError("Show");
708
+ return conditionValue();
709
+ }), IS_DEV) : child;
649
710
  }
650
711
  return props.fallback;
651
712
  }, undefined, undefined);
@@ -673,15 +734,10 @@ function Switch(props) {
673
734
  const [index, conditionValue, mp] = sel;
674
735
  const child = mp.children;
675
736
  const fn = typeof child === "function" && child.length > 0;
676
- return fn ? signals.untrack(() => {
677
- try {
678
- return child(() => {
679
- if (signals.untrack(switchFunc)()?.[0] !== index) throw narrowedError("Match");
680
- return conditionValue();
681
- });
682
- } finally {
683
- }
684
- }) : child;
737
+ return fn ? signals.untrack(() => child(() => {
738
+ if (signals.untrack(switchFunc)()?.[0] !== index) throw narrowedError("Match");
739
+ return conditionValue();
740
+ }), IS_DEV) : child;
685
741
  }, undefined, undefined);
686
742
  }
687
743
  function Match(props) {
@@ -702,6 +758,10 @@ Object.defineProperty(exports, "$PROXY", {
702
758
  enumerable: true,
703
759
  get: function () { return signals.$PROXY; }
704
760
  });
761
+ Object.defineProperty(exports, "$REFRESH", {
762
+ enumerable: true,
763
+ get: function () { return signals.$REFRESH; }
764
+ });
705
765
  Object.defineProperty(exports, "$TRACK", {
706
766
  enumerable: true,
707
767
  get: function () { return signals.$TRACK; }
@@ -814,6 +874,10 @@ Object.defineProperty(exports, "runWithOwner", {
814
874
  enumerable: true,
815
875
  get: function () { return signals.runWithOwner; }
816
876
  });
877
+ Object.defineProperty(exports, "setOnUnhandledAsync", {
878
+ enumerable: true,
879
+ get: function () { return signals.setOnUnhandledAsync; }
880
+ });
817
881
  Object.defineProperty(exports, "snapshot", {
818
882
  enumerable: true,
819
883
  get: function () { return signals.snapshot; }