solid-js 2.0.0-experimental.7 → 2.0.0-experimental.9

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/dev.cjs CHANGED
@@ -53,6 +53,27 @@ function registerGraph(value) {
53
53
  value.graph = owner;
54
54
  }
55
55
 
56
+ function tryCatch(fn) {
57
+ try {
58
+ const v = fn();
59
+ if (v instanceof Promise) {
60
+ return v.then(v => [undefined, v], e => {
61
+ if (e instanceof signals.NotReadyError) throw e;
62
+ return [e];
63
+ });
64
+ }
65
+ return [undefined, v];
66
+ } catch (e) {
67
+ if (e instanceof signals.NotReadyError) throw e;
68
+ return [e];
69
+ }
70
+ }
71
+ function reducer(source, reducerFn) {
72
+ return [source[0], action => {
73
+ source[1](s => reducerFn(s, action));
74
+ }];
75
+ }
76
+
56
77
  function observable(input) {
57
78
  return {
58
79
  subscribe(observer) {
@@ -447,14 +468,14 @@ Object.defineProperty(exports, "transition", {
447
468
  enumerable: true,
448
469
  get: function () { return signals.transition; }
449
470
  });
450
- Object.defineProperty(exports, "tryCatch", {
451
- enumerable: true,
452
- get: function () { return signals.tryCatch; }
453
- });
454
471
  Object.defineProperty(exports, "untrack", {
455
472
  enumerable: true,
456
473
  get: function () { return signals.untrack; }
457
474
  });
475
+ Object.defineProperty(exports, "useTransition", {
476
+ enumerable: true,
477
+ get: function () { return signals.useTransition; }
478
+ });
458
479
  exports.$DEVCOMP = $DEVCOMP;
459
480
  exports.Boundary = Boundary;
460
481
  exports.DEV = DEV;
@@ -475,7 +496,9 @@ exports.from = from;
475
496
  exports.lazy = lazy;
476
497
  exports.observable = observable;
477
498
  exports.onMount = onMount;
499
+ exports.reducer = reducer;
478
500
  exports.sharedConfig = sharedConfig;
479
501
  exports.ssrHandleError = ssrHandleError;
480
502
  exports.ssrRunInScope = ssrRunInScope;
503
+ exports.tryCatch = tryCatch;
481
504
  exports.useContext = useContext;
package/dist/dev.js CHANGED
@@ -1,5 +1,5 @@
1
- import { createEffect, getContext, createMemo, flatten, createRoot, setContext, getOwner, untrack, onCleanup, createSignal, createSuspense, flush, runWithObserver, createAsync as createAsync$1, mapArray, repeat, createErrorBoundary, createBoundary } from '@solidjs/signals';
2
- export { $PROXY, $TRACK, createEffect, createMemo, createOptimistic, createProjection, createRenderEffect, createRoot, createSignal, createStore, deep, flatten, flush, getObserver, getOwner, isEqual, isPending, isWrappable, latest, mapArray, merge, omit, onCleanup, reconcile, repeat, resolve, runWithObserver, runWithOwner, snapshot, transition, tryCatch, untrack } from '@solidjs/signals';
1
+ import { createEffect, getContext, createMemo, flatten, createRoot, setContext, getOwner, untrack, NotReadyError, onCleanup, createSignal, createSuspense, flush, runWithObserver, createAsync as createAsync$1, mapArray, repeat, createErrorBoundary, createBoundary } from '@solidjs/signals';
2
+ export { $PROXY, $TRACK, createEffect, createMemo, createOptimistic, createProjection, createRenderEffect, createRoot, createSignal, createStore, deep, flatten, flush, getObserver, getOwner, isEqual, isPending, isWrappable, latest, mapArray, merge, omit, onCleanup, reconcile, repeat, resolve, runWithObserver, runWithOwner, snapshot, transition, untrack, useTransition } from '@solidjs/signals';
3
3
 
4
4
  const $DEVCOMP = Symbol("COMPONENT_DEV" );
5
5
  function onMount(fn) {
@@ -52,6 +52,27 @@ function registerGraph(value) {
52
52
  value.graph = owner;
53
53
  }
54
54
 
55
+ function tryCatch(fn) {
56
+ try {
57
+ const v = fn();
58
+ if (v instanceof Promise) {
59
+ return v.then(v => [undefined, v], e => {
60
+ if (e instanceof NotReadyError) throw e;
61
+ return [e];
62
+ });
63
+ }
64
+ return [undefined, v];
65
+ } catch (e) {
66
+ if (e instanceof NotReadyError) throw e;
67
+ return [e];
68
+ }
69
+ }
70
+ function reducer(source, reducerFn) {
71
+ return [source[0], action => {
72
+ source[1](s => reducerFn(s, action));
73
+ }];
74
+ }
75
+
55
76
  function observable(input) {
56
77
  return {
57
78
  subscribe(observer) {
@@ -326,4 +347,4 @@ if (globalThis) {
326
347
  if (!globalThis.Solid$$) globalThis.Solid$$ = true;else console.warn("You appear to have multiple instances of Solid. This can lead to unexpected behavior.");
327
348
  }
328
349
 
329
- export { $DEVCOMP, Boundary, DEV, ErrorBoundary, For, Match, Repeat, Show, Suspense, Switch, children, createAsync, createComponent, createContext, createUniqueId, enableHydration, from, lazy, observable, onMount, sharedConfig, ssrHandleError, ssrRunInScope, useContext };
350
+ export { $DEVCOMP, Boundary, DEV, ErrorBoundary, For, Match, Repeat, Show, Suspense, Switch, children, createAsync, createComponent, createContext, createUniqueId, enableHydration, from, lazy, observable, onMount, reducer, sharedConfig, ssrHandleError, ssrRunInScope, tryCatch, useContext };
package/dist/server.cjs CHANGED
@@ -385,6 +385,11 @@ function repeat(count, mapFn, options = {}) {
385
385
  } else if (options.fallback) s = [options.fallback()];
386
386
  return () => s;
387
387
  }
388
+ function transition(fn) {
389
+ }
390
+ function useTransition() {
391
+ return [() => false, () => {}];
392
+ }
388
393
 
389
394
  function isWrappable(obj) {
390
395
  return obj != null && typeof obj === "object" && !Object.isFrozen(obj);
@@ -409,6 +414,7 @@ function createProjection(fn, initialValue = {}) {
409
414
  fn(state);
410
415
  return state;
411
416
  }
417
+ const createOptimistic = createStore;
412
418
  function reconcile(value) {
413
419
  return state => {
414
420
  if (!isWrappable(state) || !isWrappable(value)) return value;
@@ -463,6 +469,30 @@ function omit(props, ...keys) {
463
469
  }
464
470
  return clone;
465
471
  }
472
+ function deep(store) {
473
+ return store;
474
+ }
475
+
476
+ function tryCatch(fn) {
477
+ try {
478
+ const v = fn();
479
+ if (v instanceof Promise) {
480
+ return v.then(v => [undefined, v], e => {
481
+ if (e instanceof signals.NotReadyError) throw e;
482
+ return [e];
483
+ });
484
+ }
485
+ return [undefined, v];
486
+ } catch (e) {
487
+ if (e instanceof signals.NotReadyError) throw e;
488
+ return [e];
489
+ }
490
+ }
491
+ function reducer(source, reducerFn) {
492
+ return [source[0], action => {
493
+ source[1](s => reducerFn(s, action));
494
+ }];
495
+ }
466
496
 
467
497
  const $DEVCOMP = Symbol("solid-dev-component");
468
498
  const DEV = undefined;
@@ -503,10 +533,6 @@ Object.defineProperty(exports, "runWithOwner", {
503
533
  enumerable: true,
504
534
  get: function () { return signals.runWithOwner; }
505
535
  });
506
- Object.defineProperty(exports, "tryCatch", {
507
- enumerable: true,
508
- get: function () { return signals.tryCatch; }
509
- });
510
536
  exports.$DEVCOMP = $DEVCOMP;
511
537
  exports.DEV = DEV;
512
538
  exports.ErrorBoundary = ErrorBoundary;
@@ -522,11 +548,13 @@ exports.createComponent = createComponent;
522
548
  exports.createContext = createContext;
523
549
  exports.createEffect = createEffect;
524
550
  exports.createMemo = createMemo;
551
+ exports.createOptimistic = createOptimistic;
525
552
  exports.createProjection = createProjection;
526
553
  exports.createRenderEffect = createRenderEffect;
527
554
  exports.createSignal = createSignal;
528
555
  exports.createStore = createStore;
529
556
  exports.createUniqueId = createUniqueId;
557
+ exports.deep = deep;
530
558
  exports.enableHydration = enableHydration;
531
559
  exports.flush = flush;
532
560
  exports.from = from;
@@ -540,12 +568,16 @@ exports.observable = observable;
540
568
  exports.omit = omit;
541
569
  exports.onMount = onMount;
542
570
  exports.reconcile = reconcile;
571
+ exports.reducer = reducer;
543
572
  exports.repeat = repeat;
544
573
  exports.resolve = resolve;
545
574
  exports.runWithObserver = runWithObserver;
546
575
  exports.sharedConfig = sharedConfig;
547
576
  exports.ssrHandleError = ssrHandleError;
548
577
  exports.ssrRunInScope = ssrRunInScope;
578
+ exports.transition = transition;
579
+ exports.tryCatch = tryCatch;
549
580
  exports.untrack = untrack;
550
581
  exports.unwrap = unwrap;
551
582
  exports.useContext = useContext;
583
+ exports.useTransition = useTransition;
package/dist/server.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { getContext, onCleanup, Owner, runWithOwner, createRoot, setContext, flatten, NotReadyError, getOwner } from '@solidjs/signals';
2
- export { $PROXY, $TRACK, createRoot, flatten, getOwner, isEqual, isWrappable, onCleanup, runWithOwner, tryCatch } from '@solidjs/signals';
2
+ export { $PROXY, $TRACK, createRoot, flatten, getOwner, isEqual, isWrappable, onCleanup, runWithOwner } from '@solidjs/signals';
3
3
 
4
4
  function onMount(fn) {
5
5
  createEffect();
@@ -384,6 +384,11 @@ function repeat(count, mapFn, options = {}) {
384
384
  } else if (options.fallback) s = [options.fallback()];
385
385
  return () => s;
386
386
  }
387
+ function transition(fn) {
388
+ }
389
+ function useTransition() {
390
+ return [() => false, () => {}];
391
+ }
387
392
 
388
393
  function isWrappable(obj) {
389
394
  return obj != null && typeof obj === "object" && !Object.isFrozen(obj);
@@ -408,6 +413,7 @@ function createProjection(fn, initialValue = {}) {
408
413
  fn(state);
409
414
  return state;
410
415
  }
416
+ const createOptimistic = createStore;
411
417
  function reconcile(value) {
412
418
  return state => {
413
419
  if (!isWrappable(state) || !isWrappable(value)) return value;
@@ -462,8 +468,32 @@ function omit(props, ...keys) {
462
468
  }
463
469
  return clone;
464
470
  }
471
+ function deep(store) {
472
+ return store;
473
+ }
474
+
475
+ function tryCatch(fn) {
476
+ try {
477
+ const v = fn();
478
+ if (v instanceof Promise) {
479
+ return v.then(v => [undefined, v], e => {
480
+ if (e instanceof NotReadyError) throw e;
481
+ return [e];
482
+ });
483
+ }
484
+ return [undefined, v];
485
+ } catch (e) {
486
+ if (e instanceof NotReadyError) throw e;
487
+ return [e];
488
+ }
489
+ }
490
+ function reducer(source, reducerFn) {
491
+ return [source[0], action => {
492
+ source[1](s => reducerFn(s, action));
493
+ }];
494
+ }
465
495
 
466
496
  const $DEVCOMP = Symbol("solid-dev-component");
467
497
  const DEV = undefined;
468
498
 
469
- export { $DEVCOMP, DEV, ErrorBoundary, For, Match, Repeat, Show, Suspense, Switch, children, createAsync, createComponent, createContext, createEffect, createMemo, createProjection, createRenderEffect, createSignal, createStore, createUniqueId, enableHydration, flush, from, getObserver, isPending, latest, lazy, mapArray, merge, observable, omit, onMount, reconcile, repeat, resolve, runWithObserver, sharedConfig, ssrHandleError, ssrRunInScope, untrack, unwrap, useContext };
499
+ export { $DEVCOMP, DEV, ErrorBoundary, For, Match, Repeat, Show, Suspense, Switch, children, createAsync, createComponent, createContext, createEffect, createMemo, createOptimistic, createProjection, createRenderEffect, createSignal, createStore, createUniqueId, deep, enableHydration, flush, from, getObserver, isPending, latest, lazy, mapArray, merge, observable, omit, onMount, reconcile, reducer, repeat, resolve, runWithObserver, sharedConfig, ssrHandleError, ssrRunInScope, transition, tryCatch, untrack, unwrap, useContext, useTransition };
package/dist/solid.cjs CHANGED
@@ -31,6 +31,27 @@ function children(fn) {
31
31
  return memo;
32
32
  }
33
33
 
34
+ function tryCatch(fn) {
35
+ try {
36
+ const v = fn();
37
+ if (v instanceof Promise) {
38
+ return v.then(v => [undefined, v], e => {
39
+ if (e instanceof signals.NotReadyError) throw e;
40
+ return [e];
41
+ });
42
+ }
43
+ return [undefined, v];
44
+ } catch (e) {
45
+ if (e instanceof signals.NotReadyError) throw e;
46
+ return [e];
47
+ }
48
+ }
49
+ function reducer(source, reducerFn) {
50
+ return [source[0], action => {
51
+ source[1](s => reducerFn(s, action));
52
+ }];
53
+ }
54
+
34
55
  function observable(input) {
35
56
  return {
36
57
  subscribe(observer) {
@@ -400,14 +421,14 @@ Object.defineProperty(exports, "transition", {
400
421
  enumerable: true,
401
422
  get: function () { return signals.transition; }
402
423
  });
403
- Object.defineProperty(exports, "tryCatch", {
404
- enumerable: true,
405
- get: function () { return signals.tryCatch; }
406
- });
407
424
  Object.defineProperty(exports, "untrack", {
408
425
  enumerable: true,
409
426
  get: function () { return signals.untrack; }
410
427
  });
428
+ Object.defineProperty(exports, "useTransition", {
429
+ enumerable: true,
430
+ get: function () { return signals.useTransition; }
431
+ });
411
432
  exports.$DEVCOMP = $DEVCOMP;
412
433
  exports.Boundary = Boundary;
413
434
  exports.DEV = DEV;
@@ -428,7 +449,9 @@ exports.from = from;
428
449
  exports.lazy = lazy;
429
450
  exports.observable = observable;
430
451
  exports.onMount = onMount;
452
+ exports.reducer = reducer;
431
453
  exports.sharedConfig = sharedConfig;
432
454
  exports.ssrHandleError = ssrHandleError;
433
455
  exports.ssrRunInScope = ssrRunInScope;
456
+ exports.tryCatch = tryCatch;
434
457
  exports.useContext = useContext;
package/dist/solid.js CHANGED
@@ -1,5 +1,5 @@
1
- import { createEffect, getContext, createMemo, flatten, createRoot, setContext, getOwner, onCleanup, createSignal, createSuspense, flush, runWithObserver, createAsync as createAsync$1, untrack, mapArray, repeat, createErrorBoundary, createBoundary } from '@solidjs/signals';
2
- export { $PROXY, $TRACK, createEffect, createMemo, createOptimistic, createProjection, createRenderEffect, createRoot, createSignal, createStore, deep, flatten, flush, getObserver, getOwner, isEqual, isPending, isWrappable, latest, mapArray, merge, omit, onCleanup, reconcile, repeat, resolve, runWithObserver, runWithOwner, snapshot, transition, tryCatch, untrack } from '@solidjs/signals';
1
+ import { createEffect, getContext, createMemo, flatten, createRoot, setContext, NotReadyError, getOwner, onCleanup, createSignal, createSuspense, flush, runWithObserver, createAsync as createAsync$1, untrack, mapArray, repeat, createErrorBoundary, createBoundary } from '@solidjs/signals';
2
+ export { $PROXY, $TRACK, createEffect, createMemo, createOptimistic, createProjection, createRenderEffect, createRoot, createSignal, createStore, deep, flatten, flush, getObserver, getOwner, isEqual, isPending, isWrappable, latest, mapArray, merge, omit, onCleanup, reconcile, repeat, resolve, runWithObserver, runWithOwner, snapshot, transition, untrack, useTransition } from '@solidjs/signals';
3
3
 
4
4
  const $DEVCOMP = Symbol(0);
5
5
  function onMount(fn) {
@@ -30,6 +30,27 @@ function children(fn) {
30
30
  return memo;
31
31
  }
32
32
 
33
+ function tryCatch(fn) {
34
+ try {
35
+ const v = fn();
36
+ if (v instanceof Promise) {
37
+ return v.then(v => [undefined, v], e => {
38
+ if (e instanceof NotReadyError) throw e;
39
+ return [e];
40
+ });
41
+ }
42
+ return [undefined, v];
43
+ } catch (e) {
44
+ if (e instanceof NotReadyError) throw e;
45
+ return [e];
46
+ }
47
+ }
48
+ function reducer(source, reducerFn) {
49
+ return [source[0], action => {
50
+ source[1](s => reducerFn(s, action));
51
+ }];
52
+ }
53
+
33
54
  function observable(input) {
34
55
  return {
35
56
  subscribe(observer) {
@@ -279,4 +300,4 @@ function ssrHandleError() {}
279
300
  function ssrRunInScope() {}
280
301
  const DEV = undefined;
281
302
 
282
- export { $DEVCOMP, Boundary, DEV, ErrorBoundary, For, Match, Repeat, Show, Suspense, Switch, children, createAsync, createComponent, createContext, createUniqueId, enableHydration, from, lazy, observable, onMount, sharedConfig, ssrHandleError, ssrRunInScope, useContext };
303
+ export { $DEVCOMP, Boundary, DEV, ErrorBoundary, For, Match, Repeat, Show, Suspense, Switch, children, createAsync, createComponent, createContext, createUniqueId, enableHydration, from, lazy, observable, onMount, reducer, sharedConfig, ssrHandleError, ssrRunInScope, tryCatch, useContext };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "solid-js",
3
3
  "description": "A declarative JavaScript library for building user interfaces.",
4
- "version": "2.0.0-experimental.7",
4
+ "version": "2.0.0-experimental.9",
5
5
  "author": "Ryan Carniato",
6
6
  "license": "MIT",
7
7
  "homepage": "https://solidjs.com",
@@ -79,7 +79,7 @@
79
79
  "performance"
80
80
  ],
81
81
  "dependencies": {
82
- "@solidjs/signals": "^0.4.1",
82
+ "@solidjs/signals": "^0.6.0",
83
83
  "csstype": "^3.1.0",
84
84
  "seroval": "~1.3.0",
85
85
  "seroval-plugins": "~1.3.0"
@@ -36,7 +36,7 @@ export declare function Suspense(props: {
36
36
  * compute: (v: T) => Promise<T> | T,
37
37
  * value?: T,
38
38
  * options?: { name?: string, equals?: false | ((prev: T, next: T) => boolean) }
39
- * ): () => T;
39
+ * ): () => T & { refresh: () => void };
40
40
  * ```
41
41
  * @param compute a function that receives its previous or the initial value, if set, and returns a new value used to react on a computation
42
42
  * @param value an optional initial value for the computation; if set, fn will never receive undefined as first argument
@@ -44,5 +44,7 @@ export declare function Suspense(props: {
44
44
  *
45
45
  * @description https://docs.solidjs.com/reference/basic-reactivity/create-async
46
46
  */
47
- export declare function createAsync<T>(compute: (prev?: T) => Promise<T> | AsyncIterable<T> | T, value?: T, options?: MemoOptions<T>): Accessor<T>;
47
+ export declare function createAsync<T>(compute: (prev?: T) => Promise<T> | AsyncIterable<T> | T, value?: T, options?: MemoOptions<T>): Accessor<T> & {
48
+ refresh: () => void;
49
+ };
48
50
  export {};
package/types/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- export { $PROXY, $TRACK, createEffect, createMemo, createOptimistic, createProjection, createRenderEffect, createRoot, createSignal, createStore, flatten, flush, getObserver, getOwner, isEqual, isPending, isWrappable, latest, mapArray, merge, omit, onCleanup, reconcile, repeat, resolve, runWithObserver, runWithOwner, snapshot, tryCatch, untrack, deep, transition } from "@solidjs/signals";
2
- export type { Accessor, BoundaryMode, ComputeFunction, EffectFunction, EffectOptions, Merge, NoInfer, NotWrappable, Omit, Owner, Signal, SignalOptions, Setter, Store, SolidStore, StoreNode, StoreSetter, TryCatchResult } from "@solidjs/signals";
1
+ export { $PROXY, $TRACK, createEffect, createMemo, createOptimistic, createProjection, createRenderEffect, createRoot, createSignal, createStore, flatten, flush, getObserver, getOwner, isEqual, isPending, isWrappable, latest, mapArray, merge, omit, onCleanup, reconcile, repeat, resolve, runWithObserver, runWithOwner, snapshot, untrack, deep, transition, useTransition } from "@solidjs/signals";
2
+ export type { Accessor, BoundaryMode, ComputeFunction, EffectFunction, EffectOptions, Merge, NoInfer, NotWrappable, Omit, Owner, Signal, SignalOptions, Setter, Store, SolidStore, StoreNode, StoreSetter } from "@solidjs/signals";
3
3
  export { $DEVCOMP, children, createContext, onMount, useContext } from "./client/core.js";
4
4
  export type { ChildrenReturn, Context, ContextProviderComponent, ResolvedChildren, ResolvedJSXElement } from "./client/core.js";
5
+ export * from "./utilities.js";
5
6
  export * from "./client/observable.js";
6
7
  export * from "./client/component.js";
7
8
  export * from "./client/flow.js";
@@ -1,8 +1,9 @@
1
- export { $PROXY, $TRACK, tryCatch, flatten, isEqual, isWrappable } from "@solidjs/signals";
2
- export { createAsync, createEffect, createMemo, createRenderEffect, createRoot, createSignal, flush, getObserver, getOwner, isPending, latest, mapArray, onCleanup, repeat, resolve, runWithObserver, runWithOwner, untrack } from "./signals.js";
1
+ export { $PROXY, $TRACK, flatten, isEqual, isWrappable } from "@solidjs/signals";
2
+ export { createAsync, createEffect, createMemo, createRenderEffect, createRoot, createSignal, flush, getObserver, getOwner, isPending, latest, mapArray, onCleanup, repeat, resolve, runWithObserver, runWithOwner, untrack, transition, useTransition } from "./signals.js";
3
3
  export { observable, from, children, createContext, onMount, useContext, ssrRunInScope } from "./reactive.js";
4
- export { createProjection, createStore, unwrap, reconcile, merge, omit } from "./store.js";
4
+ export { createProjection, createStore, createOptimistic, unwrap, reconcile, merge, omit, deep } from "./store.js";
5
5
  export { createComponent, For, Repeat, Show, Switch, Match, ErrorBoundary, Suspense, enableHydration, createUniqueId, lazy, sharedConfig, ssrHandleError } from "./rendering.js";
6
+ export * from "../utilities.js";
6
7
  export declare const $DEVCOMP: unique symbol;
7
8
  export declare const DEV: undefined;
8
9
  export type { Component } from "../index.js";
@@ -35,3 +35,5 @@ export declare function repeat<T>(count: Accessor<number>, mapFn: (i: number) =>
35
35
  fallback?: Accessor<any>;
36
36
  from?: Accessor<number | undefined>;
37
37
  }): () => T[];
38
+ export declare function transition<T>(fn: () => T): void;
39
+ export declare function useTransition(): [() => boolean, (fn: () => void) => void];
@@ -4,6 +4,8 @@ export declare function isWrappable(obj: any): boolean;
4
4
  export declare function unwrap<T>(item: T): T;
5
5
  export declare function createStore<T>(state: T | Store<T>): [get: Store<T>, set: StoreSetter<T>];
6
6
  export declare function createProjection<T extends Object>(fn: (draft: T) => void, initialValue?: T): Store<T>;
7
+ export declare const createOptimistic: typeof createStore;
7
8
  export declare function reconcile<T extends U, U extends object>(value: T): (state: U) => T;
8
9
  export declare function merge<T extends unknown[]>(...sources: T): Merge<T>;
9
10
  export declare function omit<T extends Record<any, any>, K extends readonly (keyof T)[]>(props: T, ...keys: K): Omit<T, K>;
11
+ export declare function deep<T extends object>(store: Store<T>): Store<T>;
@@ -0,0 +1,36 @@
1
+ import { Accessor, Signal, Store, StoreSetter } from "@solidjs/signals";
2
+ /**
3
+ * Runs the given function and returns a tuple with the result or an error.
4
+ * If the function throws an error, it will be caught and returned as the first element of the tuple.
5
+ * If the function returns a promise, it will resolve to a tuple with the result or an error.
6
+ *
7
+ * @param fn The function to run.
8
+ * @returns A tuple with either [undefined, result] or [error].
9
+ *
10
+ * @description https://docs.solidjs.com/reference/reactive-utilities/try-catch
11
+ */
12
+ export type TryCatchResult<T, E> = [undefined, T] | [E];
13
+ export declare function tryCatch<T, E = Error>(fn: () => Promise<T>): Promise<TryCatchResult<T, E>>;
14
+ export declare function tryCatch<T, E = Error>(fn: () => T): TryCatchResult<T, E>;
15
+ /**
16
+ * Simple reducer utility for Signals and Stores
17
+ * ```typescript
18
+ * const [state, dispatch] = reducer(createSignal({ count: 0 }), (state, action) => {
19
+ * switch (action.type) {
20
+ * case "increment":
21
+ * return { count: state.count + 1 };
22
+ * case "decrement":
23
+ * return { count: state.count - 1 };
24
+ * default:
25
+ * return state;
26
+ * }
27
+ * });
28
+ * ```
29
+ * @param source Signal or Store tuple
30
+ * @param reducerFn reducer function that receives the current value and an action, and returns the new value for signals or void for stores
31
+ * @returns a tuple with the current value accessor and a dispatch function to send actions to the reducer
32
+ *
33
+ * @description https://docs.solidjs.com/reference/reactive-utilities/reducer
34
+ */
35
+ export declare function reducer<T, A>(source: Signal<T>, reducerFn: (value: T, action: A) => T): [Accessor<T>, (action: A) => void];
36
+ export declare function reducer<T, A>(source: [Store<T>, StoreSetter<T>], reducerFn: (value: T, action: A) => T | void): [Store<T>, (action: A) => void];