solid-js 1.9.2 → 1.9.3

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 (46) hide show
  1. package/dist/dev.js +559 -318
  2. package/dist/server.js +168 -74
  3. package/dist/solid.js +486 -276
  4. package/h/dist/h.js +40 -9
  5. package/h/jsx-runtime/dist/jsx.js +1 -1
  6. package/h/jsx-runtime/types/index.d.ts +11 -8
  7. package/h/jsx-runtime/types/jsx.d.ts +93 -91
  8. package/h/types/hyperscript.d.ts +11 -11
  9. package/html/dist/html.js +219 -94
  10. package/html/types/lit.d.ts +52 -33
  11. package/package.json +1 -1
  12. package/store/dist/dev.js +123 -43
  13. package/store/dist/server.js +20 -8
  14. package/store/dist/store.js +114 -40
  15. package/store/types/index.d.ts +21 -7
  16. package/store/types/modifiers.d.ts +6 -3
  17. package/store/types/mutable.d.ts +5 -2
  18. package/store/types/server.d.ts +25 -5
  19. package/store/types/store.d.ts +218 -61
  20. package/types/index.d.ts +75 -10
  21. package/types/jsx.d.ts +143 -157
  22. package/types/reactive/array.d.ts +12 -4
  23. package/types/reactive/observable.d.ts +25 -17
  24. package/types/reactive/scheduler.d.ts +9 -6
  25. package/types/reactive/signal.d.ts +233 -142
  26. package/types/render/Suspense.d.ts +5 -5
  27. package/types/render/component.d.ts +71 -35
  28. package/types/render/flow.d.ts +43 -31
  29. package/types/render/hydration.d.ts +15 -15
  30. package/types/server/index.d.ts +57 -2
  31. package/types/server/reactive.d.ts +73 -42
  32. package/types/server/rendering.d.ts +169 -98
  33. package/universal/dist/dev.js +28 -12
  34. package/universal/dist/universal.js +28 -12
  35. package/universal/types/index.d.ts +3 -1
  36. package/universal/types/universal.d.ts +0 -1
  37. package/web/dist/dev.js +639 -89
  38. package/web/dist/server.cjs +13 -10
  39. package/web/dist/server.js +653 -118
  40. package/web/dist/web.js +627 -87
  41. package/web/storage/dist/storage.js +3 -3
  42. package/web/types/client.d.ts +1 -1
  43. package/web/types/core.d.ts +10 -1
  44. package/web/types/index.d.ts +27 -10
  45. package/web/types/server-mock.d.ts +47 -32
  46. package/web/types/server.d.ts +1 -1
@@ -33,58 +33,61 @@ export declare var Owner: Owner | null;
33
33
  export declare let Transition: TransitionState | null;
34
34
  /** Object storing callbacks for debugging during development */
35
35
  export declare const DevHooks: {
36
- afterUpdate: (() => void) | null;
37
- afterCreateOwner: ((owner: Owner) => void) | null;
38
- afterCreateSignal: ((signal: SignalState<any>) => void) | null;
36
+ afterUpdate: (() => void) | null;
37
+ afterCreateOwner: ((owner: Owner) => void) | null;
38
+ afterCreateSignal: ((signal: SignalState<any>) => void) | null;
39
39
  };
40
40
  export type ComputationState = 0 | 1 | 2;
41
41
  export interface SourceMapValue {
42
- value: unknown;
43
- name?: string;
44
- graph?: Owner;
42
+ value: unknown;
43
+ name?: string;
44
+ graph?: Owner;
45
45
  }
46
46
  export interface SignalState<T> extends SourceMapValue {
47
- value: T;
48
- observers: Computation<any>[] | null;
49
- observerSlots: number[] | null;
50
- tValue?: T;
51
- comparator?: (prev: T, next: T) => boolean;
47
+ value: T;
48
+ observers: Computation<any>[] | null;
49
+ observerSlots: number[] | null;
50
+ tValue?: T;
51
+ comparator?: (prev: T, next: T) => boolean;
52
52
  }
53
53
  export interface Owner {
54
- owned: Computation<any>[] | null;
55
- cleanups: (() => void)[] | null;
56
- owner: Owner | null;
57
- context: any | null;
58
- sourceMap?: SourceMapValue[];
59
- name?: string;
54
+ owned: Computation<any>[] | null;
55
+ cleanups: (() => void)[] | null;
56
+ owner: Owner | null;
57
+ context: any | null;
58
+ sourceMap?: SourceMapValue[];
59
+ name?: string;
60
60
  }
61
61
  export interface Computation<Init, Next extends Init = Init> extends Owner {
62
- fn: EffectFunction<Init, Next>;
63
- state: ComputationState;
64
- tState?: ComputationState;
65
- sources: SignalState<Next>[] | null;
66
- sourceSlots: number[] | null;
67
- value?: Init;
68
- updatedAt: number | null;
69
- pure: boolean;
70
- user?: boolean;
71
- suspense?: SuspenseContextType;
62
+ fn: EffectFunction<Init, Next>;
63
+ state: ComputationState;
64
+ tState?: ComputationState;
65
+ sources: SignalState<Next>[] | null;
66
+ sourceSlots: number[] | null;
67
+ value?: Init;
68
+ updatedAt: number | null;
69
+ pure: boolean;
70
+ user?: boolean;
71
+ suspense?: SuspenseContextType;
72
72
  }
73
73
  export interface TransitionState {
74
- sources: Set<SignalState<any>>;
75
- effects: Computation<any>[];
76
- promises: Set<Promise<any>>;
77
- disposed: Set<Computation<any>>;
78
- queue: Set<Computation<any>>;
79
- scheduler?: (fn: () => void) => unknown;
80
- running: boolean;
81
- done?: Promise<void>;
82
- resolve?: () => void;
74
+ sources: Set<SignalState<any>>;
75
+ effects: Computation<any>[];
76
+ promises: Set<Promise<any>>;
77
+ disposed: Set<Computation<any>>;
78
+ queue: Set<Computation<any>>;
79
+ scheduler?: (fn: () => void) => unknown;
80
+ running: boolean;
81
+ done?: Promise<void>;
82
+ resolve?: () => void;
83
83
  }
84
- type ExternalSourceFactory = <Prev, Next extends Prev = Prev>(fn: EffectFunction<Prev, Next>, trigger: () => void) => ExternalSource;
84
+ type ExternalSourceFactory = <Prev, Next extends Prev = Prev>(
85
+ fn: EffectFunction<Prev, Next>,
86
+ trigger: () => void
87
+ ) => ExternalSource;
85
88
  export interface ExternalSource {
86
- track: EffectFunction<any, any>;
87
- dispose: () => void;
89
+ track: EffectFunction<any, any>;
90
+ dispose: () => void;
88
91
  }
89
92
  export type RootFunction<T> = (dispose: () => void) => T;
90
93
  /**
@@ -99,14 +102,16 @@ export type RootFunction<T> = (dispose: () => void) => T;
99
102
  export declare function createRoot<T>(fn: RootFunction<T>, detachedOwner?: typeof Owner): T;
100
103
  export type Accessor<T> = () => T;
101
104
  export type Setter<in out T> = {
102
- <U extends T>(value: Exclude<U, Function> | ((prev: T) => U)): U;
103
- <U extends T>(...args: undefined extends T ? [] : [value: Exclude<U, Function> | ((prev: T) => U)]): undefined extends T ? undefined : U;
104
- <U extends T>(value: (prev: T) => U): U;
105
- <U extends T>(value: Exclude<U, Function>): U;
105
+ <U extends T>(
106
+ ...args: undefined extends T ? [] : [value: Exclude<U, Function> | ((prev: T) => U)]
107
+ ): undefined extends T ? undefined : U;
108
+ <U extends T>(value: (prev: T) => U): U;
109
+ <U extends T>(value: Exclude<U, Function>): U;
110
+ <U extends T>(value: Exclude<U, Function> | ((prev: T) => U)): U;
106
111
  };
107
112
  export type Signal<T> = [get: Accessor<T>, set: Setter<T>];
108
113
  export interface SignalOptions<T> extends MemoOptions<T> {
109
- internal?: boolean;
114
+ internal?: boolean;
110
115
  }
111
116
  /**
112
117
  * Creates a simple reactive state with a getter and setter
@@ -134,11 +139,10 @@ export interface SignalOptions<T> extends MemoOptions<T> {
134
139
  export declare function createSignal<T>(): Signal<T | undefined>;
135
140
  export declare function createSignal<T>(value: T, options?: SignalOptions<T>): Signal<T>;
136
141
  export interface BaseOptions {
137
- name?: string;
142
+ name?: string;
138
143
  }
139
144
  export type NoInfer<T extends any> = [T][T extends any ? 0 : never];
140
- export interface EffectOptions extends BaseOptions {
141
- }
145
+ export interface EffectOptions extends BaseOptions {}
142
146
  export type EffectFunction<Prev, Next extends Prev = Prev> = (v: Prev) => Next;
143
147
  /**
144
148
  * Creates a reactive computation that runs immediately before render, mainly used to write to other reactive primitives
@@ -155,8 +159,14 @@ export type EffectFunction<Prev, Next extends Prev = Prev> = (v: Prev) => Next;
155
159
  *
156
160
  * @description https://docs.solidjs.com/reference/secondary-primitives/create-computed
157
161
  */
158
- export declare function createComputed<Next>(fn: EffectFunction<undefined | NoInfer<Next>, Next>): void;
159
- export declare function createComputed<Next, Init = Next>(fn: EffectFunction<Init | Next, Next>, value: Init, options?: EffectOptions): void;
162
+ export declare function createComputed<Next>(
163
+ fn: EffectFunction<undefined | NoInfer<Next>, Next>
164
+ ): void;
165
+ export declare function createComputed<Next, Init = Next>(
166
+ fn: EffectFunction<Init | Next, Next>,
167
+ value: Init,
168
+ options?: EffectOptions
169
+ ): void;
160
170
  /**
161
171
  * Creates a reactive computation that runs during the render phase as DOM elements are created and updated but not necessarily connected
162
172
  * ```typescript
@@ -172,8 +182,14 @@ export declare function createComputed<Next, Init = Next>(fn: EffectFunction<Ini
172
182
  *
173
183
  * @description https://docs.solidjs.com/reference/secondary-primitives/create-render-effect
174
184
  */
175
- export declare function createRenderEffect<Next>(fn: EffectFunction<undefined | NoInfer<Next>, Next>): void;
176
- export declare function createRenderEffect<Next, Init = Next>(fn: EffectFunction<Init | Next, Next>, value: Init, options?: EffectOptions): void;
185
+ export declare function createRenderEffect<Next>(
186
+ fn: EffectFunction<undefined | NoInfer<Next>, Next>
187
+ ): void;
188
+ export declare function createRenderEffect<Next, Init = Next>(
189
+ fn: EffectFunction<Init | Next, Next>,
190
+ value: Init,
191
+ options?: EffectOptions
192
+ ): void;
177
193
  /**
178
194
  * Creates a reactive computation that runs after the render phase
179
195
  * ```typescript
@@ -189,10 +205,16 @@ export declare function createRenderEffect<Next, Init = Next>(fn: EffectFunction
189
205
  *
190
206
  * @description https://docs.solidjs.com/reference/basic-reactivity/create-effect
191
207
  */
192
- export declare function createEffect<Next>(fn: EffectFunction<undefined | NoInfer<Next>, Next>): void;
193
- export declare function createEffect<Next, Init = Next>(fn: EffectFunction<Init | Next, Next>, value: Init, options?: EffectOptions & {
208
+ export declare function createEffect<Next>(
209
+ fn: EffectFunction<undefined | NoInfer<Next>, Next>
210
+ ): void;
211
+ export declare function createEffect<Next, Init = Next>(
212
+ fn: EffectFunction<Init | Next, Next>,
213
+ value: Init,
214
+ options?: EffectOptions & {
194
215
  render?: boolean;
195
- }): void;
216
+ }
217
+ ): void;
196
218
  /**
197
219
  * Creates a reactive computation that runs after the render phase with flexible tracking
198
220
  * ```typescript
@@ -206,13 +228,16 @@ export declare function createEffect<Next, Init = Next>(fn: EffectFunction<Init
206
228
  *
207
229
  * @description https://docs.solidjs.com/reference/secondary-primitives/create-reaction
208
230
  */
209
- export declare function createReaction(onInvalidate: () => void, options?: EffectOptions): (tracking: () => void) => void;
231
+ export declare function createReaction(
232
+ onInvalidate: () => void,
233
+ options?: EffectOptions
234
+ ): (tracking: () => void) => void;
210
235
  export interface Memo<Prev, Next = Prev> extends SignalState<Next>, Computation<Next> {
211
- value: Next;
212
- tOwned?: Computation<Prev | Next, Next>[];
236
+ value: Next;
237
+ tOwned?: Computation<Prev | Next, Next>[];
213
238
  }
214
239
  export interface MemoOptions<T> extends EffectOptions {
215
- equals?: false | ((prev: T, next: T) => boolean);
240
+ equals?: false | ((prev: T, next: T) => boolean);
216
241
  }
217
242
  /**
218
243
  * Creates a readonly derived reactive memoized signal
@@ -229,72 +254,84 @@ export interface MemoOptions<T> extends EffectOptions {
229
254
  *
230
255
  * @description https://docs.solidjs.com/reference/basic-reactivity/create-memo
231
256
  */
232
- export declare function createMemo<Next extends Prev, Prev = Next>(fn: EffectFunction<undefined | NoInfer<Prev>, Next>): Accessor<Next>;
233
- export declare function createMemo<Next extends Prev, Init = Next, Prev = Next>(fn: EffectFunction<Init | Prev, Next>, value: Init, options?: MemoOptions<Next>): Accessor<Next>;
257
+ export declare function createMemo<Next extends Prev, Prev = Next>(
258
+ fn: EffectFunction<undefined | NoInfer<Prev>, Next>
259
+ ): Accessor<Next>;
260
+ export declare function createMemo<Next extends Prev, Init = Next, Prev = Next>(
261
+ fn: EffectFunction<Init | Prev, Next>,
262
+ value: Init,
263
+ options?: MemoOptions<Next>
264
+ ): Accessor<Next>;
234
265
  interface Unresolved {
235
- state: "unresolved";
236
- loading: false;
237
- error: undefined;
238
- latest: undefined;
239
- (): undefined;
266
+ state: "unresolved";
267
+ loading: false;
268
+ error: undefined;
269
+ latest: undefined;
270
+ (): undefined;
240
271
  }
241
272
  interface Pending {
242
- state: "pending";
243
- loading: true;
244
- error: undefined;
245
- latest: undefined;
246
- (): undefined;
273
+ state: "pending";
274
+ loading: true;
275
+ error: undefined;
276
+ latest: undefined;
277
+ (): undefined;
247
278
  }
248
279
  interface Ready<T> {
249
- state: "ready";
250
- loading: false;
251
- error: undefined;
252
- latest: T;
253
- (): T;
280
+ state: "ready";
281
+ loading: false;
282
+ error: undefined;
283
+ latest: T;
284
+ (): T;
254
285
  }
255
286
  interface Refreshing<T> {
256
- state: "refreshing";
257
- loading: true;
258
- error: undefined;
259
- latest: T;
260
- (): T;
287
+ state: "refreshing";
288
+ loading: true;
289
+ error: undefined;
290
+ latest: T;
291
+ (): T;
261
292
  }
262
293
  interface Errored {
263
- state: "errored";
264
- loading: false;
265
- error: any;
266
- latest: never;
267
- (): never;
294
+ state: "errored";
295
+ loading: false;
296
+ error: any;
297
+ latest: never;
298
+ (): never;
268
299
  }
269
300
  export type Resource<T> = Unresolved | Pending | Ready<T> | Refreshing<T> | Errored;
270
301
  export type InitializedResource<T> = Ready<T> | Refreshing<T> | Errored;
271
302
  export type ResourceActions<T, R = unknown> = {
272
- mutate: Setter<T>;
273
- refetch: (info?: R) => T | Promise<T> | undefined | null;
303
+ mutate: Setter<T>;
304
+ refetch: (info?: R) => T | Promise<T> | undefined | null;
274
305
  };
275
306
  export type ResourceSource<S> = S | false | null | undefined | (() => S | false | null | undefined);
276
- export type ResourceFetcher<S, T, R = unknown> = (k: S, info: ResourceFetcherInfo<T, R>) => T | Promise<T>;
307
+ export type ResourceFetcher<S, T, R = unknown> = (
308
+ k: S,
309
+ info: ResourceFetcherInfo<T, R>
310
+ ) => T | Promise<T>;
277
311
  export type ResourceFetcherInfo<T, R = unknown> = {
278
- value: T | undefined;
279
- refetching: R | boolean;
312
+ value: T | undefined;
313
+ refetching: R | boolean;
280
314
  };
281
315
  export type ResourceOptions<T, S = unknown> = {
282
- initialValue?: T;
283
- name?: string;
284
- deferStream?: boolean;
285
- ssrLoadFrom?: "initial" | "server";
286
- storage?: (init: T | undefined) => [Accessor<T | undefined>, Setter<T | undefined>];
287
- onHydrated?: (k: S | undefined, info: {
288
- value: T | undefined;
289
- }) => void;
316
+ initialValue?: T;
317
+ name?: string;
318
+ deferStream?: boolean;
319
+ ssrLoadFrom?: "initial" | "server";
320
+ storage?: (init: T | undefined) => [Accessor<T | undefined>, Setter<T | undefined>];
321
+ onHydrated?: (
322
+ k: S | undefined,
323
+ info: {
324
+ value: T | undefined;
325
+ }
326
+ ) => void;
290
327
  };
291
328
  export type InitializedResourceOptions<T, S = unknown> = ResourceOptions<T, S> & {
292
- initialValue: T;
329
+ initialValue: T;
293
330
  };
294
331
  export type ResourceReturn<T, R = unknown> = [Resource<T>, ResourceActions<T | undefined, R>];
295
332
  export type InitializedResourceReturn<T, R = unknown> = [
296
- InitializedResource<T>,
297
- ResourceActions<T, R>
333
+ InitializedResource<T>,
334
+ ResourceActions<T, R>
298
335
  ];
299
336
  /**
300
337
  * Creates a resource that wraps a repeated promise in a reactive pattern:
@@ -324,14 +361,28 @@ export type InitializedResourceReturn<T, R = unknown> = [
324
361
  *
325
362
  * @description https://docs.solidjs.com/reference/basic-reactivity/create-resource
326
363
  */
327
- export declare function createResource<T, R = unknown>(fetcher: ResourceFetcher<true, T, R>, options: InitializedResourceOptions<NoInfer<T>, true>): InitializedResourceReturn<T, R>;
328
- export declare function createResource<T, R = unknown>(fetcher: ResourceFetcher<true, T, R>, options?: ResourceOptions<NoInfer<T>, true>): ResourceReturn<T, R>;
329
- export declare function createResource<T, S, R = unknown>(source: ResourceSource<S>, fetcher: ResourceFetcher<S, T, R>, options: InitializedResourceOptions<NoInfer<T>, S>): InitializedResourceReturn<T, R>;
330
- export declare function createResource<T, S, R = unknown>(source: ResourceSource<S>, fetcher: ResourceFetcher<S, T, R>, options?: ResourceOptions<NoInfer<T>, S>): ResourceReturn<T, R>;
364
+ export declare function createResource<T, R = unknown>(
365
+ fetcher: ResourceFetcher<true, T, R>,
366
+ options: InitializedResourceOptions<NoInfer<T>, true>
367
+ ): InitializedResourceReturn<T, R>;
368
+ export declare function createResource<T, R = unknown>(
369
+ fetcher: ResourceFetcher<true, T, R>,
370
+ options?: ResourceOptions<NoInfer<T>, true>
371
+ ): ResourceReturn<T, R>;
372
+ export declare function createResource<T, S, R = unknown>(
373
+ source: ResourceSource<S>,
374
+ fetcher: ResourceFetcher<S, T, R>,
375
+ options: InitializedResourceOptions<NoInfer<T>, S>
376
+ ): InitializedResourceReturn<T, R>;
377
+ export declare function createResource<T, S, R = unknown>(
378
+ source: ResourceSource<S>,
379
+ fetcher: ResourceFetcher<S, T, R>,
380
+ options?: ResourceOptions<NoInfer<T>, S>
381
+ ): ResourceReturn<T, R>;
331
382
  export interface DeferredOptions<T> {
332
- equals?: false | ((prev: T, next: T) => boolean);
333
- name?: string;
334
- timeoutMs?: number;
383
+ equals?: false | ((prev: T, next: T) => boolean);
384
+ name?: string;
385
+ timeoutMs?: number;
335
386
  }
336
387
  /**
337
388
  * Creates a reactive computation that only runs and notifies the reactive context when the browser is idle
@@ -346,7 +397,10 @@ export interface DeferredOptions<T> {
346
397
  *
347
398
  * @description https://docs.solidjs.com/reference/secondary-primitives/create-deferred
348
399
  */
349
- export declare function createDeferred<T>(source: Accessor<T>, options?: DeferredOptions<T>): Accessor<T>;
400
+ export declare function createDeferred<T>(
401
+ source: Accessor<T>,
402
+ options?: DeferredOptions<T>
403
+ ): Accessor<T>;
350
404
  export type EqualityCheckerFunction<T, U> = (a: U, b: T) => boolean;
351
405
  /**
352
406
  * Creates a conditional signal that only notifies subscribers when entering or exiting their key matching the value
@@ -372,7 +426,11 @@ export type EqualityCheckerFunction<T, U> = (a: U, b: T) => boolean;
372
426
  *
373
427
  * @description https://docs.solidjs.com/reference/secondary-primitives/create-selector
374
428
  */
375
- export declare function createSelector<T, U = T>(source: Accessor<T>, fn?: EqualityCheckerFunction<T, U>, options?: BaseOptions): (key: U) => boolean;
429
+ export declare function createSelector<T, U = T>(
430
+ source: Accessor<T>,
431
+ fn?: EqualityCheckerFunction<T, U>,
432
+ options?: BaseOptions
433
+ ): (key: U) => boolean;
376
434
  /**
377
435
  * Holds changes inside the block before the reactive context is updated
378
436
  * @param fn wraps the reactive updates that should be batched
@@ -390,15 +448,28 @@ export declare function batch<T>(fn: Accessor<T>): T;
390
448
  */
391
449
  export declare function untrack<T>(fn: Accessor<T>): T;
392
450
  /** @deprecated */
393
- export type ReturnTypes<T> = T extends readonly Accessor<unknown>[] ? {
394
- [K in keyof T]: T[K] extends Accessor<infer I> ? I : never;
395
- } : T extends Accessor<infer I> ? I : never;
396
- export type AccessorArray<T> = [...Extract<{
397
- [K in keyof T]: Accessor<T[K]>;
398
- }, readonly unknown[]>];
399
- export type OnEffectFunction<S, Prev, Next extends Prev = Prev> = (input: S, prevInput: S | undefined, prev: Prev) => Next;
451
+ export type ReturnTypes<T> = T extends readonly Accessor<unknown>[]
452
+ ? {
453
+ [K in keyof T]: T[K] extends Accessor<infer I> ? I : never;
454
+ }
455
+ : T extends Accessor<infer I>
456
+ ? I
457
+ : never;
458
+ export type AccessorArray<T> = [
459
+ ...Extract<
460
+ {
461
+ [K in keyof T]: Accessor<T[K]>;
462
+ },
463
+ readonly unknown[]
464
+ >
465
+ ];
466
+ export type OnEffectFunction<S, Prev, Next extends Prev = Prev> = (
467
+ input: S,
468
+ prevInput: S | undefined,
469
+ prev: Prev
470
+ ) => Next;
400
471
  export interface OnOptions {
401
- defer?: boolean;
472
+ defer?: boolean;
402
473
  }
403
474
  /**
404
475
  * Makes dependencies of a computation explicit
@@ -426,12 +497,22 @@ export interface OnOptions {
426
497
  *
427
498
  * @description https://docs.solidjs.com/reference/reactive-utilities/on
428
499
  */
429
- export declare function on<S, Next extends Prev, Prev = Next>(deps: AccessorArray<S> | Accessor<S>, fn: OnEffectFunction<S, undefined | NoInfer<Prev>, Next>, options?: OnOptions & {
500
+ export declare function on<S, Next extends Prev, Prev = Next>(
501
+ deps: AccessorArray<S> | Accessor<S>,
502
+ fn: OnEffectFunction<S, undefined | NoInfer<Prev>, Next>,
503
+ options?: OnOptions & {
430
504
  defer?: false;
431
- }): EffectFunction<undefined | NoInfer<Next>, NoInfer<Next>>;
432
- export declare function on<S, Next extends Prev, Prev = Next>(deps: AccessorArray<S> | Accessor<S>, fn: OnEffectFunction<S, undefined | NoInfer<Prev>, Next>, options: OnOptions | {
433
- defer: true;
434
- }): EffectFunction<undefined | NoInfer<Next>>;
505
+ }
506
+ ): EffectFunction<undefined | NoInfer<Next>, NoInfer<Next>>;
507
+ export declare function on<S, Next extends Prev, Prev = Next>(
508
+ deps: AccessorArray<S> | Accessor<S>,
509
+ fn: OnEffectFunction<S, undefined | NoInfer<Prev>, Next>,
510
+ options:
511
+ | OnOptions
512
+ | {
513
+ defer: true;
514
+ }
515
+ ): EffectFunction<undefined | NoInfer<Next>>;
435
516
  /**
436
517
  * Runs an effect only after initial render on mount
437
518
  * @param fn an effect that should run only once on mount
@@ -485,19 +566,19 @@ export type Transition = [Accessor<boolean>, (fn: () => void) => Promise<void>];
485
566
  export declare function useTransition(): Transition;
486
567
  export declare function resumeEffects(e: Computation<any>[]): void;
487
568
  export interface DevComponent<T> extends Memo<unknown> {
488
- props: T;
489
- name: string;
490
- component: (props: T) => unknown;
569
+ props: T;
570
+ name: string;
571
+ component: (props: T) => unknown;
491
572
  }
492
573
  export declare function devComponent<P, V>(Comp: (props: P) => V, props: P): V;
493
574
  export declare function registerGraph(value: SourceMapValue): void;
494
575
  export type ContextProviderComponent<T> = FlowComponent<{
495
- value: T;
576
+ value: T;
496
577
  }>;
497
578
  export interface Context<T> {
498
- id: symbol;
499
- Provider: ContextProviderComponent<T>;
500
- defaultValue: T;
579
+ id: symbol;
580
+ Provider: ContextProviderComponent<T>;
581
+ defaultValue: T;
501
582
  }
502
583
  /**
503
584
  * Creates a Context to handle a state scoped for the children of a component
@@ -518,7 +599,10 @@ export interface Context<T> {
518
599
  *
519
600
  * @description https://docs.solidjs.com/reference/component-apis/create-context
520
601
  */
521
- export declare function createContext<T>(defaultValue?: undefined, options?: EffectOptions): Context<T | undefined>;
602
+ export declare function createContext<T>(
603
+ defaultValue?: undefined,
604
+ options?: EffectOptions
605
+ ): Context<T | undefined>;
522
606
  export declare function createContext<T>(defaultValue: T, options?: EffectOptions): Context<T>;
523
607
  /**
524
608
  * Uses a context to receive a scoped state from a parent's Context.Provider
@@ -532,7 +616,7 @@ export declare function useContext<T>(context: Context<T>): T;
532
616
  export type ResolvedJSXElement = Exclude<JSX.Element, JSX.ArrayElement>;
533
617
  export type ResolvedChildren = ResolvedJSXElement | ResolvedJSXElement[];
534
618
  export type ChildrenReturn = Accessor<ResolvedChildren> & {
535
- toArray: () => ResolvedJSXElement[];
619
+ toArray: () => ResolvedJSXElement[];
536
620
  };
537
621
  /**
538
622
  * Resolves child elements to help interact with children
@@ -544,22 +628,29 @@ export type ChildrenReturn = Accessor<ResolvedChildren> & {
544
628
  */
545
629
  export declare function children(fn: Accessor<JSX.Element>): ChildrenReturn;
546
630
  export type SuspenseContextType = {
547
- increment?: () => void;
548
- decrement?: () => void;
549
- inFallback?: () => boolean;
550
- effects?: Computation<any>[];
551
- resolved?: boolean;
631
+ increment?: () => void;
632
+ decrement?: () => void;
633
+ inFallback?: () => boolean;
634
+ effects?: Computation<any>[];
635
+ resolved?: boolean;
552
636
  };
553
637
  type SuspenseContext = Context<SuspenseContextType | undefined> & {
554
- active?(): boolean;
555
- increment?(): void;
556
- decrement?(): void;
638
+ active?(): boolean;
639
+ increment?(): void;
640
+ decrement?(): void;
557
641
  };
558
642
  declare let SuspenseContext: SuspenseContext;
559
643
  export declare function getSuspenseContext(): SuspenseContext;
560
- export declare function enableExternalSource(factory: ExternalSourceFactory, untrack?: <V>(fn: () => V) => V): void;
644
+ export declare function enableExternalSource(
645
+ factory: ExternalSourceFactory,
646
+ untrack?: <V>(fn: () => V) => V
647
+ ): void;
561
648
  export declare function readSignal(this: SignalState<any> | Memo<any>): any;
562
- export declare function writeSignal(node: SignalState<any> | Memo<any>, value: any, isComp?: boolean): any;
649
+ export declare function writeSignal(
650
+ node: SignalState<any> | Memo<any>,
651
+ value: any,
652
+ isComp?: boolean
653
+ ): any;
563
654
  /**
564
655
  * @deprecated since version 1.7.0 and will be removed in next major - use catchError instead
565
656
  * onError - run an effect whenever an error is thrown within the context of the child scopes
@@ -5,9 +5,9 @@ import type { JSX } from "../jsx.js";
5
5
  * @description https://docs.solidjs.com/reference/components/suspense-list
6
6
  */
7
7
  export declare function SuspenseList(props: {
8
- children: JSX.Element;
9
- revealOrder: "forwards" | "backwards" | "together";
10
- tail?: "collapsed" | "hidden";
8
+ children: JSX.Element;
9
+ revealOrder: "forwards" | "backwards" | "together";
10
+ tail?: "collapsed" | "hidden";
11
11
  }): JSX.Element;
12
12
  /**
13
13
  * Tracks all resources inside a component and renders a fallback until they are all resolved
@@ -21,6 +21,6 @@ export declare function SuspenseList(props: {
21
21
  * @description https://docs.solidjs.com/reference/components/suspense
22
22
  */
23
23
  export declare function Suspense(props: {
24
- fallback?: JSX.Element;
25
- children: JSX.Element;
24
+ fallback?: JSX.Element;
25
+ children: JSX.Element;
26
26
  }): JSX.Element;