@westacks/vortex
Version:
Server-based routing for SPAs
22 lines (21 loc) • 764 B
TypeScript
export type Signal<T> = [SignalGetter<T>, SignalSetter<T>];
export type SignalGetter<T> = () => T;
export type SignalSetter<T> = (value: T | ((value: T) => T), force?: boolean) => void;
export type Effect = () => EffectDestructor | Promise<EffectDestructor>;
type EffectDestructor = void | (() => void);
/**
* Create a new signal
*
* @param value Initial signal value
* @param equals Compare function
* @returns Signal
*/
export declare function signal<T>(value?: T | undefined, equals?: (a: T, b: T) => boolean): Signal<T>;
/**
* Create an effect. Effect callback will be executed each time the dependant signals changes
*
* @param fn Effect callback
* @returns Destructor function
*/
export declare function effect(fn: Effect): () => void;
export {};