Skip to content

Commit e3a35e9

Browse files
NatalieWolfecharmanderbrianc
committed
Use class-extends to wrap Pool (#1541)
* Use class-extends to wrap Pool * Minimize diff * Test `BoundPool` inheritance Co-authored-by: Charmander <[email protected]> Co-authored-by: Brian C <[email protected]>
1 parent 8494cb4 commit e3a35e9

File tree

2 files changed

+30
-12
lines changed

2 files changed

+30
-12
lines changed

Diff for: packages/pg/lib/index.js

+5-12
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,18 @@
77
* README.md file in the root directory of this source tree.
88
*/
99

10-
var util = require('util')
1110
var Client = require('./client')
1211
var defaults = require('./defaults')
1312
var Connection = require('./connection')
1413
var Pool = require('pg-pool')
15-
const checkConstructor = require('./compat/check-constructor')
1614

1715
const poolFactory = (Client) => {
18-
var BoundPool = function (options) {
19-
// eslint-disable-next-line no-eval
20-
checkConstructor('pg.Pool', 'PG-POOL-NEW', () => eval('new.target'))
21-
22-
var config = Object.assign({ Client: Client }, options)
23-
return new Pool(config)
16+
return class BoundPool extends Pool {
17+
constructor (options) {
18+
var config = Object.assign({ Client: Client }, options)
19+
super(config)
20+
}
2421
}
25-
26-
util.inherits(BoundPool, Pool)
27-
28-
return BoundPool
2922
}
3023

3124
var PG = function (clientConstructor) {

Diff for: packages/pg/test/integration/gh-issues/1542-tests.js

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
"use strict"
3+
const helper = require('./../test-helper')
4+
const assert = require('assert')
5+
6+
const suite = new helper.Suite()
7+
8+
suite.testAsync('BoundPool can be subclassed', async () => {
9+
const Pool = helper.pg.Pool;
10+
class SubPool extends Pool {
11+
12+
}
13+
const subPool = new SubPool()
14+
const client = await subPool.connect()
15+
client.release()
16+
await subPool.end()
17+
assert(subPool instanceof helper.pg.Pool)
18+
})
19+
20+
suite.test('calling pg.Pool without new throws', () => {
21+
const Pool = helper.pg.Pool;
22+
assert.throws(() => {
23+
const pool = Pool()
24+
})
25+
})

0 commit comments

Comments
 (0)