observable-callback
Version:
A small utility for simplified creation of callback functions that publishes the argument to an observable stream when called.
18 lines (13 loc) • 595 B
text/typescript
import {Observable, OperatorFunction, Subject} from "rxjs"
const pass = (input$: Observable<any>) => input$
export function observableCallback(): [Observable<void>, () => void]
export function observableCallback<T>(): [Observable<T>, (arg: T) => void]
export function observableCallback<T, K>(
operator: OperatorFunction<T, K>
): [Observable<K>, (arg: T) => void]
export function observableCallback<T, K>(
operator: OperatorFunction<T, K> = pass
): [Observable<K>, (arg: T) => void] {
const subject = new Subject<T>()
return [subject.pipe(operator), (arg: T) => subject.next(arg)]
}