solid-js
Version:
A declarative JavaScript library for building user interfaces.
33 lines (32 loc) • 1.09 kB
TypeScript
import { Accessor, Setter } from "./signal.js";
declare global {
interface SymbolConstructor {
readonly observable: symbol;
}
}
export declare 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://www.solidjs.com/docs/latest/api#observable
*/
export declare function observable<T>(input: Accessor<T>): {
subscribe(observer: ObservableObserver<T>): {
unsubscribe(): void;
};
[Symbol.observable](): any;
};
export declare function from<T>(producer: ((setter: Setter<T | undefined>) => () => void) | {
subscribe: (fn: (v: T) => void) => (() => void) | {
unsubscribe: () => void;
};
}): Accessor<T | undefined>;