edges-svelte
Version:
A blazing-fast, extremely lightweight and SSR-friendly store for Svelte
20 lines (19 loc) • 1.47 kB
TypeScript
import { createDerivedState as BaseCreateDerivedState } from '../store/index.js';
import type { Writable } from 'svelte/store';
type NoConflict<I, D> = {
[K in keyof I]: K extends keyof D ? never : I[K];
};
export declare const clearCache: (pattern?: string) => void;
export declare const createUiProvider: <T, F, D extends Record<string, unknown> | ((cacheKey: string) => Record<string, unknown>), I extends Record<string, unknown> = Record<string, unknown>>(name: string, factory: (deps: F) => T, dependencies: D, inject?: I) => (() => T);
type StoreDeps = {
createRawState: <T>(initial: T | (() => T)) => {
value: T;
};
createState: <T>(initial: T | (() => T)) => Writable<T>;
createDerivedState: typeof BaseCreateDerivedState;
};
export declare const createStore: <T, I extends Record<string, unknown> = Record<string, unknown>>(name: string, factory: (args: StoreDeps & NoConflict<I, StoreDeps>) => T, inject?: I) => (() => T);
export declare const createStoreFactory: <I extends Record<string, unknown>>(inject: I) => <T>(name: string, factory: (args: StoreDeps & NoConflict<I, StoreDeps>) => T) => () => T;
export declare const createPresenter: <T, I extends Record<string, unknown> = Record<string, unknown>>(name: string, factory: (args: I) => T, inject?: I) => (() => T);
export declare const createPresenterFactory: <I extends Record<string, unknown>>(inject: I) => <T>(name: string, factory: (args: I) => T) => () => T;
export {};