1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- "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://docs.mongodb.com/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 wtimeout - specify a time limit to prevent write operations from blocking indefinitely
- * @param j - request acknowledgment that the write operation has been written to the on-disk journal
- * @param fsync - equivalent to the j option
- */
- constructor(w, wtimeout, j, fsync) {
- if (w != null) {
- if (!Number.isNaN(Number(w))) {
- this.w = Number(w);
- }
- else {
- this.w = w;
- }
- }
- if (wtimeout != null) {
- this.wtimeout = wtimeout;
- }
- if (j != null) {
- this.j = j;
- }
- if (fsync != null) {
- this.fsync = fsync;
- }
- }
- /** Construct a WriteConcern given an options object. */
- static fromOptions(options, inherit) {
- if (options == null)
- return undefined;
- inherit = inherit !== null && inherit !== void 0 ? 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 !== null && wtimeout !== void 0 ? wtimeout : wtimeoutMS, j !== null && j !== void 0 ? j : journal, fsync);
- }
- return undefined;
- }
- }
- exports.WriteConcern = WriteConcern;
- //# sourceMappingURL=write_concern.js.map
|