-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathindex.js
More file actions
59 lines (39 loc) · 1.33 KB
/
index.js
File metadata and controls
59 lines (39 loc) · 1.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// Copyright (c) 2012, Mark Cavage. All rights reserved.
var assert = require('assert-plus');
var bunyan = require('bunyan');
var Pool = require('./pool');
///--- Globals
var LOG = bunyan.createLogger({
name: 'pooling',
stream: process.stderr,
level: 'warn',
serializers: {
err: bunyan.stdSerializers.err
}
});
///--- Internal Functions
function defaultAssert() {
return (true);
}
function defaultCheck(cb) {
cb(new Error('idle timeout reached'));
}
///--- Exports
module.exports = {
createPool: function createPool(options) {
assert.object(options, 'options');
var pool = new Pool({
assert: options.assert || defaultAssert,
check: options.check || defaultCheck,
checkInterval: options.checkInterval || 30000, // 30s
create: options.create,
destroy: options.destroy,
events: options.events,
log: options.log || LOG,
max: Math.max(options.max, 1),
maxIdleTime: options.maxIdleTime || 3600000, // 1hr
name: options.name || 'pooling'
});
return (pool);
}
};