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.
		
		
		
		
		
			
		
			
				
					62 lines
				
				1.3 KiB
			
		
		
			
		
	
	
					62 lines
				
				1.3 KiB
			| 
											3 years ago
										 | '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; |