Server IP : 162.213.251.212 / Your IP : 3.129.15.56 [ Web Server : LiteSpeed System : Linux business55.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : allssztx ( 535) PHP Version : 8.1.31 Disable Function : NONE Domains : 1 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/allssztx/needapair.com/node_modules/mongoose/lib/helpers/ |
Upload File : |
'use strict'; const clone = require('./clone'); const MongooseError = require('../error/index'); function processConnectionOptions(uri, options) { const opts = options ? options : {}; const readPreference = opts.readPreference ? opts.readPreference : getUriReadPreference(uri); const clonedOpts = clone(opts); const resolvedOpts = (readPreference && readPreference !== 'primary' && readPreference !== 'primaryPreferred') ? resolveOptsConflicts(readPreference, clonedOpts) : clonedOpts; return resolvedOpts; } function resolveOptsConflicts(pref, opts) { // don't silently override user-provided indexing options if (setsIndexOptions(opts) && setsSecondaryRead(pref)) { throwReadPreferenceError(); } // if user has not explicitly set any auto-indexing options, // we can silently default them all to false else { return defaultIndexOptsToFalse(opts); } } function setsIndexOptions(opts) { const configIdx = opts.config && opts.config.autoIndex; const { autoCreate, autoIndex } = opts; return !!(configIdx || autoCreate || autoIndex); } function setsSecondaryRead(prefString) { return !!(prefString === 'secondary' || prefString === 'secondaryPreferred'); } function getUriReadPreference(connectionString) { const exp = /(?:&|\?)readPreference=(\w+)(?:&|$)/; const match = exp.exec(connectionString); return match ? match[1] : null; } function defaultIndexOptsToFalse(opts) { opts.config = { autoIndex: false }; opts.autoCreate = false; opts.autoIndex = false; return opts; } function throwReadPreferenceError() { throw new MongooseError( 'MongoDB prohibits index creation on connections that read from ' + 'non-primary replicas. Connections that set "readPreference" to "secondary" or ' + '"secondaryPreferred" may not opt-in to the following connection options: ' + 'autoCreate, autoIndex' ); } module.exports = processConnectionOptions;