| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.GetMoreOperation = void 0;const error_1 = require("../error");const utils_1 = require("../utils");const operation_1 = require("./operation");/** @internal */class GetMoreOperation extends operation_1.AbstractOperation {    constructor(ns, cursorId, server, options) {        super(options);        this.options = options;        this.ns = ns;        this.cursorId = cursorId;        this.server = server;    }    /**     * Although there is a server already associated with the get more operation, the signature     * for execute passes a server so we will just use that one.     */    async execute(server, _session) {        if (server !== this.server) {            throw new error_1.MongoRuntimeError('Getmore must run on the same server operation began on');        }        if (this.cursorId == null || this.cursorId.isZero()) {            throw new error_1.MongoRuntimeError('Unable to iterate cursor with no id');        }        const collection = this.ns.collection;        if (collection == null) {            // Cursors should have adopted the namespace returned by MongoDB            // which should always defined a collection name (even a pseudo one, ex. db.aggregate())            throw new error_1.MongoRuntimeError('A collection name must be determined before getMore');        }        const getMoreCmd = {            getMore: this.cursorId,            collection        };        if (typeof this.options.batchSize === 'number') {            getMoreCmd.batchSize = Math.abs(this.options.batchSize);        }        if (typeof this.options.maxAwaitTimeMS === 'number') {            getMoreCmd.maxTimeMS = this.options.maxAwaitTimeMS;        }        // we check for undefined specifically here to allow falsy values        // eslint-disable-next-line no-restricted-syntax        if (this.options.comment !== undefined && (0, utils_1.maxWireVersion)(server) >= 9) {            getMoreCmd.comment = this.options.comment;        }        const commandOptions = {            returnFieldSelector: null,            documentsReturnedIn: 'nextBatch',            ...this.options        };        return server.commandAsync(this.ns, getMoreCmd, commandOptions);    }}exports.GetMoreOperation = GetMoreOperation;(0, operation_1.defineAspects)(GetMoreOperation, [operation_1.Aspect.READ_OPERATION, operation_1.Aspect.MUST_SELECT_SAME_SERVER]);//# sourceMappingURL=get_more.js.map
 |