arnaucube
arnaucube/thoughtsPublic Self-hosted repository
thoughts/node_modules/mongoose/lib/drivers/node-mongodb-native/ReadPreference.js
node_modules/mongoose/lib/drivers/node-mongodb-native/ReadPreference.jsRaw
 1/*!
 2 * Module dependencies.
 3 */
 4
 5var mongodb = require('mongodb');
 6var ReadPref = mongodb.ReadPreference;
 7
 8/*!
 9 * Converts arguments to ReadPrefs the driver
10 * can understand.
11 *
12 * @param {String|Array} pref
13 * @param {Array} [tags]
14 */
15
16module.exports = function readPref(pref, tags) {
17  if (Array.isArray(pref)) {
18    tags = pref[1];
19    pref = pref[0];
20  }
21
22  if (pref instanceof ReadPref) {
23    return pref;
24  }
25
26  switch (pref) {
27    case 'p':
28      pref = 'primary';
29      break;
30    case 'pp':
31      pref = 'primaryPreferred';
32      break;
33    case 's':
34      pref = 'secondary';
35      break;
36    case 'sp':
37      pref = 'secondaryPreferred';
38      break;
39    case 'n':
40      pref = 'nearest';
41      break;
42  }
43
44  return new ReadPref(pref, tags);
45};