@drift-labs/common
Version:
Common functions for Drift
12 lines (11 loc) • 697 B
TypeScript
import { Subject, Observable } from 'rxjs';
/**
* Deduplicated subject, using UniqueCircularBuffer to dedupe the input subject.
*
* The windowSize defines the amount of unique elements to keep in memory for the sake of deduplicating. Any incoming duplicate objects will NOT be added to the buffer so won't take up space.
* @param inputSubject
* @param windowSize maximum size of recent unique objects which will be stored to use for deduplication
* @param uniquenessKeyGenerator function that generates a unique key for an object
* @returns
*/
export declare function dedupeSubject<T>(inputSubject: Subject<T>, windowSize: number, uniquenessKeyGenerator: (a: T) => string): Observable<T>;