From ef11dae8cef82c512631a9098599529d947fd3ae Mon Sep 17 00:00:00 2001 From: Elliott Johnson Date: Mon, 20 Oct 2025 21:07:03 -0600 Subject: [PATCH] typegen --- packages/svelte/types/index.d.ts | 63 +++++++++++++++----------------- 1 file changed, 29 insertions(+), 34 deletions(-) diff --git a/packages/svelte/types/index.d.ts b/packages/svelte/types/index.d.ts index 2c8912d440..e8e3d02c3a 100644 --- a/packages/svelte/types/index.d.ts +++ b/packages/svelte/types/index.d.ts @@ -490,7 +490,7 @@ declare module 'svelte' { export function getAllContexts = Map>(): T; export function hydratable(key: string, fn: () => T, { transport }?: { - transport?: Transport; + transport?: Transport; } | undefined): Promise; /** * Mounts a component to the given target and returns the exports and potentially the props (if compiled with `accessors: true`) of the component. @@ -565,9 +565,9 @@ declare module 'svelte' { [K in keyof T]: () => T[K]; }; - type Transport = { - stringify: (value: unknown) => string; - parse: (value: string) => unknown; + type Transport = { + stringify: (value: T) => string; + parse: (value: string) => T; }; export {}; @@ -2411,42 +2411,37 @@ declare module 'svelte/reactivity' { * @since 5.7.0 */ export function createSubscriber(start: (update: () => void) => (() => void) | void): () => void; - export class Resource implements Partial> { - - constructor(fn: () => Promise); - get then(): (onfulfilled?: ((value: T) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise; - get catch(): (reject: any) => Promise; - get finally(): (fn: any) => Promise; - get current(): T | undefined; - get error(): undefined; - /** - * Returns true if the resource is loading or reloading. - */ - get loading(): boolean; - /** - * Returns true once the resource has been loaded for the first time. - */ - get ready(): boolean; - - refresh: () => Promise; - - set: (value: T) => void; - #private; - } - export function defineResource(name: string, fn: (...args: TArgs) => TReturn, options?: { - Resource?: TResource; - transport?: Transport; - } | undefined): (...args: TArgs) => Resource; + export function resource(fn: () => Promise): Resource; + export function cache(name: string, fn: (arg: TArg, key: string) => TReturn, { hash }?: { + hash?: (arg: TArg) => string; + } | undefined): (arg: TArg) => TReturn; + + export function getCache(): ReadonlyMap; class ReactiveValue { constructor(fn: () => T, onsubscribe: (update: () => void) => void); get current(): T; #private; } - type Transport = { - stringify: (value: unknown) => string; - parse: (value: string) => unknown; - }; + type Resource = { + then: Promise['then']; + catch: Promise['catch']; + finally: Promise['finally']; + refresh: () => Promise; + set: (value: T) => void; + loading: boolean; + } & ( + | { + ready: false; + value: undefined; + error: undefined; + } + | { + ready: true; + value: T; + error: any; + } + ); export {}; }