@reix/rxjs-bits
Version:
Rxjs integration for the @reix/bits package.
33 lines (30 loc) • 837 B
TypeScript
import { BitFieldEmitter } from '@reix/bits';
import { Subject } from 'rxjs';
/**
* Interface for data required to emit events.
*/
interface EmitHandlerArguments<T> {
value: T;
code?: number;
maxBitHint?: number;
}
/**
* Interface for the data emitted by the on$ Subject.
*/
interface OnHanlerArguments<T> {
value: T;
code: number;
}
/**
* Generates an $on & an $emit Subject and a dispose function
* from a BitFIeldEmitter instance.
*
* @param emitter The emitter to generate subjects from.
* @param code The event code to generate subjects for.
*/
declare const toSubjects: <T>(emitter: BitFieldEmitter<T>, code: number) => {
on$: Subject<OnHanlerArguments<T>>;
emit$: Subject<EmitHandlerArguments<T>>;
dispose: () => void;
};
export { EmitHandlerArguments, OnHanlerArguments, toSubjects };