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.
		
		
		
		
		
			
		
			
				
					46 lines
				
				1.1 KiB
			
		
		
			
		
	
	
					46 lines
				
				1.1 KiB
			| 
											3 years ago
										 | 'use strict'; | ||
|  | const parseServerType = require('../core/sdam/server_description').parseServerType; | ||
|  | 
 | ||
|  | const RESPONSE_FIELDS = [ | ||
|  |   'minWireVersion', | ||
|  |   'maxWireVersion', | ||
|  |   'maxBsonObjectSize', | ||
|  |   'maxMessageSizeBytes', | ||
|  |   'maxWriteBatchSize', | ||
|  |   '__nodejs_mock_server__' | ||
|  | ]; | ||
|  | 
 | ||
|  | class StreamDescription { | ||
|  |   constructor(address, options) { | ||
|  |     this.address = address; | ||
|  |     this.type = parseServerType(null); | ||
|  |     this.minWireVersion = undefined; | ||
|  |     this.maxWireVersion = undefined; | ||
|  |     this.maxBsonObjectSize = 16777216; | ||
|  |     this.maxMessageSizeBytes = 48000000; | ||
|  |     this.maxWriteBatchSize = 100000; | ||
|  |     this.compressors = | ||
|  |       options && options.compression && Array.isArray(options.compression.compressors) | ||
|  |         ? options.compression.compressors | ||
|  |         : []; | ||
|  |   } | ||
|  | 
 | ||
|  |   receiveResponse(response) { | ||
|  |     this.type = parseServerType(response); | ||
|  | 
 | ||
|  |     RESPONSE_FIELDS.forEach(field => { | ||
|  |       if (typeof response[field] !== 'undefined') { | ||
|  |         this[field] = response[field]; | ||
|  |       } | ||
|  |     }); | ||
|  | 
 | ||
|  |     if (response.compression) { | ||
|  |       this.compressor = this.compressors.filter(c => response.compression.indexOf(c) !== -1)[0]; | ||
|  |     } | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = { | ||
|  |   StreamDescription | ||
|  | }; |