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.
		
		
		
		
		
			
		
			
				
					48 lines
				
				777 B
			
		
		
			
		
	
	
					48 lines
				
				777 B
			| 
								 
											3 years ago
										 
									 | 
							
								/*!
							 | 
						||
| 
								 | 
							
								 * Module dependencies.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const mongodb = require('mongodb');
							 | 
						||
| 
								 | 
							
								const ReadPref = mongodb.ReadPreference;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*!
							 | 
						||
| 
								 | 
							
								 * Converts arguments to ReadPrefs the driver
							 | 
						||
| 
								 | 
							
								 * can understand.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @param {String|Array} pref
							 | 
						||
| 
								 | 
							
								 * @param {Array} [tags]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = function readPref(pref, tags) {
							 | 
						||
| 
								 | 
							
								  if (Array.isArray(pref)) {
							 | 
						||
| 
								 | 
							
								    tags = pref[1];
							 | 
						||
| 
								 | 
							
								    pref = pref[0];
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (pref instanceof ReadPref) {
							 | 
						||
| 
								 | 
							
								    return pref;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  switch (pref) {
							 | 
						||
| 
								 | 
							
								    case 'p':
							 | 
						||
| 
								 | 
							
								      pref = 'primary';
							 | 
						||
| 
								 | 
							
								      break;
							 | 
						||
| 
								 | 
							
								    case 'pp':
							 | 
						||
| 
								 | 
							
								      pref = 'primaryPreferred';
							 | 
						||
| 
								 | 
							
								      break;
							 | 
						||
| 
								 | 
							
								    case 's':
							 | 
						||
| 
								 | 
							
								      pref = 'secondary';
							 | 
						||
| 
								 | 
							
								      break;
							 | 
						||
| 
								 | 
							
								    case 'sp':
							 | 
						||
| 
								 | 
							
								      pref = 'secondaryPreferred';
							 | 
						||
| 
								 | 
							
								      break;
							 | 
						||
| 
								 | 
							
								    case 'n':
							 | 
						||
| 
								 | 
							
								      pref = 'nearest';
							 | 
						||
| 
								 | 
							
								      break;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return new ReadPref(pref, tags);
							 | 
						||
| 
								 | 
							
								};
							 |