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.

35 lines 2.62 kB
import { SmartDataDbDoc } from './smartdata.classes.doc.js'; import * as plugins from './smartdata.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 close() { await this.mongodbCursor.close(); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRkYXRhLmNsYXNzZXMuY3Vyc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRkYXRhLmNsYXNzZXMuY3Vyc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEtBQUssT0FBTyxNQUFNLHdCQUF3QixDQUFDO0FBRWxEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQU01QixZQUFZLFNBQXdDLEVBQUUsUUFBK0I7UUFDbkYsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUk7UUFDakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQ0FBa0MsQ0FDbkUsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUNoQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sSUFBSSxVQUFVLEVBQUU7WUFDekIsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDcEI7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUE0QyxFQUFFLGdCQUFnQixHQUFHLElBQUk7UUFDeEYsSUFBSSxZQUFpQixDQUFDO1FBQ3RCLEdBQUc7WUFDRCxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQy9DLElBQUksWUFBWSxFQUFFO2dCQUNoQixNQUFNLGlCQUFpQixHQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLGtDQUFrQyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUN2RSxNQUFNLGNBQWMsQ0FBQyxpQkFBd0IsQ0FBQyxDQUFDO2FBQ2hEO1NBQ0YsUUFBUSxZQUFZLEVBQUU7UUFDdkIsSUFBSSxnQkFBZ0IsRUFBRTtZQUNwQixNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSztRQUNoQixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbkMsQ0FBQztDQUNGIn0=