rx-synchronizer
Version:
Commonly-used synchronizer bases that can be composed into more specific purposes.
20 lines (19 loc) • 622 B
TypeScript
import { Ignore, Never, Try } from 'javascriptutilities';
import { NextObserver, Observable } from 'rxjs';
export declare type Depn<T> = Readonly<{
objectStream: Observable<Try<T>>;
stopStream: Observable<Ignore>;
errorReceiver: NextObserver<Never<Error>>;
validateObject: (object: Never<T>) => void;
}>;
/**
* Synchronizer that performs validation on trigger.
*/
export declare type Type = Readonly<{
synchronize: <T>(dependency: Depn<T>) => void;
}>;
export declare class Impl implements Type {
private readonly subscription;
constructor();
synchronize<T>(dependency: Depn<T>): void;
}