UNPKG

solid-js

Version:

A declarative JavaScript library for building user interfaces.

43 lines (42 loc) 1.21 kB
import { Accessor, Setter } from "./signal.js"; declare global { interface SymbolConstructor { readonly observable: symbol; } } interface Observable<T> { subscribe(observer: ObservableObserver<T>): { unsubscribe(): void; }; [Symbol.observable](): Observable<T>; } export type ObservableObserver<T> = | ((v: T) => void) | { next?: (v: T) => void; error?: (v: any) => void; complete?: (v: boolean) => void; }; /** * Creates a simple observable from a signal's accessor to be used with the `from` operator of observable libraries like e.g. rxjs * ```typescript * import { from } from "rxjs"; * const [s, set] = createSignal(0); * const obsv$ = from(observable(s)); * obsv$.subscribe((v) => console.log(v)); * ``` * description https://docs.solidjs.com/reference/reactive-utilities/observable */ export declare function observable<T>(input: Accessor<T>): Observable<T>; export declare function from<T>( producer: | ((setter: Setter<T | undefined>) => () => void) | { subscribe: (fn: (v: T) => void) => | (() => void) | { unsubscribe: () => void; }; } ): Accessor<T | undefined>; export {};