diff --git a/packages/svelte/scripts/generate-types.js b/packages/svelte/scripts/generate-types.js index 0ee6004d4a2c..e304d94ac9f3 100644 --- a/packages/svelte/scripts/generate-types.js +++ b/packages/svelte/scripts/generate-types.js @@ -42,7 +42,7 @@ await createBundle({ [`${pkg.name}/easing`]: `${dir}/src/easing/index.js`, [`${pkg.name}/legacy`]: `${dir}/src/legacy/legacy-client.js`, [`${pkg.name}/motion`]: `${dir}/src/motion/public.d.ts`, - [`${pkg.name}/reactivity`]: `${dir}/src/reactivity/index-client.js`, + [`${pkg.name}/reactivity`]: `${dir}/src/reactivity/public.d.ts`, [`${pkg.name}/reactivity/window`]: `${dir}/src/reactivity/window/index.js`, [`${pkg.name}/server`]: `${dir}/src/server/index.d.ts`, [`${pkg.name}/store`]: `${dir}/src/store/public.d.ts`, diff --git a/packages/svelte/src/reactivity/index-client.js b/packages/svelte/src/reactivity/index-client.js index 8b2abd9076ba..e33e9f18174b 100644 --- a/packages/svelte/src/reactivity/index-client.js +++ b/packages/svelte/src/reactivity/index-client.js @@ -1,4 +1,3 @@ -/** @import { Resource as ResourceType } from '#shared' */ export { SvelteDate } from './date.js'; export { SvelteSet } from './set.js'; export { SvelteMap } from './map.js'; @@ -9,8 +8,3 @@ export { createSubscriber } from './create-subscriber.js'; export { resource } from '../internal/client/reactivity/resource.js'; export { cache, CacheObserver } from '../internal/client/reactivity/cache.js'; export { fetcher } from '../internal/client/reactivity/fetcher.js'; - -/** - * @template T - * @typedef {ResourceType} Resource - */ diff --git a/packages/svelte/src/reactivity/public.d.ts b/packages/svelte/src/reactivity/public.d.ts new file mode 100644 index 000000000000..e25bb5c91019 --- /dev/null +++ b/packages/svelte/src/reactivity/public.d.ts @@ -0,0 +1,2 @@ +export { Resource } from '../internal/shared/types'; +export * from './index-client'; diff --git a/packages/svelte/types/index.d.ts b/packages/svelte/types/index.d.ts index 2a1498378bbb..be91465c30f3 100644 --- a/packages/svelte/types/index.d.ts +++ b/packages/svelte/types/index.d.ts @@ -2195,7 +2195,28 @@ declare module 'svelte/motion' { } declare module 'svelte/reactivity' { - export type Resource = Resource_1; + export type Resource = { + then: Promise>['then']; + catch: Promise>['catch']; + finally: Promise>['finally']; + refresh: () => Promise; + set: (value: Awaited) => void; + loading: boolean; + error: any; + } & ( + | { + ready: false; + current: undefined; + } + | { + ready: true; + current: Awaited; + } + ); + + type GetRequestInit = Omit & { method?: 'GET' }; + + type CacheEntry = { count: number; item: any }; /** * A reactive version of the built-in [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) object. * Reading the date (whether with methods like `date.getTime()` or `date.toString()`, or via things like [`Intl.DateTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat)) @@ -2459,30 +2480,8 @@ declare module 'svelte/reactivity' { * @since 5.7.0 */ export function createSubscriber(start: (update: () => void) => (() => void) | void): () => void; - export function resource(fn: () => T): Resource_1; - export function fetcher(url: string | URL, init?: GetRequestInit | undefined): Resource_1; - type Resource_1 = { - then: Promise>['then']; - catch: Promise>['catch']; - finally: Promise>['finally']; - refresh: () => Promise; - set: (value: Awaited) => void; - loading: boolean; - error: any; - } & ( - | { - ready: false; - current: undefined; - } - | { - ready: true; - current: Awaited; - } - ); - - type GetRequestInit = Omit & { method?: 'GET' }; - - type CacheEntry = { count: number; item: any }; + export function resource(fn: () => T): Resource; + export function fetcher(url: string | URL, init?: GetRequestInit | undefined): Resource; export function cache any>(key: string, fn: TFn): ReturnType; export class CacheObserver extends BaseCacheObserver {