UNPKG

acebase-ipc-server

Version:

IPC Server that provides communication between isolated AceBase processes using the same database files, such as local pm2 and cloud-based clusters.

47 lines (46 loc) 1.45 kB
export interface ISubscription { unsubscribe(): any; } export interface IObserver<T> { next(value: T): any; start?(subscription: ISubscription): void; error?(error: any): any; complete?(value: any): void; } declare type CleanupFunction = () => any; declare type CreateFunction<T> = (observer: IObserver<T>) => CleanupFunction; declare type SubscribeFunction<T> = (value: T) => any; export interface IObservableLike<T> { subscribe(subscriber: SubscribeFunction<T>): ISubscription; } /** * Very basic Observable implementation * @example * // Create an observable for messages received through a websocket * const messageObservable = new SimpleObservable(observer => { * const ws = new WebSocket('ws://myserver/connect'); * ws.addEventListener('message', event => { * observer.next(event.data); * }) * return function cleanup() { * ws.close(); * } * }); * * // Subscribe to received messages: * const subscription = messageObservable.subscribe(msg => { * console.log(`Received message:`, msg) * }); * * // Stop subscription: * subscription.unsubscribe(); */ export declare class SimpleObservable<T> implements IObservableLike<T> { private _active; private _create; private _cleanup?; private _subscribers; constructor(create: CreateFunction<T>); subscribe(subscriber: SubscribeFunction<T>): ISubscription; } export {};