UNPKG

@humanspeak/svelte-subscribe

Version:

Subscribe to non top-level stores in your Svelte templates

14 lines (13 loc) 745 B
import { type Readable, type Writable } from 'svelte/store'; export type ReadOrWritable<T> = Readable<T> | Writable<T>; export type WritableKeys<T> = { [K in keyof T]: T[K] extends undefined ? Writable<T[K] | undefined> : Writable<T[K]>; }; export type ReadableKeys<T> = { [K in keyof T]: T[K] extends undefined ? Readable<T[K] | undefined> : Readable<T[K]>; }; export type ReadOrWritableKeys<T> = { [K in keyof T]: T[K] extends undefined ? ReadOrWritable<T[K] | undefined> : ReadOrWritable<T[K]>; }; export declare const derivedKeys: <S extends ReadOrWritableKeys<unknown>>(storeMap: S) => DerivedKeys<S>; export type DerivedKeys<S extends ReadOrWritableKeys<unknown>> = S extends ReadOrWritableKeys<infer T> ? Readable<T> : never;