You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.3 KiB
61 lines
1.3 KiB
'use strict';
|
|
|
|
/**
|
|
* The **ReadConcern** class is a class that represents a MongoDB ReadConcern.
|
|
* @class
|
|
* @property {string} level The read concern level
|
|
* @see https://docs.mongodb.com/manual/reference/read-concern/index.html
|
|
*/
|
|
class ReadConcern {
|
|
/**
|
|
* Constructs a ReadConcern from the read concern properties.
|
|
* @param {string} [level] The read concern level ({'local'|'available'|'majority'|'linearizable'|'snapshot'})
|
|
*/
|
|
constructor(level) {
|
|
if (level != null) {
|
|
this.level = level;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Construct a ReadConcern given an options object.
|
|
*
|
|
* @param {object} options The options object from which to extract the write concern.
|
|
* @return {ReadConcern}
|
|
*/
|
|
static fromOptions(options) {
|
|
if (options == null) {
|
|
return;
|
|
}
|
|
|
|
if (options.readConcern) {
|
|
if (options.readConcern instanceof ReadConcern) {
|
|
return options.readConcern;
|
|
}
|
|
|
|
return new ReadConcern(options.readConcern.level);
|
|
}
|
|
|
|
if (options.level) {
|
|
return new ReadConcern(options.level);
|
|
}
|
|
}
|
|
|
|
static get MAJORITY() {
|
|
return 'majority';
|
|
}
|
|
|
|
static get AVAILABLE() {
|
|
return 'available';
|
|
}
|
|
|
|
static get LINEARIZABLE() {
|
|
return 'linearizable';
|
|
}
|
|
|
|
static get SNAPSHOT() {
|
|
return 'snapshot';
|
|
}
|
|
}
|
|
|
|
module.exports = ReadConcern;
|
|
|