@push.rocks/smartdata
Version:
An advanced library for NoSQL data organization and manipulation using TypeScript with support for MongoDB, data validation, collections, and custom data types.
33 lines (32 loc) • 1.15 kB
TypeScript
import { SmartDataDbDoc } from './classes.doc.js';
import * as plugins from './plugins.js';
import { EventEmitter } from 'node:events';
/**
* a wrapper for the native mongodb cursor. Exposes better
*/
/**
* Wraps a MongoDB ChangeStream with RxJS and EventEmitter support.
*/
export declare class SmartdataDbWatcher<T = any> extends EventEmitter {
readyDeferred: plugins.smartpromise.Deferred<void>;
private changeStream;
private rawSubject;
/** Emits change documents (or arrays of documents if buffered) */
changeSubject: any;
/**
* @param changeStreamArg native MongoDB ChangeStream
* @param smartdataDbDocArg document class for instance creation
* @param opts.bufferTimeMs optional milliseconds to buffer events via RxJS
*/
constructor(changeStreamArg: plugins.mongodb.ChangeStream<any>, smartdataDbDocArg: typeof SmartDataDbDoc, opts?: {
bufferTimeMs?: number;
});
/**
* Close the change stream, complete the RxJS subject, and remove listeners.
*/
close(): Promise<void>;
/**
* Alias for close(), matching README usage
*/
stop(): Promise<void>;
}