UNPKG

@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.

39 lines 3.09 kB
import { SmartDataDbDoc } from './classes.doc.js'; import * as plugins from './plugins.js'; /** * a wrapper for the native mongodb cursor. Exposes better */ export class SmartdataDbCursor { constructor(cursorArg, dbDocArg) { this.mongodbCursor = cursorArg; this.smartdataDbDoc = dbDocArg; } async next(closeAtEnd = true) { const result = this.smartdataDbDoc.createInstanceFromMongoDbNativeDoc(await this.mongodbCursor.next()); if (!result && closeAtEnd) { await this.close(); } return result; } async forEach(forEachFuncArg, closeCursorAtEnd = true) { let nextDocument; do { nextDocument = await this.mongodbCursor.next(); if (nextDocument) { const nextClassInstance = this.smartdataDbDoc.createInstanceFromMongoDbNativeDoc(nextDocument); await forEachFuncArg(nextClassInstance); } } while (nextDocument); if (closeCursorAtEnd) { await this.close(); } } async toArray() { const result = await this.mongodbCursor.toArray(); return result.map((itemArg) => this.smartdataDbDoc.createInstanceFromMongoDbNativeDoc(itemArg)); } async close() { await this.mongodbCursor.close(); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jdXJzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9jbGFzc2VzLmN1cnNvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFFeEM7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBTTVCLFlBQVksU0FBd0MsRUFBRSxRQUErQjtRQUNuRixJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztRQUMvQixJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSTtRQUNqQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGtDQUFrQyxDQUNuRSxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQ2hDLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPLE1BQVcsQ0FBQztJQUNyQixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUE0QyxFQUFFLGdCQUFnQixHQUFHLElBQUk7UUFDeEYsSUFBSSxZQUFpQixDQUFDO1FBQ3RCLEdBQUcsQ0FBQztZQUNGLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDL0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxpQkFBaUIsR0FDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQ0FBa0MsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDdkUsTUFBTSxjQUFjLENBQUMsaUJBQXdCLENBQUMsQ0FBQztZQUNqRCxDQUFDO1FBQ0gsQ0FBQyxRQUFRLFlBQVksRUFBRTtRQUN2QixJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNsQixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEQsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGtDQUFrQyxDQUFDLE9BQU8sQ0FBQyxDQUFRLENBQUM7SUFDekcsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0NBQ0YifQ==