UNPKG

resig.js

Version:

Universal reactive signal library with complete platform features: signals, animations, CRDTs, scheduling, DOM integration. Works identically across React, SolidJS, Svelte, Vue, and Qwik.

38 lines (37 loc) 1.16 kB
/** * Core Signal Category - Functor implementation * Following category-theoretic laws for structure preservation */ export interface Signal<A> { readonly value: () => A; readonly map: <B>(f: (a: A) => B) => Signal<B>; readonly subscribe: (fn: (a: A) => void) => () => void; } export interface MutableSignal<A> extends Signal<A> { _set: (value: A) => void; } /** * Creates a basic signal with functor laws * Laws verified: * - map(id) ≡ id (identity) * - map(f ∘ g) ≡ map(f) ∘ map(g) (composition) */ export declare const signal: <A>(initial: A) => MutableSignal<A> & { _set: (value: A) => void; }; /** * Identity function for functor law verification */ export declare const id: <A>(a: A) => A; /** * Function composition for functor law verification */ export declare const compose: <A, B, C>(f: (b: B) => C, g: (a: A) => B) => (a: A) => C; /** * Pure function - lifts a value into Signal context */ export declare const pure: <A>(value: A) => Signal<A>; /** * Computed signal - creates a derived signal from a computation function */ export declare const computed: <A>(compute: () => A) => MutableSignal<A>;