| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.WriteConcern = exports.WRITE_CONCERN_KEYS = void 0;exports.WRITE_CONCERN_KEYS = ['w', 'wtimeout', 'j', 'journal', 'fsync'];/** * A MongoDB WriteConcern, which describes the level of acknowledgement * requested from MongoDB for write operations. * @public * * @see https://www.mongodb.com/docs/manual/reference/write-concern/ */class WriteConcern {    /**     * Constructs a WriteConcern from the write concern properties.     * @param w - request acknowledgment that the write operation has propagated to a specified number of mongod instances or to mongod instances with specified tags.     * @param wtimeoutMS - specify a time limit to prevent write operations from blocking indefinitely     * @param journal - request acknowledgment that the write operation has been written to the on-disk journal     * @param fsync - equivalent to the j option. Is deprecated and will be removed in the next major version.     */    constructor(w, wtimeoutMS, journal, fsync) {        if (w != null) {            if (!Number.isNaN(Number(w))) {                this.w = Number(w);            }            else {                this.w = w;            }        }        if (wtimeoutMS != null) {            this.wtimeoutMS = this.wtimeout = wtimeoutMS;        }        if (journal != null) {            this.journal = this.j = journal;        }        if (fsync != null) {            this.journal = this.j = fsync ? true : false;        }    }    /**     * Apply a write concern to a command document. Will modify and return the command.     */    static apply(command, writeConcern) {        const wc = {};        // The write concern document sent to the server has w/wtimeout/j fields.        if (writeConcern.w != null)            wc.w = writeConcern.w;        if (writeConcern.wtimeoutMS != null)            wc.wtimeout = writeConcern.wtimeoutMS;        if (writeConcern.journal != null)            wc.j = writeConcern.j;        command.writeConcern = wc;        return command;    }    /** Construct a WriteConcern given an options object. */    static fromOptions(options, inherit) {        if (options == null)            return undefined;        inherit = inherit ?? {};        let opts;        if (typeof options === 'string' || typeof options === 'number') {            opts = { w: options };        }        else if (options instanceof WriteConcern) {            opts = options;        }        else {            opts = options.writeConcern;        }        const parentOpts = inherit instanceof WriteConcern ? inherit : inherit.writeConcern;        const { w = undefined, wtimeout = undefined, j = undefined, fsync = undefined, journal = undefined, wtimeoutMS = undefined } = {            ...parentOpts,            ...opts        };        if (w != null ||            wtimeout != null ||            wtimeoutMS != null ||            j != null ||            journal != null ||            fsync != null) {            return new WriteConcern(w, wtimeout ?? wtimeoutMS, j ?? journal, fsync);        }        return undefined;    }}exports.WriteConcern = WriteConcern;//# sourceMappingURL=write_concern.js.map
 |