solid-js 1.9.6 → 1.9.7

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