DiscofyAPI/node_modules/mariadb/lib/config/pool-options.js

48 lines
2.2 KiB
JavaScript
Raw Permalink Normal View History

2021-03-25 17:23:36 +01:00
'use strict';
let ConnOptions = require('./connection-options');
class PoolOptions {
constructor(opts) {
if (typeof opts === 'string') {
opts = ConnOptions.parse(opts);
//set data type
if (opts.acquireTimeout) opts.acquireTimeout = parseInt(opts.acquireTimeout);
if (opts.connectionLimit) opts.connectionLimit = parseInt(opts.connectionLimit);
if (opts.idleTimeout) opts.idleTimeout = parseInt(opts.idleTimeout);
if (opts.leakDetectionTimeout)
opts.leakDetectionTimeout = parseInt(opts.leakDetectionTimeout);
if (opts.initializationTimeout)
opts.initializationTimeout = parseInt(opts.initializationTimeout);
if (opts.minDelayValidation) opts.minDelayValidation = parseInt(opts.minDelayValidation);
if (opts.minimumIdle) opts.minimumIdle = parseInt(opts.minimumIdle);
if (opts.noControlAfterUse) opts.noControlAfterUse = opts.noControlAfterUse == 'true';
if (opts.resetAfterUse) opts.resetAfterUse = opts.resetAfterUse == 'true';
if (opts.pingTimeout) opts.pingTimeout = parseInt(opts.pingTimeout);
}
this.acquireTimeout = opts.acquireTimeout === undefined ? 10000 : opts.acquireTimeout;
this.connectionLimit = opts.connectionLimit === undefined ? 10 : opts.connectionLimit;
this.idleTimeout = opts.idleTimeout || 1800;
this.leakDetectionTimeout = opts.leakDetectionTimeout || 0;
this.initializationTimeout =
opts.initializationTimeout === undefined ? 30000 : opts.initializationTimeout;
this.minDelayValidation = opts.minDelayValidation === undefined ? 500 : opts.minDelayValidation;
this.minimumIdle =
opts.minimumIdle === undefined
? this.connectionLimit
: Math.min(opts.minimumIdle, this.connectionLimit);
this.noControlAfterUse = opts.noControlAfterUse || false;
this.resetAfterUse = opts.resetAfterUse === undefined ? true : opts.resetAfterUse;
this.pingTimeout = opts.pingTimeout || 250;
this.connOptions = new ConnOptions(opts);
if (this.acquireTimeout > 0 && this.connOptions.connectTimeout > this.acquireTimeout) {
this.connOptions.connectTimeout = this.acquireTimeout;
}
}
}
module.exports = PoolOptions;