Replace all usages of var with let / const - eslint auto applied (#3444)

This commit is contained in:
Brian C 2025-04-27 11:50:33 -05:00 committed by GitHub
parent 7a009381e6
commit 9e7a5d97cf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
145 changed files with 1210 additions and 1211 deletions

View File

@ -16,7 +16,9 @@
"@typescript-eslint/no-unused-vars": ["error", {
"args": "none"
}],
"no-unused-vars": "off"
"no-unused-vars": "off",
"no-var": "error",
"prefer-const": "error"
},
"overrides": [
{

View File

@ -1,14 +1,14 @@
'use strict'
var chai = require('chai')
var expect = chai.expect
const chai = require('chai')
const expect = chai.expect
chai.should()
var parse = require('../').parse
const parse = require('../').parse
describe('parse', function () {
it('using connection string in client constructor', function () {
var subject = parse('postgres://brian:pw@boom:381/lala')
const subject = parse('postgres://brian:pw@boom:381/lala')
subject.user.should.equal('brian')
subject.password.should.equal('pw')
subject.host.should.equal('boom')
@ -17,42 +17,42 @@ describe('parse', function () {
})
it('escape spaces if present', function () {
var subject = parse('postgres://localhost/post gres')
const subject = parse('postgres://localhost/post gres')
subject.database.should.equal('post gres')
})
it('do not double escape spaces', function () {
var subject = parse('postgres://localhost/post%20gres')
const subject = parse('postgres://localhost/post%20gres')
subject.database.should.equal('post gres')
})
it('initializing with unix domain socket', function () {
var subject = parse('/var/run/')
const subject = parse('/var/run/')
subject.host.should.equal('/var/run/')
})
it('initializing with unix domain socket and a specific database, the simple way', function () {
var subject = parse('/var/run/ mydb')
const subject = parse('/var/run/ mydb')
subject.host.should.equal('/var/run/')
subject.database.should.equal('mydb')
})
it('initializing with unix domain socket, the health way', function () {
var subject = parse('socket:/some path/?db=my[db]&encoding=utf8')
const subject = parse('socket:/some path/?db=my[db]&encoding=utf8')
subject.host.should.equal('/some path/')
subject.database.should.equal('my[db]', 'must to be escaped and unescaped trough "my%5Bdb%5D"')
subject.client_encoding.should.equal('utf8')
})
it('initializing with unix domain socket, the escaped health way', function () {
var subject = parse('socket:/some%20path/?db=my%2Bdb&encoding=utf8')
const subject = parse('socket:/some%20path/?db=my%2Bdb&encoding=utf8')
subject.host.should.equal('/some path/')
subject.database.should.equal('my+db')
subject.client_encoding.should.equal('utf8')
})
it('initializing with unix domain socket, username and password', function () {
var subject = parse('socket://brian:pw@/var/run/?db=mydb')
const subject = parse('socket://brian:pw@/var/run/?db=mydb')
subject.user.should.equal('brian')
subject.password.should.equal('pw')
subject.host.should.equal('/var/run/')
@ -60,14 +60,14 @@ describe('parse', function () {
})
it('password contains < and/or > characters', function () {
var sourceConfig = {
const sourceConfig = {
user: 'brian',
password: 'hello<ther>e',
host: 'localhost',
port: 5432,
database: 'postgres',
}
var connectionString =
const connectionString =
'postgres://' +
sourceConfig.user +
':' +
@ -78,19 +78,19 @@ describe('parse', function () {
sourceConfig.port +
'/' +
sourceConfig.database
var subject = parse(connectionString)
const subject = parse(connectionString)
subject.password.should.equal(sourceConfig.password)
})
it('password contains colons', function () {
var sourceConfig = {
const sourceConfig = {
user: 'brian',
password: 'hello:pass:world',
host: 'localhost',
port: 5432,
database: 'postgres',
}
var connectionString =
const connectionString =
'postgres://' +
sourceConfig.user +
':' +
@ -101,21 +101,21 @@ describe('parse', function () {
sourceConfig.port +
'/' +
sourceConfig.database
var subject = parse(connectionString)
const subject = parse(connectionString)
subject.password.should.equal(sourceConfig.password)
})
it('username or password contains weird characters', function () {
var strang = 'pg://my f%irst name:is&%awesome!@localhost:9000'
var subject = parse(strang)
const strang = 'pg://my f%irst name:is&%awesome!@localhost:9000'
const subject = parse(strang)
subject.user.should.equal('my f%irst name')
subject.password.should.equal('is&%awesome!')
subject.host.should.equal('localhost')
})
it('url is properly encoded', function () {
var encoded = 'pg://bi%25na%25%25ry%20:s%40f%23@localhost/%20u%2520rl'
var subject = parse(encoded)
const encoded = 'pg://bi%25na%25%25ry%20:s%40f%23@localhost/%20u%2520rl'
const subject = parse(encoded)
subject.user.should.equal('bi%na%%ry ')
subject.password.should.equal('s@f#')
subject.host.should.equal('localhost')
@ -123,24 +123,24 @@ describe('parse', function () {
})
it('relative url sets database', function () {
var relative = 'different_db_on_default_host'
var subject = parse(relative)
const relative = 'different_db_on_default_host'
const subject = parse(relative)
subject.database.should.equal('different_db_on_default_host')
})
it('no pathname returns null database', function () {
var subject = parse('pg://myhost')
const subject = parse('pg://myhost')
;(subject.database === null).should.equal(true)
})
it('pathname of "/" returns null database', function () {
var subject = parse('pg://myhost/')
const subject = parse('pg://myhost/')
subject.host.should.equal('myhost')
;(subject.database === null).should.equal(true)
})
it('configuration parameter host', function () {
var subject = parse('pg://user:pass@/dbname?host=/unix/socket')
const subject = parse('pg://user:pass@/dbname?host=/unix/socket')
subject.user.should.equal('user')
subject.password.should.equal('pass')
subject.host.should.equal('/unix/socket')
@ -148,13 +148,13 @@ describe('parse', function () {
})
it('configuration parameter host overrides url host', function () {
var subject = parse('pg://user:pass@localhost/dbname?host=/unix/socket')
const subject = parse('pg://user:pass@localhost/dbname?host=/unix/socket')
subject.database.should.equal('dbname')
subject.host.should.equal('/unix/socket')
})
it('url with encoded socket', function () {
var subject = parse('pg://user:pass@%2Funix%2Fsocket/dbname')
const subject = parse('pg://user:pass@%2Funix%2Fsocket/dbname')
subject.user.should.equal('user')
subject.password.should.equal('pass')
subject.host.should.equal('/unix/socket')
@ -162,7 +162,7 @@ describe('parse', function () {
})
it('url with real host and an encoded db name', function () {
var subject = parse('pg://user:pass@localhost/%2Fdbname')
const subject = parse('pg://user:pass@localhost/%2Fdbname')
subject.user.should.equal('user')
subject.password.should.equal('pass')
subject.host.should.equal('localhost')
@ -170,7 +170,7 @@ describe('parse', function () {
})
it('configuration parameter host treats encoded host as part of the db name', function () {
var subject = parse('pg://user:pass@%2Funix%2Fsocket/dbname?host=localhost')
const subject = parse('pg://user:pass@%2Funix%2Fsocket/dbname?host=localhost')
subject.user.should.equal('user')
subject.password.should.equal('pass')
subject.host.should.equal('localhost')
@ -178,258 +178,258 @@ describe('parse', function () {
})
it('configuration parameter application_name', function () {
var connectionString = 'pg:///?application_name=TheApp'
var subject = parse(connectionString)
const connectionString = 'pg:///?application_name=TheApp'
const subject = parse(connectionString)
subject.application_name.should.equal('TheApp')
})
it('configuration parameter fallback_application_name', function () {
var connectionString = 'pg:///?fallback_application_name=TheAppFallback'
var subject = parse(connectionString)
const connectionString = 'pg:///?fallback_application_name=TheAppFallback'
const subject = parse(connectionString)
subject.fallback_application_name.should.equal('TheAppFallback')
})
it('configuration parameter options', function () {
var connectionString = 'pg:///?options=-c geqo=off'
var subject = parse(connectionString)
const connectionString = 'pg:///?options=-c geqo=off'
const subject = parse(connectionString)
subject.options.should.equal('-c geqo=off')
})
it('configuration parameter ssl=true', function () {
var connectionString = 'pg:///?ssl=true'
var subject = parse(connectionString)
const connectionString = 'pg:///?ssl=true'
const subject = parse(connectionString)
subject.ssl.should.equal(true)
})
it('configuration parameter ssl=1', function () {
var connectionString = 'pg:///?ssl=1'
var subject = parse(connectionString)
const connectionString = 'pg:///?ssl=1'
const subject = parse(connectionString)
subject.ssl.should.equal(true)
})
it('configuration parameter ssl=0', function () {
var connectionString = 'pg:///?ssl=0'
var subject = parse(connectionString)
const connectionString = 'pg:///?ssl=0'
const subject = parse(connectionString)
subject.ssl.should.equal(false)
})
it('set ssl', function () {
var subject = parse('pg://myhost/db?ssl=1')
const subject = parse('pg://myhost/db?ssl=1')
subject.ssl.should.equal(true)
})
it('configuration parameter sslcert=/path/to/cert', function () {
var connectionString = 'pg:///?sslcert=' + __dirname + '/example.cert'
var subject = parse(connectionString)
const connectionString = 'pg:///?sslcert=' + __dirname + '/example.cert'
const subject = parse(connectionString)
subject.ssl.should.eql({
cert: 'example cert\n',
})
})
it('configuration parameter sslkey=/path/to/key', function () {
var connectionString = 'pg:///?sslkey=' + __dirname + '/example.key'
var subject = parse(connectionString)
const connectionString = 'pg:///?sslkey=' + __dirname + '/example.key'
const subject = parse(connectionString)
subject.ssl.should.eql({
key: 'example key\n',
})
})
it('configuration parameter sslrootcert=/path/to/ca', function () {
var connectionString = 'pg:///?sslrootcert=' + __dirname + '/example.ca'
var subject = parse(connectionString)
const connectionString = 'pg:///?sslrootcert=' + __dirname + '/example.ca'
const subject = parse(connectionString)
subject.ssl.should.eql({
ca: 'example ca\n',
})
})
it('configuration parameter sslmode=no-verify', function () {
var connectionString = 'pg:///?sslmode=no-verify'
var subject = parse(connectionString)
const connectionString = 'pg:///?sslmode=no-verify'
const subject = parse(connectionString)
subject.ssl.should.eql({
rejectUnauthorized: false,
})
})
it('configuration parameter sslmode=disable', function () {
var connectionString = 'pg:///?sslmode=disable'
var subject = parse(connectionString)
const connectionString = 'pg:///?sslmode=disable'
const subject = parse(connectionString)
subject.ssl.should.eql(false)
})
it('configuration parameter sslmode=prefer', function () {
var connectionString = 'pg:///?sslmode=prefer'
var subject = parse(connectionString)
const connectionString = 'pg:///?sslmode=prefer'
const subject = parse(connectionString)
subject.ssl.should.eql({})
})
it('configuration parameter sslmode=require', function () {
var connectionString = 'pg:///?sslmode=require'
var subject = parse(connectionString)
const connectionString = 'pg:///?sslmode=require'
const subject = parse(connectionString)
subject.ssl.should.eql({})
})
it('configuration parameter sslmode=verify-ca', function () {
var connectionString = 'pg:///?sslmode=verify-ca'
var subject = parse(connectionString)
const connectionString = 'pg:///?sslmode=verify-ca'
const subject = parse(connectionString)
subject.ssl.should.eql({})
})
it('configuration parameter sslmode=verify-full', function () {
var connectionString = 'pg:///?sslmode=verify-full'
var subject = parse(connectionString)
const connectionString = 'pg:///?sslmode=verify-full'
const subject = parse(connectionString)
subject.ssl.should.eql({})
})
it('configuration parameter ssl=true and sslmode=require still work with sslrootcert=/path/to/ca', function () {
var connectionString = 'pg:///?ssl=true&sslrootcert=' + __dirname + '/example.ca&sslmode=require'
var subject = parse(connectionString)
const connectionString = 'pg:///?ssl=true&sslrootcert=' + __dirname + '/example.ca&sslmode=require'
const subject = parse(connectionString)
subject.ssl.should.eql({
ca: 'example ca\n',
})
})
it('configuration parameter sslmode=disable with uselibpqcompat query param', function () {
var connectionString = 'pg:///?sslmode=disable&uselibpqcompat=true'
var subject = parse(connectionString)
const connectionString = 'pg:///?sslmode=disable&uselibpqcompat=true'
const subject = parse(connectionString)
subject.ssl.should.eql(false)
})
it('configuration parameter sslmode=prefer with uselibpqcompat query param', function () {
var connectionString = 'pg:///?sslmode=prefer&uselibpqcompat=true'
var subject = parse(connectionString)
const connectionString = 'pg:///?sslmode=prefer&uselibpqcompat=true'
const subject = parse(connectionString)
subject.ssl.should.eql({
rejectUnauthorized: false,
})
})
it('configuration parameter sslmode=require with uselibpqcompat query param', function () {
var connectionString = 'pg:///?sslmode=require&uselibpqcompat=true'
var subject = parse(connectionString)
const connectionString = 'pg:///?sslmode=require&uselibpqcompat=true'
const subject = parse(connectionString)
subject.ssl.should.eql({
rejectUnauthorized: false,
})
})
it('configuration parameter sslmode=verify-ca with uselibpqcompat query param', function () {
var connectionString = 'pg:///?sslmode=verify-ca&uselibpqcompat=true'
const connectionString = 'pg:///?sslmode=verify-ca&uselibpqcompat=true'
expect(function () {
parse(connectionString)
}).to.throw()
})
it('configuration parameter sslmode=verify-ca and sslrootcert with uselibpqcompat query param', function () {
var connectionString = 'pg:///?sslmode=verify-ca&uselibpqcompat=true&sslrootcert=' + __dirname + '/example.ca'
var subject = parse(connectionString)
const connectionString = 'pg:///?sslmode=verify-ca&uselibpqcompat=true&sslrootcert=' + __dirname + '/example.ca'
const subject = parse(connectionString)
subject.ssl.should.have.property('checkServerIdentity').that.is.a('function')
expect(subject.ssl.checkServerIdentity()).be.undefined
})
it('configuration parameter sslmode=verify-full with uselibpqcompat query param', function () {
var connectionString = 'pg:///?sslmode=verify-full&uselibpqcompat=true'
var subject = parse(connectionString)
const connectionString = 'pg:///?sslmode=verify-full&uselibpqcompat=true'
const subject = parse(connectionString)
subject.ssl.should.eql({})
})
it('configuration parameter ssl=true and sslmode=require still work with sslrootcert=/path/to/ca with uselibpqcompat query param', function () {
var connectionString =
const connectionString =
'pg:///?ssl=true&sslrootcert=' + __dirname + '/example.ca&sslmode=require&uselibpqcompat=true'
var subject = parse(connectionString)
const subject = parse(connectionString)
subject.ssl.should.have.property('ca', 'example ca\n')
subject.ssl.should.have.property('checkServerIdentity').that.is.a('function')
expect(subject.ssl.checkServerIdentity()).be.undefined
})
it('configuration parameter sslmode=disable with useLibpqCompat option', function () {
var connectionString = 'pg:///?sslmode=disable'
var subject = parse(connectionString, { useLibpqCompat: true })
const connectionString = 'pg:///?sslmode=disable'
const subject = parse(connectionString, { useLibpqCompat: true })
subject.ssl.should.eql(false)
})
it('configuration parameter sslmode=prefer with useLibpqCompat option', function () {
var connectionString = 'pg:///?sslmode=prefer'
var subject = parse(connectionString, { useLibpqCompat: true })
const connectionString = 'pg:///?sslmode=prefer'
const subject = parse(connectionString, { useLibpqCompat: true })
subject.ssl.should.eql({
rejectUnauthorized: false,
})
})
it('configuration parameter sslmode=require with useLibpqCompat option', function () {
var connectionString = 'pg:///?sslmode=require'
var subject = parse(connectionString, { useLibpqCompat: true })
const connectionString = 'pg:///?sslmode=require'
const subject = parse(connectionString, { useLibpqCompat: true })
subject.ssl.should.eql({
rejectUnauthorized: false,
})
})
it('configuration parameter sslmode=verify-ca with useLibpqCompat option', function () {
var connectionString = 'pg:///?sslmode=verify-ca'
const connectionString = 'pg:///?sslmode=verify-ca'
expect(function () {
parse(connectionString, { useLibpqCompat: true })
}).to.throw()
})
it('configuration parameter sslmode=verify-ca and sslrootcert with useLibpqCompat option', function () {
var connectionString = 'pg:///?sslmode=verify-ca&sslrootcert=' + __dirname + '/example.ca'
var subject = parse(connectionString, { useLibpqCompat: true })
const connectionString = 'pg:///?sslmode=verify-ca&sslrootcert=' + __dirname + '/example.ca'
const subject = parse(connectionString, { useLibpqCompat: true })
subject.ssl.should.have.property('checkServerIdentity').that.is.a('function')
expect(subject.ssl.checkServerIdentity()).be.undefined
})
it('configuration parameter sslmode=verify-full with useLibpqCompat option', function () {
var connectionString = 'pg:///?sslmode=verify-full'
var subject = parse(connectionString, { useLibpqCompat: true })
const connectionString = 'pg:///?sslmode=verify-full'
const subject = parse(connectionString, { useLibpqCompat: true })
subject.ssl.should.eql({})
})
it('configuration parameter ssl=true and sslmode=require still work with sslrootcert=/path/to/ca with useLibpqCompat option', function () {
var connectionString = 'pg:///?ssl=true&sslrootcert=' + __dirname + '/example.ca&sslmode=require'
var subject = parse(connectionString, { useLibpqCompat: true })
const connectionString = 'pg:///?ssl=true&sslrootcert=' + __dirname + '/example.ca&sslmode=require'
const subject = parse(connectionString, { useLibpqCompat: true })
subject.ssl.should.have.property('ca', 'example ca\n')
subject.ssl.should.have.property('checkServerIdentity').that.is.a('function')
expect(subject.ssl.checkServerIdentity()).be.undefined
})
it('does not allow sslcompat query parameter and useLibpqCompat option at the same time', function () {
var connectionString = 'pg:///?uselibpqcompat=true'
const connectionString = 'pg:///?uselibpqcompat=true'
expect(function () {
parse(connectionString, { useLibpqCompat: true })
}).to.throw()
})
it('allow other params like max, ...', function () {
var subject = parse('pg://myhost/db?max=18&min=4')
const subject = parse('pg://myhost/db?max=18&min=4')
subject.max.should.equal('18')
subject.min.should.equal('4')
})
it('configuration parameter keepalives', function () {
var connectionString = 'pg:///?keepalives=1'
var subject = parse(connectionString)
const connectionString = 'pg:///?keepalives=1'
const subject = parse(connectionString)
subject.keepalives.should.equal('1')
})
it('unknown configuration parameter is passed into client', function () {
var connectionString = 'pg:///?ThereIsNoSuchPostgresParameter=1234'
var subject = parse(connectionString)
const connectionString = 'pg:///?ThereIsNoSuchPostgresParameter=1234'
const subject = parse(connectionString)
subject.ThereIsNoSuchPostgresParameter.should.equal('1234')
})
it('do not override a config field with value from query string', function () {
var subject = parse('socket:/some path/?db=my[db]&encoding=utf8&client_encoding=bogus')
const subject = parse('socket:/some path/?db=my[db]&encoding=utf8&client_encoding=bogus')
subject.host.should.equal('/some path/')
subject.database.should.equal('my[db]', 'must to be escaped and unescaped through "my%5Bdb%5D"')
subject.client_encoding.should.equal('utf8')
})
it('return last value of repeated parameter', function () {
var connectionString = 'pg:///?keepalives=1&keepalives=0'
var subject = parse(connectionString)
const connectionString = 'pg:///?keepalives=1&keepalives=0'
const subject = parse(connectionString)
subject.keepalives.should.equal('0')
})
it('use the port specified in the query parameters', function () {
var connectionString = 'postgres:///?host=localhost&port=1234'
var subject = parse(connectionString)
const connectionString = 'postgres:///?host=localhost&port=1234'
const subject = parse(connectionString)
subject.port.should.equal('1234')
})
})

View File

@ -1,10 +1,10 @@
var pg = require('pg').native
var Native = require('../')
const pg = require('pg').native
const Native = require('../')
var warmup = function (fn, cb) {
var count = 0
var max = 10
var run = function (err) {
const warmup = function (fn, cb) {
let count = 0
const max = 10
const run = function (err) {
if (err) return cb(err)
if (max >= count++) {
@ -16,26 +16,26 @@ var warmup = function (fn, cb) {
run()
}
var native = Native()
const native = Native()
native.connectSync()
var queryText = 'SELECT generate_series(0, 1000) as X, generate_series(0, 1000) as Y, generate_series(0, 1000) as Z'
var client = new pg.Client()
const queryText = 'SELECT generate_series(0, 1000) as X, generate_series(0, 1000) as Y, generate_series(0, 1000) as Z'
const client = new pg.Client()
client.connect(function () {
var pure = function (cb) {
const pure = function (cb) {
client.query(queryText, function (err) {
if (err) throw err
cb(err)
})
}
var nativeQuery = function (cb) {
const nativeQuery = function (cb) {
native.query(queryText, function (err) {
if (err) throw err
cb(err)
})
}
var run = function () {
const run = function () {
console.time('pure')
warmup(pure, function () {
console.timeEnd('pure')

View File

@ -1,29 +1,29 @@
var Client = require('../')
var async = require('async')
const Client = require('../')
const async = require('async')
var loop = function () {
var client = new Client()
const loop = function () {
const client = new Client()
var connect = function (cb) {
const connect = function (cb) {
client.connect(cb)
}
var simpleQuery = function (cb) {
const simpleQuery = function (cb) {
client.query('SELECT NOW()', cb)
}
var paramsQuery = function (cb) {
const paramsQuery = function (cb) {
client.query('SELECT $1::text as name', ['Brian'], cb)
}
var prepared = function (cb) {
const prepared = function (cb) {
client.prepare('test', 'SELECT $1::text as name', 1, function (err) {
if (err) return cb(err)
client.execute('test', ['Brian'], cb)
})
}
var sync = function (cb) {
const sync = function (cb) {
client.querySync('SELECT NOW()')
client.querySync('SELECT $1::text as name', ['Brian'])
client.prepareSync('boom', 'SELECT $1::text as name', 1)
@ -31,13 +31,13 @@ var loop = function () {
setImmediate(cb)
}
var end = function (cb) {
const end = function (cb) {
client.end(cb)
}
var ops = [connect, simpleQuery, paramsQuery, prepared, sync, end]
const ops = [connect, simpleQuery, paramsQuery, prepared, sync, end]
var start = Date.now()
const start = Date.now()
async.series(ops, function (err) {
if (err) throw err
console.log(Date.now() - start)

View File

@ -1,12 +1,12 @@
var Libpq = require('libpq')
var EventEmitter = require('events').EventEmitter
var util = require('util')
var assert = require('assert')
var types = require('pg-types')
var buildResult = require('./lib/build-result')
var CopyStream = require('./lib/copy-stream')
const Libpq = require('libpq')
const EventEmitter = require('events').EventEmitter
const util = require('util')
const assert = require('assert')
const types = require('pg-types')
const buildResult = require('./lib/build-result')
const CopyStream = require('./lib/copy-stream')
var Client = (module.exports = function (config) {
const Client = (module.exports = function (config) {
if (!(this instanceof Client)) {
return new Client(config)
}
@ -51,34 +51,31 @@ Client.prototype.connectSync = function (params) {
}
Client.prototype.query = function (text, values, cb) {
var queryFn
let queryFn
if (typeof values === 'function') {
cb = values
}
if (Array.isArray(values)) {
queryFn = function () {
return self.pq.sendQueryParams(text, values)
queryFn = () => {
return this.pq.sendQueryParams(text, values)
}
} else {
queryFn = function () {
return self.pq.sendQuery(text)
queryFn = () => {
return this.pq.sendQuery(text)
}
}
var self = this
self._dispatchQuery(self.pq, queryFn, function (err) {
this._dispatchQuery(this.pq, queryFn, (err) => {
if (err) return cb(err)
self._awaitResult(cb)
this._awaitResult(cb)
})
}
Client.prototype.prepare = function (statementName, text, nParams, cb) {
var self = this
var fn = function () {
const self = this
const fn = function () {
return self.pq.sendPrepare(statementName, text, nParams)
}
@ -89,9 +86,9 @@ Client.prototype.prepare = function (statementName, text, nParams, cb) {
}
Client.prototype.execute = function (statementName, parameters, cb) {
var self = this
const self = this
var fn = function () {
const fn = function () {
return self.pq.sendQueryPrepared(statementName, parameters)
}
@ -111,7 +108,7 @@ Client.prototype.getCopyStream = function () {
Client.prototype.cancel = function (cb) {
assert(cb, 'Callback is required')
// result is either true or a string containing an error
var result = this.pq.cancel()
const result = this.pq.cancel()
return setImmediate(function () {
cb(result === true ? undefined : new Error(result))
})
@ -158,7 +155,7 @@ Client.prototype.end = function (cb) {
}
Client.prototype._readError = function (message) {
var err = new Error(message || this.pq.errorMessage())
const err = new Error(message || this.pq.errorMessage())
this.emit('error', err)
}
@ -174,7 +171,7 @@ Client.prototype._consumeQueryResults = function (pq) {
}
Client.prototype._emitResult = function (pq) {
var status = pq.resultStatus()
const status = pq.resultStatus()
switch (status) {
case 'PGRES_FATAL_ERROR':
this._queryError = new Error(this.pq.resultErrorMessage())
@ -203,7 +200,7 @@ Client.prototype._emitResult = function (pq) {
// called when libpq is readable
Client.prototype._read = function () {
var pq = this.pq
const pq = this.pq
// read waiting data from the socket
// e.g. clear the pending 'select'
if (!pq.consumeInput()) {
@ -238,7 +235,7 @@ Client.prototype._read = function () {
this.emit('readyForQuery')
var notice = this.pq.notifies()
let notice = this.pq.notifies()
while (notice) {
this.emit('notification', notice)
notice = this.pq.notifies()
@ -254,8 +251,8 @@ Client.prototype._startReading = function () {
this.pq.startReader()
}
var throwIfError = function (pq) {
var err = pq.resultErrorMessage() || pq.errorMessage()
const throwIfError = function (pq) {
const err = pq.resultErrorMessage() || pq.errorMessage()
if (err) {
throw new Error(err)
}
@ -268,7 +265,7 @@ Client.prototype._awaitResult = function (cb) {
// wait for the writable socket to drain
Client.prototype._waitForDrain = function (pq, cb) {
var res = pq.flush()
const res = pq.flush()
// res of 0 is success
if (res === 0) return cb()
@ -277,7 +274,7 @@ Client.prototype._waitForDrain = function (pq, cb) {
// otherwise outgoing message didn't flush to socket
// wait for it to flush and try again
var self = this
const self = this
// you cannot read & write on a socket at the same time
return pq.writable(function () {
self._waitForDrain(pq, cb)
@ -288,9 +285,9 @@ Client.prototype._waitForDrain = function (pq, cb) {
// finish writing query text to the socket
Client.prototype._dispatchQuery = function (pq, fn, cb) {
this._stopReading()
var success = pq.setNonBlocking(true)
const success = pq.setNonBlocking(true)
if (!success) return cb(new Error('Unable to set non-blocking to true'))
var sent = fn()
const sent = fn()
if (!sent) return cb(new Error(pq.errorMessage() || 'Something went wrong dispatching the query'))
this._waitForDrain(pq, cb)
}

View File

@ -20,9 +20,9 @@ class Result {
consumeFields(pq) {
const nfields = pq.nfields()
this.fields = new Array(nfields)
var row = {}
for (var x = 0; x < nfields; x++) {
var name = pq.fname(x)
const row = {}
for (let x = 0; x < nfields; x++) {
const name = pq.fname(x)
row[name] = null
this.fields[x] = {
name: name,
@ -35,14 +35,14 @@ class Result {
consumeRows(pq) {
const tupleCount = pq.ntuples()
this.rows = new Array(tupleCount)
for (var i = 0; i < tupleCount; i++) {
for (let i = 0; i < tupleCount; i++) {
this.rows[i] = this._arrayMode ? this.consumeRowAsArray(pq, i) : this.consumeRowAsObject(pq, i)
}
}
consumeRowAsObject(pq, rowIndex) {
const row = { ...this._prebuiltEmptyResultObject }
for (var j = 0; j < this.fields.length; j++) {
for (let j = 0; j < this.fields.length; j++) {
row[this.fields[j].name] = this.readValue(pq, rowIndex, j)
}
return row
@ -50,14 +50,14 @@ class Result {
consumeRowAsArray(pq, rowIndex) {
const row = new Array(this.fields.length)
for (var j = 0; j < this.fields.length; j++) {
for (let j = 0; j < this.fields.length; j++) {
row[j] = this.readValue(pq, rowIndex, j)
}
return row
}
readValue(pq, rowIndex, colIndex) {
var rawValue = pq.getvalue(rowIndex, colIndex)
const rawValue = pq.getvalue(rowIndex, colIndex)
if (rawValue === '' && pq.getisnull(rowIndex, colIndex)) {
return null
}

View File

@ -1,8 +1,8 @@
var Duplex = require('stream').Duplex
var Writable = require('stream').Writable
var util = require('util')
const Duplex = require('stream').Duplex
const Writable = require('stream').Writable
const util = require('util')
var CopyStream = (module.exports = function (pq, options) {
const CopyStream = (module.exports = function (pq, options) {
Duplex.call(this, options)
this.pq = pq
this._reading = false
@ -12,7 +12,7 @@ util.inherits(CopyStream, Duplex)
// writer methods
CopyStream.prototype._write = function (chunk, encoding, cb) {
var result = this.pq.putCopyData(chunk)
const result = this.pq.putCopyData(chunk)
// sent successfully
if (result === 1) return cb()
@ -21,22 +21,22 @@ CopyStream.prototype._write = function (chunk, encoding, cb) {
if (result === -1) return cb(new Error(this.pq.errorMessage()))
// command would block. wait for writable and call again.
var self = this
const self = this
this.pq.writable(function () {
self._write(chunk, encoding, cb)
})
}
CopyStream.prototype.end = function () {
var args = Array.prototype.slice.call(arguments, 0)
var self = this
const args = Array.prototype.slice.call(arguments, 0)
const self = this
var callback = args.pop()
const callback = args.pop()
if (args.length) {
this.write(args[0])
}
var result = this.pq.putCopyEnd()
const result = this.pq.putCopyEnd()
// sent successfully
if (result === 1) {
@ -55,7 +55,7 @@ CopyStream.prototype.end = function () {
// error
if (result === -1) {
var err = new Error(this.pq.errorMessage())
const err = new Error(this.pq.errorMessage())
return this.emit('error', err)
}
@ -70,7 +70,7 @@ CopyStream.prototype.end = function () {
// reader methods
CopyStream.prototype._consumeBuffer = function (cb) {
var result = this.pq.getCopyData(true)
const result = this.pq.getCopyData(true)
if (result instanceof Buffer) {
return setImmediate(function () {
cb(null, result)
@ -81,7 +81,7 @@ CopyStream.prototype._consumeBuffer = function (cb) {
return cb(null, null)
}
if (result === 0) {
var self = this
const self = this
this.pq.once('readable', function () {
self.pq.stopReader()
self.pq.consumeInput()
@ -96,7 +96,7 @@ CopyStream.prototype._read = function (size) {
if (this._reading) return
this._reading = true
// console.log('read begin');
var self = this
const self = this
this._consumeBuffer(function (err, buffer) {
self._reading = false
if (err) {
@ -110,18 +110,18 @@ CopyStream.prototype._read = function (size) {
})
}
var consumeResults = function (pq, cb) {
var cleanup = function () {
const consumeResults = function (pq, cb) {
const cleanup = function () {
pq.removeListener('readable', onReadable)
pq.stopReader()
}
var readError = function (message) {
const readError = function (message) {
cleanup()
return cb(new Error(message || pq.errorMessage()))
}
var onReadable = function () {
const onReadable = function () {
// read waiting data from the socket
// e.g. clear the pending 'select'
if (!pq.consumeInput()) {

View File

@ -1,16 +1,16 @@
var Client = require('../')
var assert = require('assert')
const Client = require('../')
const assert = require('assert')
describe('client with arrayMode', function () {
it('returns result as array', function (done) {
var client = new Client({ arrayMode: true })
const client = new Client({ arrayMode: true })
client.connectSync()
client.querySync('CREATE TEMP TABLE blah(name TEXT)')
client.querySync('INSERT INTO blah (name) VALUES ($1)', ['brian'])
client.querySync('INSERT INTO blah (name) VALUES ($1)', ['aaron'])
var rows = client.querySync('SELECT * FROM blah')
const rows = client.querySync('SELECT * FROM blah')
assert.equal(rows.length, 2)
var row = rows[0]
const row = rows[0]
assert.equal(row.length, 1)
assert.equal(row[0], 'brian')
assert.equal(rows[1][0], 'aaron')

View File

@ -1,7 +1,7 @@
var Client = require('../')
var ok = require('okay')
var assert = require('assert')
var concat = require('concat-stream')
const Client = require('../')
const ok = require('okay')
const assert = require('assert')
const concat = require('concat-stream')
describe('async workflow', function () {
before(function (done) {
@ -9,7 +9,7 @@ describe('async workflow', function () {
this.client.connect(done)
})
var echoParams = function (params, cb) {
const echoParams = function (params, cb) {
this.client.query(
'SELECT $1::text as first, $2::text as second',
params,
@ -20,20 +20,20 @@ describe('async workflow', function () {
)
}
var checkParams = function (params, rows) {
const checkParams = function (params, rows) {
assert.equal(rows.length, 1)
assert.equal(rows[0].first, params[0])
assert.equal(rows[0].second, params[1])
}
it('sends async query', function (done) {
var params = ['one', 'two']
const params = ['one', 'two']
echoParams.call(this, params, done)
})
it('sends multiple async queries', function (done) {
var self = this
var params = ['bang', 'boom']
const self = this
const params = ['bang', 'boom']
echoParams.call(
this,
params,
@ -44,13 +44,13 @@ describe('async workflow', function () {
})
it('sends an async query, copies in, copies out, and sends another query', function (done) {
var self = this
const self = this
this.client.querySync('CREATE TEMP TABLE test(name text, age int)')
this.client.query(
"INSERT INTO test(name, age) VALUES('brian', 32)",
ok(done, function () {
self.client.querySync('COPY test FROM stdin')
var input = self.client.getCopyStream()
const input = self.client.getCopyStream()
input.write(Buffer.from('Aaron\t30\n', 'utf8'))
input.end(function () {
self.client.query(
@ -60,7 +60,7 @@ describe('async workflow', function () {
self.client.query(
'COPY test TO stdout',
ok(done, function () {
var output = self.client.getCopyStream()
const output = self.client.getCopyStream()
// pump the stream
output.read()

View File

@ -1,9 +1,9 @@
var Client = require('../')
var assert = require('assert')
const Client = require('../')
const assert = require('assert')
describe('cancel query', function () {
it('works', function (done) {
var client = new Client()
const client = new Client()
client.connectSync()
client.query('SELECT pg_sleep(1000);', function (err) {
assert(err instanceof Error)
@ -17,7 +17,7 @@ describe('cancel query', function () {
})
it('does not raise error if no active query', function (done) {
var client = new Client()
const client = new Client()
client.connectSync()
client.cancel(function (err) {
assert.ifError(err)

View File

@ -1,11 +1,11 @@
'use strict'
var Client = require('../')
var assert = require('assert')
const Client = require('../')
const assert = require('assert')
describe('connection errors', function () {
it('raise error events', function (done) {
var client = new Client()
const client = new Client()
client.connectSync()
client.query('SELECT pg_terminate_backend(pg_backend_pid())', assert.fail)
client.on('error', function (err) {

View File

@ -1,9 +1,9 @@
var Client = require('../')
var assert = require('assert')
const Client = require('../')
const assert = require('assert')
describe('connection error', function () {
it('doesnt segfault', function (done) {
var client = new Client()
const client = new Client()
client.connect('asldgsdgasgdasdg', function (err) {
assert(err)
// calling error on a closed client was segfaulting
@ -15,7 +15,7 @@ describe('connection error', function () {
describe('reading while not connected', function () {
it('does not seg fault but does throw execption', function () {
var client = new Client()
const client = new Client()
assert.throws(function () {
client.on('notification', function (msg) {})
})

View File

@ -1,5 +1,5 @@
var assert = require('assert')
var Client = require('../')
const assert = require('assert')
const Client = require('../')
describe('COPY FROM', function () {
before(function (done) {
@ -12,17 +12,17 @@ describe('COPY FROM', function () {
})
it('works', function (done) {
var client = this.client
const client = this.client
this.client.querySync('CREATE TEMP TABLE blah(name text, age int)')
this.client.querySync('COPY blah FROM stdin')
var stream = this.client.getCopyStream()
const stream = this.client.getCopyStream()
stream.write(Buffer.from('Brian\t32\n', 'utf8'))
stream.write(Buffer.from('Aaron\t30\n', 'utf8'))
stream.write(Buffer.from('Shelley\t28\n', 'utf8'))
stream.end()
stream.once('finish', function () {
var rows = client.querySync('SELECT COUNT(*) FROM blah')
const rows = client.querySync('SELECT COUNT(*) FROM blah')
assert.equal(rows.length, 1)
assert.equal(rows[0].count, 3)
done()
@ -30,14 +30,14 @@ describe('COPY FROM', function () {
})
it('works with a callback passed to end', function (done) {
var client = this.client
const client = this.client
this.client.querySync('CREATE TEMP TABLE boom(name text, age int)')
this.client.querySync('COPY boom FROM stdin')
var stream = this.client.getCopyStream()
const stream = this.client.getCopyStream()
stream.write(Buffer.from('Brian\t32\n', 'utf8'))
stream.write(Buffer.from('Aaron\t30\n', 'utf8'), function () {
stream.end(Buffer.from('Shelley\t28\n', 'utf8'), function () {
var rows = client.querySync('SELECT COUNT(*) FROM boom')
const rows = client.querySync('SELECT COUNT(*) FROM boom')
assert.equal(rows.length, 1)
assert.equal(rows[0].count, 3)
done()

View File

@ -1,7 +1,7 @@
var assert = require('assert')
var Client = require('../')
var concat = require('concat-stream')
var _ = require('lodash')
const assert = require('assert')
const Client = require('../')
const concat = require('concat-stream')
const _ = require('lodash')
describe('COPY TO', function () {
before(function (done) {
@ -14,18 +14,18 @@ describe('COPY TO', function () {
})
it('works - basic check', function (done) {
var limit = 1000
var qText = 'COPY (SELECT * FROM generate_series(0, ' + (limit - 1) + ')) TO stdout'
var self = this
const limit = 1000
const qText = 'COPY (SELECT * FROM generate_series(0, ' + (limit - 1) + ')) TO stdout'
const self = this
this.client.query(qText, function (err) {
if (err) return done(err)
var stream = self.client.getCopyStream()
const stream = self.client.getCopyStream()
// pump the stream for node v0.11.x
stream.read()
stream.pipe(
concat(function (buff) {
var res = buff.toString('utf8')
var expected = _.range(0, limit).join('\n') + '\n'
const res = buff.toString('utf8')
const expected = _.range(0, limit).join('\n') + '\n'
assert.equal(res, expected)
done()
})

View File

@ -1,10 +1,10 @@
var Client = require('../')
var ok = require('okay')
var assert = require('assert')
const Client = require('../')
const ok = require('okay')
const assert = require('assert')
describe('Custom type parser', function () {
it('is used by client', function (done) {
var client = new Client({
const client = new Client({
types: {
getTypeParser: function () {
return function () {
@ -14,7 +14,7 @@ describe('Custom type parser', function () {
},
})
client.connectSync()
var rows = client.querySync('SELECT NOW() AS when')
const rows = client.querySync('SELECT NOW() AS when')
assert.equal(rows[0].when, 'blah')
client.query(
'SELECT NOW() as when',

View File

@ -1,7 +1,7 @@
var Client = require('../')
var assert = require('assert')
const Client = require('../')
const assert = require('assert')
var checkDomain = function (domain, when) {
const checkDomain = function (domain, when) {
assert(process.domain, 'Domain was lost after ' + when)
assert.strictEqual(process.domain, domain, 'Domain switched after ' + when)
}
@ -10,7 +10,7 @@ describe('domains', function () {
it('remains bound after a query', function (done) {
var domain = require('domain').create() // eslint-disable-line
domain.run(function () {
var client = new Client()
const client = new Client()
client.connect(function () {
checkDomain(domain, 'connection')
client.query('SELECT NOW()', function () {

View File

@ -1,5 +1,5 @@
var Client = require('../')
var assert = require('assert')
const Client = require('../')
const assert = require('assert')
describe('empty query', () => {
it('has field metadata in result', (done) => {

View File

@ -1,5 +1,5 @@
var Client = require('../')
var assert = require('assert')
const Client = require('../')
const assert = require('assert')
describe('huge async query', function () {
before(function (done) {
@ -12,12 +12,12 @@ describe('huge async query', function () {
})
it('works', function (done) {
var params = ['']
var len = 100000
for (var i = 0; i < len; i++) {
const params = ['']
const len = 100000
for (let i = 0; i < len; i++) {
params[0] += 'A'
}
var qText = "SELECT '" + params[0] + "'::text as my_text"
const qText = "SELECT '" + params[0] + "'::text as my_text"
this.client.query(qText, function (err, rows) {
if (err) return done(err)
assert.equal(rows[0].my_text.length, len)

View File

@ -1,5 +1,5 @@
var Client = require('../')
var assert = require('assert')
const Client = require('../')
const assert = require('assert')
describe('connection', function () {
it('works', function (done) {
@ -24,7 +24,7 @@ describe('connectSync', function () {
})
it('works with args', function () {
var args = 'host=' + (process.env.PGHOST || 'localhost')
const args = 'host=' + (process.env.PGHOST || 'localhost')
Client().connectSync(args)
})

View File

@ -1,11 +1,11 @@
var Client = require('../')
var async = require('async')
var ok = require('okay')
const Client = require('../')
const async = require('async')
const ok = require('okay')
var execute = function (x, done) {
var client = new Client()
const execute = function (x, done) {
const client = new Client()
client.connectSync()
var query = function (n, cb) {
const query = function (n, cb) {
client.query('SELECT $1::int as num', [n], function (err) {
cb(err)
})

View File

@ -1,16 +1,16 @@
var Client = require('../')
var async = require('async')
var ok = require('okay')
var bytes = require('crypto').pseudoRandomBytes
const Client = require('../')
const async = require('async')
const ok = require('okay')
const bytes = require('crypto').pseudoRandomBytes
describe('many connections', function () {
describe('async', function () {
var test = function (count, times) {
const test = function (count, times) {
it(`connecting ${count} clients ${times} times`, function (done) {
this.timeout(200000)
var connectClient = function (n, cb) {
var client = new Client()
const connectClient = function (n, cb) {
const client = new Client()
client.connect(
ok(cb, function () {
bytes(
@ -29,7 +29,7 @@ describe('many connections', function () {
)
}
var run = function (n, cb) {
const run = function (n, cb) {
async.times(count, connectClient, cb)
}

View File

@ -1,14 +1,14 @@
var Client = require('../')
var async = require('async')
var assert = require('assert')
const Client = require('../')
const async = require('async')
const assert = require('assert')
describe('many errors', function () {
it('functions properly without segfault', function (done) {
var throwError = function (n, cb) {
var client = new Client()
const throwError = function (n, cb) {
const client = new Client()
client.connectSync()
var doIt = function (n, cb) {
const doIt = function (n, cb) {
client.query('select asdfiasdf', function (err) {
assert(err, 'bad query should emit an error')
cb(null)

View File

@ -1,5 +1,5 @@
var Client = require('../')
var assert = require('assert')
const Client = require('../')
const assert = require('assert')
describe('multiple commands in a single query', function () {
before(function (done) {
@ -22,7 +22,7 @@ describe('multiple commands in a single query', function () {
})
it('inserts and reads at once', function (done) {
var txt = 'CREATE TEMP TABLE boom(age int);'
let txt = 'CREATE TEMP TABLE boom(age int);'
txt += 'INSERT INTO boom(age) VALUES(10);'
txt += 'SELECT * FROM boom;'
this.client.query(txt, function (err, rows, results) {

View File

@ -1,5 +1,5 @@
var Client = require('../')
var assert = require('assert')
const Client = require('../')
const assert = require('assert')
describe('multiple statements', () => {
before(() => {

View File

@ -1,8 +1,8 @@
var Client = require('../')
var ok = require('okay')
const Client = require('../')
const ok = require('okay')
var notify = function (channel, payload) {
var client = new Client()
const notify = function (channel, payload) {
const client = new Client()
client.connectSync()
client.querySync('NOTIFY ' + channel + ", '" + payload + "'")
client.end()
@ -10,12 +10,12 @@ var notify = function (channel, payload) {
describe('simple LISTEN/NOTIFY', function () {
before(function (done) {
var client = (this.client = new Client())
const client = (this.client = new Client())
client.connect(done)
})
it('works', function (done) {
var client = this.client
const client = this.client
client.querySync('LISTEN boom')
client.on('notification', function (msg) {
done()
@ -31,14 +31,14 @@ describe('simple LISTEN/NOTIFY', function () {
if (!process.env.TRAVIS_CI) {
describe('async LISTEN/NOTIFY', function () {
before(function (done) {
var client = (this.client = new Client())
const client = (this.client = new Client())
client.connect(done)
})
it('works', function (done) {
var client = this.client
var count = 0
var check = function () {
const client = this.client
let count = 0
const check = function () {
count++
if (count >= 2) return done()
}

View File

@ -1,13 +1,13 @@
var Client = require('../')
var ok = require('okay')
var async = require('async')
const Client = require('../')
const ok = require('okay')
const async = require('async')
describe('async prepare', function () {
var run = function (n, cb) {
var client = new Client()
const run = function (n, cb) {
const client = new Client()
client.connectSync()
var exec = function (x, done) {
const exec = function (x, done) {
client.prepare('get_now' + x, 'SELECT NOW()', 0, done)
}
@ -20,7 +20,7 @@ describe('async prepare', function () {
)
}
var t = function (n) {
const t = function (n) {
it('works for ' + n + ' clients', function (done) {
async.times(n, run, function (err) {
done(err)
@ -28,17 +28,17 @@ describe('async prepare', function () {
})
}
for (var i = 0; i < 10; i++) {
for (let i = 0; i < 10; i++) {
t(i)
}
})
describe('async execute', function () {
var run = function (n, cb) {
var client = new Client()
const run = function (n, cb) {
const client = new Client()
client.connectSync()
client.prepareSync('get_now', 'SELECT NOW()', 0)
var exec = function (x, cb) {
const exec = function (x, cb) {
client.execute('get_now', [], cb)
}
async.timesSeries(
@ -50,7 +50,7 @@ describe('async execute', function () {
)
}
var t = function (n) {
const t = function (n) {
it('works for ' + n + ' clients', function (done) {
async.times(n, run, function (err) {
done(err)
@ -58,7 +58,7 @@ describe('async execute', function () {
})
}
for (var i = 0; i < 10; i++) {
for (let i = 0; i < 10; i++) {
t(i)
}
})

View File

@ -1,7 +1,7 @@
var Client = require('../')
var assert = require('assert')
var async = require('async')
var ok = require('okay')
const Client = require('../')
const assert = require('assert')
const async = require('async')
const ok = require('okay')
describe('async query', function () {
before(function (done) {
@ -24,7 +24,7 @@ describe('async query', function () {
})
it('simple query works', function (done) {
var runQuery = function (n, done) {
const runQuery = function (n, done) {
this.client.query('SELECT NOW() AS the_time', function (err, rows) {
if (err) return done(err)
assert.equal(rows[0].the_time.getFullYear(), new Date().getFullYear())
@ -35,14 +35,14 @@ describe('async query', function () {
})
it('parameters work', function (done) {
var runQuery = function (n, done) {
const runQuery = function (n, done) {
this.client.query('SELECT $1::text AS name', ['Brian'], done)
}.bind(this)
async.timesSeries(3, runQuery, done)
})
it('prepared, named statements work', function (done) {
var client = this.client
const client = this.client
client.prepare('test', 'SELECT $1::text as name', 1, function (err) {
if (err) return done(err)
client.execute(
@ -80,7 +80,7 @@ describe('async query', function () {
})
it('returns an error if there was a query error', function (done) {
var runErrorQuery = function (n, done) {
const runErrorQuery = function (n, done) {
this.client.query('SELECT ALKJSFDSLFKJ', function (err) {
assert(err instanceof Error, 'Should return an error instance')
done()

View File

@ -1,5 +1,5 @@
var Client = require('../')
var assert = require('assert')
const Client = require('../')
const assert = require('assert')
describe('query sync', function () {
before(function () {
@ -12,13 +12,13 @@ describe('query sync', function () {
})
it('simple query works', function () {
var rows = this.client.querySync('SELECT NOW() AS the_time')
const rows = this.client.querySync('SELECT NOW() AS the_time')
assert.equal(rows.length, 1)
assert.equal(rows[0].the_time.getFullYear(), new Date().getFullYear())
})
it('parameterized query works', function () {
var rows = this.client.querySync('SELECT $1::text AS name', ['Brian'])
const rows = this.client.querySync('SELECT $1::text AS name', ['Brian'])
assert.equal(rows.length, 1)
assert.equal(rows[0].name, 'Brian')
})
@ -37,11 +37,11 @@ describe('query sync', function () {
it('prepared statement works', function () {
this.client.prepareSync('test', 'SELECT $1::text as name', 1)
var rows = this.client.executeSync('test', ['Brian'])
const rows = this.client.executeSync('test', ['Brian'])
assert.equal(rows.length, 1)
assert.equal(rows[0].name, 'Brian')
var rows2 = this.client.executeSync('test', ['Aaron'])
const rows2 = this.client.executeSync('test', ['Aaron'])
assert.equal(rows2.length, 1)
assert.equal(rows2[0].name, 'Aaron')
})
@ -70,13 +70,13 @@ describe('query sync', function () {
})
it('is still usable after an error', function () {
var rows = this.client.querySync('SELECT NOW()')
const rows = this.client.querySync('SELECT NOW()')
assert(rows, 'should have returned rows')
assert.equal(rows.length, 1)
})
it('supports empty query', function () {
var rows = this.client.querySync('')
const rows = this.client.querySync('')
assert(rows, 'should return rows')
assert.equal(rows.length, 0, 'should return no rows')
})

View File

@ -1,6 +1,6 @@
var Client = require('../')
var assert = require('assert')
var semver = require('semver')
const Client = require('../')
const assert = require('assert')
const semver = require('semver')
describe('version', function () {
it('is exported', function () {

View File

@ -57,7 +57,7 @@ describe('connection timeout', () => {
function* () {
const errors = []
const pool = new Pool({ connectionTimeoutMillis: 1, port: this.port, host: 'localhost' })
for (var i = 0; i < 15; i++) {
for (let i = 0; i < 15; i++) {
try {
yield pool.connect()
} catch (e) {

View File

@ -198,7 +198,7 @@ describe('pool error handling', function () {
co.wrap(function* () {
const pool = new Pool({ max: 1 })
const errors = []
for (var i = 0; i < 20; i++) {
for (let i = 0; i < 20; i++) {
try {
yield pool.query('invalid sql')
} catch (err) {

View File

@ -54,8 +54,8 @@ describe('idle timeout', () => {
co.wrap(function* () {
const pool = new Pool({ idleTimeoutMillis: 1 })
const results = []
for (var i = 0; i < 20; i++) {
let query = pool.query('SELECT NOW()')
for (let i = 0; i < 20; i++) {
const query = pool.query('SELECT NOW()')
expect(pool.idleCount).to.equal(0)
expect(pool.totalCount).to.equal(1)
results.push(yield query)
@ -72,8 +72,8 @@ describe('idle timeout', () => {
co.wrap(function* () {
const pool = new Pool({ idleTimeoutMillis: 1 })
const results = []
for (var i = 0; i < 20; i++) {
let client = yield pool.connect()
for (let i = 0; i < 20; i++) {
const client = yield pool.connect()
expect(pool.totalCount).to.equal(1)
expect(pool.idleCount).to.equal(0)
yield wait(10)

View File

@ -32,7 +32,7 @@ describe('lifetime timeout', () => {
'can remove expired clients and recreate them',
co.wrap(function* () {
const pool = new Pool({ maxLifetimeSeconds: 1 })
let query = pool.query('SELECT pg_sleep(1.4)')
const query = pool.query('SELECT pg_sleep(1.4)')
expect(pool.expiredCount).to.equal(0)
expect(pool.totalCount).to.equal(1)
yield query

View File

@ -4,7 +4,7 @@ import { BufferReader } from './buffer-reader'
const LOOPS = 1000
let count = 0
let start = Date.now()
const start = Date.now()
const reader = new BufferReader()
const buffer = Buffer.from([33, 33, 33, 33, 33, 33, 33, 0])

View File

@ -9,12 +9,12 @@ export class Writer {
}
private ensure(size: number): void {
var remaining = this.buffer.length - this.offset
const remaining = this.buffer.length - this.offset
if (remaining < size) {
var oldBuffer = this.buffer
const oldBuffer = this.buffer
// exponential growth factor of around ~ 1.5
// https://stackoverflow.com/questions/2269063/buffer-growth-strategy
var newSize = oldBuffer.length + (oldBuffer.length >> 1) + size
const newSize = oldBuffer.length + (oldBuffer.length >> 1) + size
this.buffer = Buffer.allocUnsafe(newSize)
oldBuffer.copy(this.buffer)
}
@ -40,7 +40,7 @@ export class Writer {
if (!string) {
this.ensure(1)
} else {
var len = Buffer.byteLength(string)
const len = Buffer.byteLength(string)
this.ensure(len + 1) // +1 for null terminator
this.buffer.write(string, this.offset, 'utf-8')
this.offset += len
@ -51,7 +51,7 @@ export class Writer {
}
public addString(string: string = ''): Writer {
var len = Buffer.byteLength(string)
const len = Buffer.byteLength(string)
this.ensure(len)
this.buffer.write(string, this.offset)
this.offset += len
@ -76,7 +76,7 @@ export class Writer {
}
public flush(code?: number): Buffer {
var result = this.join(code)
const result = this.join(code)
this.offset = 5
this.headerPosition = 0
this.buffer = Buffer.allocUnsafe(this.size)

View File

@ -5,16 +5,16 @@ import assert from 'assert'
import { PassThrough } from 'stream'
import { BackendMessage } from './messages'
var authOkBuffer = buffers.authenticationOk()
var paramStatusBuffer = buffers.parameterStatus('client_encoding', 'UTF8')
var readyForQueryBuffer = buffers.readyForQuery()
var backendKeyDataBuffer = buffers.backendKeyData(1, 2)
var commandCompleteBuffer = buffers.commandComplete('SELECT 3')
var parseCompleteBuffer = buffers.parseComplete()
var bindCompleteBuffer = buffers.bindComplete()
var portalSuspendedBuffer = buffers.portalSuspended()
const authOkBuffer = buffers.authenticationOk()
const paramStatusBuffer = buffers.parameterStatus('client_encoding', 'UTF8')
const readyForQueryBuffer = buffers.readyForQuery()
const backendKeyDataBuffer = buffers.backendKeyData(1, 2)
const commandCompleteBuffer = buffers.commandComplete('SELECT 3')
const parseCompleteBuffer = buffers.parseComplete()
const bindCompleteBuffer = buffers.bindComplete()
const portalSuspendedBuffer = buffers.portalSuspended()
var row1 = {
const row1 = {
name: 'id',
tableID: 1,
attributeNumber: 2,
@ -23,10 +23,10 @@ var row1 = {
typeModifier: 5,
formatCode: 0,
}
var oneRowDescBuff = buffers.rowDescription([row1])
const oneRowDescBuff = buffers.rowDescription([row1])
row1.name = 'bang'
var twoRowBuf = buffers.rowDescription([
const twoRowBuf = buffers.rowDescription([
row1,
{
name: 'whoah',
@ -39,7 +39,7 @@ var twoRowBuf = buffers.rowDescription([
},
])
var rowWithBigOids = {
const rowWithBigOids = {
name: 'bigoid',
tableID: 3000000001,
attributeNumber: 2,
@ -48,52 +48,52 @@ var rowWithBigOids = {
typeModifier: 5,
formatCode: 0,
}
var bigOidDescBuff = buffers.rowDescription([rowWithBigOids])
const bigOidDescBuff = buffers.rowDescription([rowWithBigOids])
var emptyRowFieldBuf = buffers.dataRow([])
const emptyRowFieldBuf = buffers.dataRow([])
var oneFieldBuf = buffers.dataRow(['test'])
const oneFieldBuf = buffers.dataRow(['test'])
var expectedAuthenticationOkayMessage = {
const expectedAuthenticationOkayMessage = {
name: 'authenticationOk',
length: 8,
}
var expectedParameterStatusMessage = {
const expectedParameterStatusMessage = {
name: 'parameterStatus',
parameterName: 'client_encoding',
parameterValue: 'UTF8',
length: 25,
}
var expectedBackendKeyDataMessage = {
const expectedBackendKeyDataMessage = {
name: 'backendKeyData',
processID: 1,
secretKey: 2,
}
var expectedReadyForQueryMessage = {
const expectedReadyForQueryMessage = {
name: 'readyForQuery',
length: 5,
status: 'I',
}
var expectedCommandCompleteMessage = {
const expectedCommandCompleteMessage = {
name: 'commandComplete',
length: 13,
text: 'SELECT 3',
}
var emptyRowDescriptionBuffer = new BufferList()
const emptyRowDescriptionBuffer = new BufferList()
.addInt16(0) // number of fields
.join(true, 'T')
var expectedEmptyRowDescriptionMessage = {
const expectedEmptyRowDescriptionMessage = {
name: 'rowDescription',
length: 6,
fieldCount: 0,
fields: [],
}
var expectedOneRowMessage = {
const expectedOneRowMessage = {
name: 'rowDescription',
length: 27,
fieldCount: 1,
@ -110,7 +110,7 @@ var expectedOneRowMessage = {
],
}
var expectedTwoRowMessage = {
const expectedTwoRowMessage = {
name: 'rowDescription',
length: 53,
fieldCount: 2,
@ -135,7 +135,7 @@ var expectedTwoRowMessage = {
},
],
}
var expectedBigOidMessage = {
const expectedBigOidMessage = {
name: 'rowDescription',
length: 31,
fieldCount: 1,
@ -152,36 +152,36 @@ var expectedBigOidMessage = {
],
}
var emptyParameterDescriptionBuffer = new BufferList()
const emptyParameterDescriptionBuffer = new BufferList()
.addInt16(0) // number of parameters
.join(true, 't')
var oneParameterDescBuf = buffers.parameterDescription([1111])
const oneParameterDescBuf = buffers.parameterDescription([1111])
var twoParameterDescBuf = buffers.parameterDescription([2222, 3333])
const twoParameterDescBuf = buffers.parameterDescription([2222, 3333])
var expectedEmptyParameterDescriptionMessage = {
const expectedEmptyParameterDescriptionMessage = {
name: 'parameterDescription',
length: 6,
parameterCount: 0,
dataTypeIDs: [],
}
var expectedOneParameterMessage = {
const expectedOneParameterMessage = {
name: 'parameterDescription',
length: 10,
parameterCount: 1,
dataTypeIDs: [1111],
}
var expectedTwoParameterMessage = {
const expectedTwoParameterMessage = {
name: 'parameterDescription',
length: 14,
parameterCount: 2,
dataTypeIDs: [2222, 3333],
}
var testForMessage = function (buffer: Buffer, expectedMessage: any) {
const testForMessage = function (buffer: Buffer, expectedMessage: any) {
it('receives and parses ' + expectedMessage.name, async () => {
const messages = await parseBuffers([buffer])
const [lastMessage] = messages
@ -192,38 +192,38 @@ var testForMessage = function (buffer: Buffer, expectedMessage: any) {
})
}
var plainPasswordBuffer = buffers.authenticationCleartextPassword()
var md5PasswordBuffer = buffers.authenticationMD5Password()
var SASLBuffer = buffers.authenticationSASL()
var SASLContinueBuffer = buffers.authenticationSASLContinue()
var SASLFinalBuffer = buffers.authenticationSASLFinal()
const plainPasswordBuffer = buffers.authenticationCleartextPassword()
const md5PasswordBuffer = buffers.authenticationMD5Password()
const SASLBuffer = buffers.authenticationSASL()
const SASLContinueBuffer = buffers.authenticationSASLContinue()
const SASLFinalBuffer = buffers.authenticationSASLFinal()
var expectedPlainPasswordMessage = {
const expectedPlainPasswordMessage = {
name: 'authenticationCleartextPassword',
}
var expectedMD5PasswordMessage = {
const expectedMD5PasswordMessage = {
name: 'authenticationMD5Password',
salt: Buffer.from([1, 2, 3, 4]),
}
var expectedSASLMessage = {
const expectedSASLMessage = {
name: 'authenticationSASL',
mechanisms: ['SCRAM-SHA-256'],
}
var expectedSASLContinueMessage = {
const expectedSASLContinueMessage = {
name: 'authenticationSASLContinue',
data: 'data',
}
var expectedSASLFinalMessage = {
const expectedSASLFinalMessage = {
name: 'authenticationSASLFinal',
data: 'data',
}
var notificationResponseBuffer = buffers.notification(4, 'hi', 'boom')
var expectedNotificationResponseMessage = {
const notificationResponseBuffer = buffers.notification(4, 'hi', 'boom')
const expectedNotificationResponseMessage = {
name: 'notification',
processId: 4,
channel: 'hi',
@ -308,7 +308,7 @@ describe('PgPacketStream', function () {
describe('notice message', function () {
// this uses the same logic as error message
var buff = buffers.notice([{ type: 'C', value: 'code' }])
const buff = buffers.notice([{ type: 'C', value: 'code' }])
testForMessage(buff, {
name: 'notice',
code: 'code',
@ -320,7 +320,7 @@ describe('PgPacketStream', function () {
})
describe('with all the fields', function () {
var buffer = buffers.error([
const buffer = buffers.error([
{
type: 'S',
value: 'ERROR',
@ -466,7 +466,7 @@ describe('PgPacketStream', function () {
// tcp packets anywhere, we need to make sure we can parse every single
// split on a tcp message
describe('split buffer, single message parsing', function () {
var fullBuffer = buffers.dataRow([null, 'bang', 'zug zug', null, '!'])
const fullBuffer = buffers.dataRow([null, 'bang', 'zug zug', null, '!'])
it('parses when full buffer comes in', async function () {
const messages = await parseBuffers([fullBuffer])
@ -479,9 +479,9 @@ describe('PgPacketStream', function () {
assert.equal(message.fields[4], '!')
})
var testMessageReceivedAfterSplitAt = async function (split: number) {
var firstBuffer = Buffer.alloc(fullBuffer.length - split)
var secondBuffer = Buffer.alloc(fullBuffer.length - firstBuffer.length)
const testMessageReceivedAfterSplitAt = async function (split: number) {
const firstBuffer = Buffer.alloc(fullBuffer.length - split)
const secondBuffer = Buffer.alloc(fullBuffer.length - firstBuffer.length)
fullBuffer.copy(firstBuffer, 0, 0)
fullBuffer.copy(secondBuffer, 0, firstBuffer.length)
const messages = await parseBuffers([firstBuffer, secondBuffer])
@ -512,13 +512,13 @@ describe('PgPacketStream', function () {
})
describe('split buffer, multiple message parsing', function () {
var dataRowBuffer = buffers.dataRow(['!'])
var readyForQueryBuffer = buffers.readyForQuery()
var fullBuffer = Buffer.alloc(dataRowBuffer.length + readyForQueryBuffer.length)
const dataRowBuffer = buffers.dataRow(['!'])
const readyForQueryBuffer = buffers.readyForQuery()
const fullBuffer = Buffer.alloc(dataRowBuffer.length + readyForQueryBuffer.length)
dataRowBuffer.copy(fullBuffer, 0, 0)
readyForQueryBuffer.copy(fullBuffer, dataRowBuffer.length, 0)
var verifyMessages = function (messages: any[]) {
const verifyMessages = function (messages: any[]) {
assert.strictEqual(messages.length, 2)
assert.deepEqual(messages[0], {
name: 'dataRow',
@ -539,9 +539,9 @@ describe('PgPacketStream', function () {
verifyMessages(messages)
})
var splitAndVerifyTwoMessages = async function (split: number) {
var firstBuffer = Buffer.alloc(fullBuffer.length - split)
var secondBuffer = Buffer.alloc(fullBuffer.length - firstBuffer.length)
const splitAndVerifyTwoMessages = async function (split: number) {
const firstBuffer = Buffer.alloc(fullBuffer.length - split)
const secondBuffer = Buffer.alloc(fullBuffer.length - firstBuffer.length)
fullBuffer.copy(firstBuffer, 0, 0)
fullBuffer.copy(secondBuffer, 0, firstBuffer.length)
const messages = await parseBuffers([firstBuffer, secondBuffer])

View File

@ -46,7 +46,7 @@ describe('serializer', () => {
})
it('builds query message', function () {
var txt = 'select * from boom'
const txt = 'select * from boom'
const actual = serialize.query(txt)
assert.deepEqual(actual, new BufferList().addCString(txt).join(true, 'Q'))
})
@ -54,7 +54,7 @@ describe('serializer', () => {
describe('parse message', () => {
it('builds parse message', function () {
const actual = serialize.parse({ text: '!' })
var expected = new BufferList().addCString('').addCString('!').addInt16(0).join(true, 'P')
const expected = new BufferList().addCString('').addCString('!').addInt16(0).join(true, 'P')
assert.deepEqual(actual, expected)
})
@ -64,7 +64,7 @@ describe('serializer', () => {
text: 'select * from boom',
types: [],
})
var expected = new BufferList().addCString('boom').addCString('select * from boom').addInt16(0).join(true, 'P')
const expected = new BufferList().addCString('boom').addCString('select * from boom').addInt16(0).join(true, 'P')
assert.deepEqual(actual, expected)
})
@ -74,7 +74,7 @@ describe('serializer', () => {
text: 'select * from bang where name = $1',
types: [1, 2, 3, 4],
})
var expected = new BufferList()
const expected = new BufferList()
.addCString('force')
.addCString('select * from bang where name = $1')
.addInt16(4)
@ -91,7 +91,7 @@ describe('serializer', () => {
it('with no values', function () {
const actual = serialize.bind()
var expectedBuffer = new BufferList()
const expectedBuffer = new BufferList()
.addCString('')
.addCString('')
.addInt16(0)
@ -107,7 +107,7 @@ describe('serializer', () => {
statement: 'woo',
values: ['1', 'hi', null, 'zing'],
})
var expectedBuffer = new BufferList()
const expectedBuffer = new BufferList()
.addCString('bang') // portal name
.addCString('woo') // statement name
.addInt16(4)
@ -136,7 +136,7 @@ describe('serializer', () => {
values: ['1', 'hi', null, 'zing'],
valueMapper: () => null,
})
var expectedBuffer = new BufferList()
const expectedBuffer = new BufferList()
.addCString('bang') // portal name
.addCString('woo') // statement name
.addInt16(4)
@ -160,7 +160,7 @@ describe('serializer', () => {
statement: 'woo',
values: ['1', 'hi', null, Buffer.from('zing', 'utf8')],
})
var expectedBuffer = new BufferList()
const expectedBuffer = new BufferList()
.addCString('bang') // portal name
.addCString('woo') // statement name
.addInt16(4) // value count
@ -184,7 +184,7 @@ describe('serializer', () => {
describe('builds execute message', function () {
it('for unamed portal with no row limit', function () {
const actual = serialize.execute()
var expectedBuffer = new BufferList().addCString('').addInt32(0).join(true, 'E')
const expectedBuffer = new BufferList().addCString('').addInt32(0).join(true, 'E')
assert.deepEqual(actual, expectedBuffer)
})
@ -193,39 +193,39 @@ describe('serializer', () => {
portal: 'my favorite portal',
rows: 100,
})
var expectedBuffer = new BufferList().addCString('my favorite portal').addInt32(100).join(true, 'E')
const expectedBuffer = new BufferList().addCString('my favorite portal').addInt32(100).join(true, 'E')
assert.deepEqual(actual, expectedBuffer)
})
})
it('builds flush command', function () {
const actual = serialize.flush()
var expected = new BufferList().join(true, 'H')
const expected = new BufferList().join(true, 'H')
assert.deepEqual(actual, expected)
})
it('builds sync command', function () {
const actual = serialize.sync()
var expected = new BufferList().join(true, 'S')
const expected = new BufferList().join(true, 'S')
assert.deepEqual(actual, expected)
})
it('builds end command', function () {
const actual = serialize.end()
var expected = Buffer.from([0x58, 0, 0, 0, 4])
const expected = Buffer.from([0x58, 0, 0, 0, 4])
assert.deepEqual(actual, expected)
})
describe('builds describe command', function () {
it('describe statement', function () {
const actual = serialize.describe({ type: 'S', name: 'bang' })
var expected = new BufferList().addChar('S').addCString('bang').join(true, 'D')
const expected = new BufferList().addChar('S').addCString('bang').join(true, 'D')
assert.deepEqual(actual, expected)
})
it('describe unnamed portal', function () {
const actual = serialize.describe({ type: 'P' })
var expected = new BufferList().addChar('P').addCString('').join(true, 'D')
const expected = new BufferList().addChar('P').addCString('').join(true, 'D')
assert.deepEqual(actual, expected)
})
})
@ -233,13 +233,13 @@ describe('serializer', () => {
describe('builds close command', function () {
it('describe statement', function () {
const actual = serialize.close({ type: 'S', name: 'bang' })
var expected = new BufferList().addChar('S').addCString('bang').join(true, 'C')
const expected = new BufferList().addChar('S').addCString('bang').join(true, 'C')
assert.deepEqual(actual, expected)
})
it('describe unnamed portal', function () {
const actual = serialize.close({ type: 'P' })
var expected = new BufferList().addChar('P').addCString('').join(true, 'C')
const expected = new BufferList().addChar('P').addCString('').join(true, 'C')
assert.deepEqual(actual, expected)
})
})

View File

@ -27,10 +27,10 @@ const startup = (opts: Record<string, string>): Buffer => {
writer.addCString('client_encoding').addCString('UTF8')
var bodyBuffer = writer.addCString('').flush()
const bodyBuffer = writer.addCString('').flush()
// this message is sent without a code
var length = bodyBuffer.length + 4
const length = bodyBuffer.length + 4
return new Writer().addInt32(length).add(bodyBuffer).flush()
}
@ -87,14 +87,14 @@ const parse = (query: ParseOpts): Buffer => {
const types = query.types || emptyArray
var len = types.length
const len = types.length
var buffer = writer
const buffer = writer
.addCString(name) // name of query
.addCString(query.text) // actual query text
.addInt16(len)
for (var i = 0; i < len; i++) {
for (let i = 0; i < len; i++) {
buffer.addInt32(types[i])
}

View File

@ -24,16 +24,16 @@ export default class BufferList {
}
public addCString(val: string, front?: boolean) {
var len = Buffer.byteLength(val)
var buffer = Buffer.alloc(len + 1)
const len = Buffer.byteLength(val)
const buffer = Buffer.alloc(len + 1)
buffer.write(val)
buffer[len] = 0
return this.add(buffer, front)
}
public addString(val: string, front?: boolean) {
var len = Buffer.byteLength(val)
var buffer = Buffer.alloc(len)
const len = Buffer.byteLength(val)
const buffer = Buffer.alloc(len)
buffer.write(val)
return this.add(buffer, front)
}
@ -47,7 +47,7 @@ export default class BufferList {
}
public join(appendLength?: boolean, char?: string): Buffer {
var length = this.getByteLength()
let length = this.getByteLength()
if (appendLength) {
this.addInt32(length + 4, true)
return this.join(false, char)
@ -56,8 +56,8 @@ export default class BufferList {
this.addChar(char, true)
length++
}
var result = Buffer.alloc(length)
var index = 0
const result = Buffer.alloc(length)
let index = 0
this.buffers.forEach(function (buffer) {
buffer.copy(result, index, 0)
index += buffer.length

View File

@ -47,7 +47,7 @@ const buffers = {
rowDescription: function (fields: any[]) {
fields = fields || []
var buf = new BufferList()
const buf = new BufferList()
buf.addInt16(fields.length)
fields.forEach(function (field) {
buf
@ -64,7 +64,7 @@ const buffers = {
parameterDescription: function (dataTypeIDs: number[]) {
dataTypeIDs = dataTypeIDs || []
var buf = new BufferList()
const buf = new BufferList()
buf.addInt16(dataTypeIDs.length)
dataTypeIDs.forEach(function (dataTypeID) {
buf.addInt32(dataTypeID)
@ -74,13 +74,13 @@ const buffers = {
dataRow: function (columns: any[]) {
columns = columns || []
var buf = new BufferList()
const buf = new BufferList()
buf.addInt16(columns.length)
columns.forEach(function (col) {
if (col == null) {
buf.addInt32(-1)
} else {
var strBuf = Buffer.from(col, 'utf8')
const strBuf = Buffer.from(col, 'utf8')
buf.addInt32(strBuf.length)
buf.add(strBuf)
}
@ -98,7 +98,7 @@ const buffers = {
errorOrNotice: function (fields: any) {
fields = fields || []
var buf = new BufferList()
const buf = new BufferList()
fields.forEach(function (field: any) {
buf.addChar(field.type)
buf.addCString(field.value)

View File

@ -23,7 +23,7 @@ const exec = async (client, q) => {
}
const bench = async (client, q, time) => {
let start = Date.now()
const start = Date.now()
let count = 0
// eslint-disable-next-line no-constant-condition
while (true) {

View File

@ -1,14 +1,14 @@
'use strict'
var EventEmitter = require('events').EventEmitter
var utils = require('./utils')
var sasl = require('./crypto/sasl')
var TypeOverrides = require('./type-overrides')
const EventEmitter = require('events').EventEmitter
const utils = require('./utils')
const sasl = require('./crypto/sasl')
const TypeOverrides = require('./type-overrides')
var ConnectionParameters = require('./connection-parameters')
var Query = require('./query')
var defaults = require('./defaults')
var Connection = require('./connection')
const ConnectionParameters = require('./connection-parameters')
const Query = require('./query')
const defaults = require('./defaults')
const Connection = require('./connection')
const crypto = require('./crypto/utils')
class Client extends EventEmitter {
@ -32,7 +32,7 @@ class Client extends EventEmitter {
this.replication = this.connectionParameters.replication
var c = config || {}
const c = config || {}
this._Promise = c.Promise || global.Promise
this._types = new TypeOverrides(c.types)
@ -87,8 +87,8 @@ class Client extends EventEmitter {
}
_connect(callback) {
var self = this
var con = this.connection
const self = this
const con = this.connection
this._connectionCallback = callback
if (this._connecting || this._connected) {
@ -427,14 +427,14 @@ class Client extends EventEmitter {
}
getStartupConf() {
var params = this.connectionParameters
const params = this.connectionParameters
var data = {
const data = {
user: params.user,
database: params.database,
}
var appName = params.application_name || params.fallback_application_name
const appName = params.application_name || params.fallback_application_name
if (appName) {
data.application_name = appName
}
@ -459,7 +459,7 @@ class Client extends EventEmitter {
cancel(client, query) {
if (client.activeQuery === query) {
var con = this.connection
const con = this.connection
if (this.host && this.host.indexOf('/') === 0) {
con.connect(this.host + '/.s.PGSQL.' + this.port)
@ -519,11 +519,11 @@ class Client extends EventEmitter {
query(config, values, callback) {
// can take in strings, config object or query object
var query
var result
var readTimeout
var readTimeoutTimer
var queryCallback
let query
let result
let readTimeout
let readTimeoutTimer
let queryCallback
if (config === null || config === undefined) {
throw new TypeError('Client was passed a null or undefined query')
@ -552,7 +552,7 @@ class Client extends EventEmitter {
queryCallback = query.callback
readTimeoutTimer = setTimeout(() => {
var error = new Error('Query read timeout')
const error = new Error('Query read timeout')
process.nextTick(() => {
query.handleError(error, this.connection)
@ -565,7 +565,7 @@ class Client extends EventEmitter {
query.callback = () => {}
// Remove from queue
var index = this.queryQueue.indexOf(query)
const index = this.queryQueue.indexOf(query)
if (index > -1) {
this.queryQueue.splice(index, 1)
}

View File

@ -1,12 +1,12 @@
'use strict'
var dns = require('dns')
const dns = require('dns')
var defaults = require('./defaults')
const defaults = require('./defaults')
var parse = require('pg-connection-string').parse // parses a connection string
const parse = require('pg-connection-string').parse // parses a connection string
var val = function (key, config, envVar) {
const val = function (key, config, envVar) {
if (envVar === undefined) {
envVar = process.env['PG' + key.toUpperCase()]
} else if (envVar === false) {
@ -18,7 +18,7 @@ var val = function (key, config, envVar) {
return config[key] || envVar || defaults[key]
}
var readSSLConfigFromEnvironment = function () {
const readSSLConfigFromEnvironment = function () {
switch (process.env.PGSSLMODE) {
case 'disable':
return false
@ -34,12 +34,12 @@ var readSSLConfigFromEnvironment = function () {
}
// Convert arg to a string, surround in single quotes, and escape single quotes and backslashes
var quoteParamValue = function (value) {
const quoteParamValue = function (value) {
return "'" + ('' + value).replace(/\\/g, '\\\\').replace(/'/g, "\\'") + "'"
}
var add = function (params, config, paramName) {
var value = config[paramName]
const add = function (params, config, paramName) {
const value = config[paramName]
if (value !== undefined && value !== null) {
params.push(paramName + '=' + quoteParamValue(value))
}
@ -125,7 +125,7 @@ class ConnectionParameters {
}
getLibpqConnectionString(cb) {
var params = []
const params = []
add(params, this, 'user')
add(params, this, 'password')
add(params, this, 'port')
@ -134,7 +134,7 @@ class ConnectionParameters {
add(params, this, 'connect_timeout')
add(params, this, 'options')
var ssl = typeof this.ssl === 'object' ? this.ssl : this.ssl ? { sslmode: this.ssl } : {}
const ssl = typeof this.ssl === 'object' ? this.ssl : this.ssl ? { sslmode: this.ssl } : {}
add(params, ssl, 'sslmode')
add(params, ssl, 'sslca')
add(params, ssl, 'sslkey')

View File

@ -1,6 +1,6 @@
'use strict'
var EventEmitter = require('events').EventEmitter
const EventEmitter = require('events').EventEmitter
const { parse, serialize } = require('pg-protocol')
const { getStream, getSecureStream } = require('./stream')
@ -27,7 +27,7 @@ class Connection extends EventEmitter {
this.ssl = config.ssl || false
this._ending = false
this._emitMessage = false
var self = this
const self = this
this.on('newListener', function (eventName) {
if (eventName === 'message') {
self._emitMessage = true
@ -36,7 +36,7 @@ class Connection extends EventEmitter {
}
connect(port, host) {
var self = this
const self = this
this._connecting = true
this.stream.setNoDelay(true)
@ -67,7 +67,7 @@ class Connection extends EventEmitter {
}
this.stream.once('data', function (buffer) {
var responseCode = buffer.toString('utf8')
const responseCode = buffer.toString('utf8')
switch (responseCode) {
case 'S': // Server supports SSL connections, continue with a secure connection
break
@ -91,7 +91,7 @@ class Connection extends EventEmitter {
}
}
var net = require('net')
const net = require('net')
if (net.isIP && net.isIP(host) === 0) {
options.servername = host
}
@ -109,7 +109,7 @@ class Connection extends EventEmitter {
attachListeners(stream) {
parse(stream, (msg) => {
var eventName = msg.name === 'error' ? 'errorMessage' : msg.name
const eventName = msg.name === 'error' ? 'errorMessage' : msg.name
if (this._emitMessage) {
this.emit('message', msg)
}

View File

@ -22,7 +22,7 @@ function readASN1OID(data, index) {
const { length: OIDLength, index: indexAfterOIDLength } = readASN1Length(data, index)
index = indexAfterOIDLength
let lastIndex = index + OIDLength
const lastIndex = index + OIDLength
const byte1 = data[index++]
let oid = ((byte1 / 40) >> 0) + '.' + (byte1 % 40)

View File

@ -50,8 +50,8 @@ async function continueSession(session, password, serverData, stream) {
throw new Error('SASL: SCRAM-SERVER-FIRST-MESSAGE: server nonce is too short')
}
var clientFirstMessageBare = 'n=*,r=' + session.clientNonce
var serverFirstMessage = 'r=' + sv.nonce + ',s=' + sv.salt + ',i=' + sv.iteration
const clientFirstMessageBare = 'n=*,r=' + session.clientNonce
const serverFirstMessage = 'r=' + sv.nonce + ',s=' + sv.salt + ',i=' + sv.iteration
// without channel binding:
let channelBinding = stream ? 'eSws' : 'biws' // 'y,,' or 'n,,', base64-encoded
@ -66,17 +66,17 @@ async function continueSession(session, password, serverData, stream) {
channelBinding = bindingData.toString('base64')
}
var clientFinalMessageWithoutProof = 'c=' + channelBinding + ',r=' + sv.nonce
var authMessage = clientFirstMessageBare + ',' + serverFirstMessage + ',' + clientFinalMessageWithoutProof
const clientFinalMessageWithoutProof = 'c=' + channelBinding + ',r=' + sv.nonce
const authMessage = clientFirstMessageBare + ',' + serverFirstMessage + ',' + clientFinalMessageWithoutProof
var saltBytes = Buffer.from(sv.salt, 'base64')
var saltedPassword = await crypto.deriveKey(password, saltBytes, sv.iteration)
var clientKey = await crypto.hmacSha256(saltedPassword, 'Client Key')
var storedKey = await crypto.sha256(clientKey)
var clientSignature = await crypto.hmacSha256(storedKey, authMessage)
var clientProof = xorBuffers(Buffer.from(clientKey), Buffer.from(clientSignature)).toString('base64')
var serverKey = await crypto.hmacSha256(saltedPassword, 'Server Key')
var serverSignatureBytes = await crypto.hmacSha256(serverKey, authMessage)
const saltBytes = Buffer.from(sv.salt, 'base64')
const saltedPassword = await crypto.deriveKey(password, saltBytes, sv.iteration)
const clientKey = await crypto.hmacSha256(saltedPassword, 'Client Key')
const storedKey = await crypto.sha256(clientKey)
const clientSignature = await crypto.hmacSha256(storedKey, authMessage)
const clientProof = xorBuffers(Buffer.from(clientKey), Buffer.from(clientSignature)).toString('base64')
const serverKey = await crypto.hmacSha256(saltedPassword, 'Server Key')
const serverSignatureBytes = await crypto.hmacSha256(serverKey, authMessage)
session.message = 'SASLResponse'
session.serverSignature = Buffer.from(serverSignatureBytes).toString('base64')

View File

@ -10,8 +10,8 @@ function md5(string) {
// See AuthenticationMD5Password at https://www.postgresql.org/docs/current/static/protocol-flow.html
function postgresMd5PasswordHash(user, password, salt) {
var inner = md5(password + user)
var outer = md5(Buffer.concat([Buffer.from(inner), salt]))
const inner = md5(password + user)
const outer = md5(Buffer.concat([Buffer.from(inner), salt]))
return 'md5' + outer
}

View File

@ -49,8 +49,8 @@ async function md5(string) {
// See AuthenticationMD5Password at https://www.postgresql.org/docs/current/static/protocol-flow.html
async function postgresMd5PasswordHash(user, password, salt) {
var inner = await md5(password + user)
var outer = await md5(Buffer.concat([Buffer.from(inner), salt]))
const inner = await md5(password + user)
const outer = await md5(Buffer.concat([Buffer.from(inner), salt]))
return 'md5' + outer
}

View File

@ -72,10 +72,10 @@ module.exports = {
keepalives_idle: 0,
}
var pgTypes = require('pg-types')
const pgTypes = require('pg-types')
// save default parsers
var parseBigInteger = pgTypes.getTypeParser(20, 'text')
var parseBigIntegerArray = pgTypes.getTypeParser(1016, 'text')
const parseBigInteger = pgTypes.getTypeParser(20, 'text')
const parseBigIntegerArray = pgTypes.getTypeParser(1016, 'text')
// parse int8 so you can get your count values as actual numbers
module.exports.__defineSetter__('parseInt8', function (val) {

View File

@ -18,7 +18,7 @@ const poolFactory = (Client) => {
}
}
var PG = function (clientConstructor) {
const PG = function (clientConstructor) {
this.defaults = defaults
this.Client = clientConstructor
this.Query = this.Client.Query
@ -44,7 +44,7 @@ if (typeof process.env.NODE_PG_FORCE_NATIVE !== 'undefined') {
configurable: true,
enumerable: false,
get() {
var native = null
let native = null
try {
native = new PG(require('./native'))
} catch (err) {

View File

@ -9,14 +9,14 @@ try {
} catch (e) {
throw e
}
var TypeOverrides = require('../type-overrides')
var EventEmitter = require('events').EventEmitter
var util = require('util')
var ConnectionParameters = require('../connection-parameters')
const TypeOverrides = require('../type-overrides')
const EventEmitter = require('events').EventEmitter
const util = require('util')
const ConnectionParameters = require('../connection-parameters')
var NativeQuery = require('./query')
const NativeQuery = require('./query')
var Client = (module.exports = function (config) {
const Client = (module.exports = function (config) {
EventEmitter.call(this)
config = config || {}
@ -35,7 +35,7 @@ var Client = (module.exports = function (config) {
// keep these on the object for legacy reasons
// for the time being. TODO: deprecate all this jazz
var cp = (this.connectionParameters = new ConnectionParameters(config))
const cp = (this.connectionParameters = new ConnectionParameters(config))
if (config.nativeConnectionString) cp.nativeConnectionString = config.nativeConnectionString
this.user = cp.user
@ -80,7 +80,7 @@ Client.prototype._errorAllQueries = function (err) {
// pass an optional callback to be called once connected
// or with an error if there was a connection error
Client.prototype._connect = function (cb) {
var self = this
const self = this
if (this._connecting) {
process.nextTick(() => cb(new Error('Client has already been connected. You cannot reuse a client.')))
@ -152,11 +152,11 @@ Client.prototype.connect = function (callback) {
// optional string rowMode = 'array' for an array of results
// }
Client.prototype.query = function (config, values, callback) {
var query
var result
var readTimeout
var readTimeoutTimer
var queryCallback
let query
let result
let readTimeout
let readTimeoutTimer
let queryCallback
if (config === null || config === undefined) {
throw new TypeError('Client was passed a null or undefined query')
@ -187,7 +187,7 @@ Client.prototype.query = function (config, values, callback) {
queryCallback = query.callback
readTimeoutTimer = setTimeout(() => {
var error = new Error('Query read timeout')
const error = new Error('Query read timeout')
process.nextTick(() => {
query.handleError(error, this.connection)
@ -200,7 +200,7 @@ Client.prototype.query = function (config, values, callback) {
query.callback = () => {}
// Remove from queue
var index = this._queryQueue.indexOf(query)
const index = this._queryQueue.indexOf(query)
if (index > -1) {
this._queryQueue.splice(index, 1)
}
@ -237,14 +237,14 @@ Client.prototype.query = function (config, values, callback) {
// disconnect from the backend server
Client.prototype.end = function (cb) {
var self = this
const self = this
this._ending = true
if (!this._connected) {
this.once('connect', this.end.bind(this, cb))
}
var result
let result
if (!cb) {
result = new this._Promise(function (resolve, reject) {
cb = (err) => (err ? reject(err) : resolve())
@ -272,7 +272,7 @@ Client.prototype._pulseQueryQueue = function (initialConnection) {
if (this._hasActiveQuery()) {
return
}
var query = this._queryQueue.shift()
const query = this._queryQueue.shift()
if (!query) {
if (!initialConnection) {
this.emit('drain')
@ -281,7 +281,7 @@ Client.prototype._pulseQueryQueue = function (initialConnection) {
}
this._activeQuery = query
query.submit(this)
var self = this
const self = this
query.once('_done', function () {
self._pulseQueryQueue()
})

View File

@ -1,10 +1,10 @@
'use strict'
var EventEmitter = require('events').EventEmitter
var util = require('util')
var utils = require('../utils')
const EventEmitter = require('events').EventEmitter
const util = require('util')
const utils = require('../utils')
var NativeQuery = (module.exports = function (config, values, callback) {
const NativeQuery = (module.exports = function (config, values, callback) {
EventEmitter.call(this)
config = utils.normalizeQueryConfig(config, values, callback)
this.text = config.text
@ -31,7 +31,7 @@ var NativeQuery = (module.exports = function (config, values, callback) {
util.inherits(NativeQuery, EventEmitter)
var errorFieldMap = {
const errorFieldMap = {
/* eslint-disable quote-props */
sqlState: 'code',
statementPosition: 'position',
@ -49,10 +49,10 @@ var errorFieldMap = {
NativeQuery.prototype.handleError = function (err) {
// copy pq error fields into the error object
var fields = this.native.pq.resultErrorFields()
const fields = this.native.pq.resultErrorFields()
if (fields) {
for (var key in fields) {
var normalizedFieldName = errorFieldMap[key] || key
for (const key in fields) {
const normalizedFieldName = errorFieldMap[key] || key
err[normalizedFieldName] = fields[key]
}
}
@ -85,11 +85,11 @@ NativeQuery.prototype._getPromise = function () {
NativeQuery.prototype.submit = function (client) {
this.state = 'running'
var self = this
const self = this
this.native = client.native
client.native.arrayMode = this._arrayMode
var after = function (err, rows, results) {
let after = function (err, rows, results) {
client.native.arrayMode = false
setImmediate(function () {
self.emit('_done')
@ -136,7 +136,7 @@ NativeQuery.prototype.submit = function (client) {
console.error('This can cause conflicts and silent errors executing queries')
/* eslint-enable no-console */
}
var values = (this.values || []).map(utils.prepareValue)
const values = (this.values || []).map(utils.prepareValue)
// check if the client has already executed this named query
// if so...just execute it again - skip the planning phase
@ -158,7 +158,7 @@ NativeQuery.prototype.submit = function (client) {
const err = new Error('Query values must be an array')
return after(err)
}
var vals = this.values.map(utils.prepareValue)
const vals = this.values.map(utils.prepareValue)
client.native.query(this.text, vals, after)
} else if (this.queryMode === 'extended') {
client.native.query(this.text, [], after)

View File

@ -1,8 +1,8 @@
'use strict'
var types = require('pg-types')
const types = require('pg-types')
var matchRegexp = /^([A-Za-z]+)(?: (\d+))?(?: (\d+))?/
const matchRegexp = /^([A-Za-z]+)(?: (\d+))?(?: (\d+))?/
// result object returned from query
// in the 'end' event and also
@ -26,7 +26,7 @@ class Result {
// adds a command complete message
addCommandComplete(msg) {
var match
let match
if (msg.text) {
// pure javascript
match = matchRegexp.exec(msg.text)
@ -48,9 +48,9 @@ class Result {
}
_parseRowAsArray(rowData) {
var row = new Array(rowData.length)
for (var i = 0, len = rowData.length; i < len; i++) {
var rawValue = rowData[i]
const row = new Array(rowData.length)
for (let i = 0, len = rowData.length; i < len; i++) {
const rawValue = rowData[i]
if (rawValue !== null) {
row[i] = this._parsers[i](rawValue)
} else {
@ -61,10 +61,10 @@ class Result {
}
parseRow(rowData) {
var row = { ...this._prebuiltEmptyResultObject }
for (var i = 0, len = rowData.length; i < len; i++) {
var rawValue = rowData[i]
var field = this.fields[i].name
const row = { ...this._prebuiltEmptyResultObject }
for (let i = 0, len = rowData.length; i < len; i++) {
const rawValue = rowData[i]
const field = this.fields[i].name
if (rawValue !== null) {
row[field] = this._parsers[i](rawValue)
} else {
@ -88,10 +88,10 @@ class Result {
this._parsers = new Array(fieldDescriptions.length)
}
var row = {}
const row = {}
for (var i = 0; i < fieldDescriptions.length; i++) {
var desc = fieldDescriptions[i]
for (let i = 0; i < fieldDescriptions.length; i++) {
const desc = fieldDescriptions[i]
row[desc.name] = null
if (this._types) {

View File

@ -24,7 +24,7 @@ function getNodejsStreamFuncs() {
}
function getSecureStream(options) {
var tls = require('tls')
const tls = require('tls')
return tls.connect(options)
}
return {

View File

@ -1,6 +1,6 @@
'use strict'
var types = require('pg-types')
const types = require('pg-types')
function TypeOverrides(userTypes) {
this._types = userTypes || types

View File

@ -3,7 +3,7 @@
const defaults = require('./defaults')
function escapeElement(elementRepresentation) {
var escaped = elementRepresentation.replace(/\\/g, '\\\\').replace(/"/g, '\\"')
const escaped = elementRepresentation.replace(/\\/g, '\\\\').replace(/"/g, '\\"')
return '"' + escaped + '"'
}
@ -12,8 +12,8 @@ function escapeElement(elementRepresentation) {
// uses comma separator so won't work for types like box that use
// a different array separator.
function arrayString(val) {
var result = '{'
for (var i = 0; i < val.length; i++) {
let result = '{'
for (let i = 0; i < val.length; i++) {
if (i > 0) {
result = result + ','
}
@ -22,9 +22,9 @@ function arrayString(val) {
} else if (Array.isArray(val[i])) {
result = result + arrayString(val[i])
} else if (ArrayBuffer.isView(val[i])) {
var item = val[i]
let item = val[i]
if (!(item instanceof Buffer)) {
var buf = Buffer.from(item.buffer, item.byteOffset, item.byteLength)
const buf = Buffer.from(item.buffer, item.byteOffset, item.byteLength)
if (buf.length === item.byteLength) {
item = buf
} else {
@ -44,7 +44,7 @@ function arrayString(val) {
// to their 'raw' counterparts for use as a postgres parameter
// note: you can override this function to provide your own conversion mechanism
// for complex types, etc...
var prepareValue = function (val, seen) {
const prepareValue = function (val, seen) {
// null and undefined are both null for postgres
if (val == null) {
return null
@ -54,7 +54,7 @@ var prepareValue = function (val, seen) {
return val
}
if (ArrayBuffer.isView(val)) {
var buf = Buffer.from(val.buffer, val.byteOffset, val.byteLength)
const buf = Buffer.from(val.buffer, val.byteOffset, val.byteLength)
if (buf.length === val.byteLength) {
return buf
}
@ -90,13 +90,13 @@ function prepareObject(val, seen) {
}
function dateToString(date) {
var offset = -date.getTimezoneOffset()
let offset = -date.getTimezoneOffset()
var year = date.getFullYear()
var isBCYear = year < 1
let year = date.getFullYear()
const isBCYear = year < 1
if (isBCYear) year = Math.abs(year) + 1 // negative years are 1 off their BC representation
var ret =
let ret =
String(year).padStart(4, '0') +
'-' +
String(date.getMonth() + 1).padStart(2, '0') +
@ -124,11 +124,11 @@ function dateToString(date) {
}
function dateToStringUTC(date) {
var year = date.getUTCFullYear()
var isBCYear = year < 1
let year = date.getUTCFullYear()
const isBCYear = year < 1
if (isBCYear) year = Math.abs(year) + 1 // negative years are 1 off their BC representation
var ret =
let ret =
String(year).padStart(4, '0') +
'-' +
String(date.getUTCMonth() + 1).padStart(2, '0') +
@ -170,11 +170,11 @@ const escapeIdentifier = function (str) {
}
const escapeLiteral = function (str) {
var hasBackslash = false
var escaped = "'"
let hasBackslash = false
let escaped = "'"
for (var i = 0; i < str.length; i++) {
var c = str[i]
for (let i = 0; i < str.length; i++) {
const c = str[i]
if (c === "'") {
escaped += c + c
} else if (c === '\\') {

View File

@ -1,8 +1,8 @@
'use strict'
var args = require('../test/cli')
var pg = require('../lib')
const args = require('../test/cli')
const pg = require('../lib')
var people = [
const people = [
{ name: 'Aaron', age: 10 },
{ name: 'Brian', age: 20 },
{ name: 'Chris', age: 30 },
@ -32,7 +32,7 @@ var people = [
]
async function run() {
var con = new pg.Client({
const con = new pg.Client({
user: args.user,
password: args.password,
host: args.host,

View File

@ -1,11 +1,11 @@
'use strict'
var pg = require('../lib')
var args = require('../test/cli')
const pg = require('../lib')
const args = require('../test/cli')
var queries = ['select CURRENT_TIMESTAMP', "select interval '1 day' + interval '1 hour'", "select TIMESTAMP 'today'"]
const queries = ['select CURRENT_TIMESTAMP', "select interval '1 day' + interval '1 hour'", "select TIMESTAMP 'today'"]
queries.forEach(function (query) {
var client = new pg.Client({
const client = new pg.Client({
user: args.user,
database: args.database,
password: args.password,

View File

@ -3,7 +3,7 @@
const BufferList = function () {
this.buffers = []
}
var p = BufferList.prototype
const p = BufferList.prototype
p.add = function (buffer, front) {
this.buffers[front ? 'unshift' : 'push'](buffer)
@ -28,16 +28,16 @@ p.addInt32 = function (val, first) {
}
p.addCString = function (val, front) {
var len = Buffer.byteLength(val)
var buffer = Buffer.alloc(len + 1)
const len = Buffer.byteLength(val)
const buffer = Buffer.alloc(len + 1)
buffer.write(val)
buffer[len] = 0
return this.add(buffer, front)
}
p.addString = function (val, front) {
var len = Buffer.byteLength(val)
var buffer = Buffer.alloc(len)
const len = Buffer.byteLength(val)
const buffer = Buffer.alloc(len)
buffer.write(val)
return this.add(buffer, front)
}
@ -47,7 +47,7 @@ p.addChar = function (char, first) {
}
p.join = function (appendLength, char) {
var length = this.getByteLength()
let length = this.getByteLength()
if (appendLength) {
this.addInt32(length + 4, true)
return this.join(false, char)
@ -56,8 +56,8 @@ p.join = function (appendLength, char) {
this.addChar(char, true)
length++
}
var result = Buffer.alloc(length)
var index = 0
const result = Buffer.alloc(length)
let index = 0
this.buffers.forEach(function (buffer) {
buffer.copy(result, index, 0)
index += buffer.length

View File

@ -1,8 +1,8 @@
'use strict'
var ConnectionParameters = require('../lib/connection-parameters')
var config = new ConnectionParameters(process.argv[2])
const ConnectionParameters = require('../lib/connection-parameters')
const config = new ConnectionParameters(process.argv[2])
for (var i = 0; i < process.argv.length; i++) {
for (let i = 0; i < process.argv.length; i++) {
switch (process.argv[i].toLowerCase()) {
case 'native':
config.native = true

View File

@ -1,9 +1,9 @@
'use strict'
var helper = require('../test-helper')
var pg = helper.pg
const helper = require('../test-helper')
const pg = helper.pg
const assert = require('assert')
var suite = new helper.Suite()
const suite = new helper.Suite()
suite.test('null and undefined are both inserted as NULL', function (done) {
const pool = new pg.Pool()
@ -180,7 +180,7 @@ suite.test('executing nested queries', function (done) {
})
suite.test('raises error if cannot connect', function () {
var connectionString = 'pg://sfalsdkf:asdf@localhost/ieieie'
const connectionString = 'pg://sfalsdkf:asdf@localhost/ieieie'
const pool = new pg.Pool({ connectionString: connectionString })
pool.connect(
assert.calls(function (err, client, done) {
@ -213,7 +213,7 @@ suite.test('callback is fired once and only once', function (done) {
assert.calls(function (err, client, release) {
assert(!err)
client.query('CREATE TEMP TABLE boom(name varchar(10))')
var callCount = 0
let callCount = 0
client.query(
[
"INSERT INTO boom(name) VALUES('hai')",
@ -256,7 +256,7 @@ suite.test('can provide callback and config and parameters', function (done) {
pool.connect(
assert.calls(function (err, client, release) {
assert(!err)
var config = {
const config = {
text: 'select $1::text as val',
}
client.query(

View File

@ -1,24 +1,24 @@
'use strict'
var helper = require('./test-helper')
var Client = helper.Client
const helper = require('./test-helper')
const Client = helper.Client
const assert = require('assert')
var suite = new helper.Suite()
const suite = new helper.Suite()
var conInfo = helper.config
const conInfo = helper.config
function getConInfo(override) {
return Object.assign({}, conInfo, override)
}
function getAppName(conf, cb) {
var client = new Client(conf)
const client = new Client(conf)
client.connect(
assert.success(function () {
client.query(
'SHOW application_name',
assert.success(function (res) {
var appName = res.rows[0].application_name
const appName = res.rows[0].application_name
cb(appName)
client.end()
})
@ -35,8 +35,8 @@ suite.test('No default appliation_name ', function (done) {
})
suite.test('fallback_application_name is used', function (done) {
var fbAppName = 'this is my app'
var conf = getConInfo({
const fbAppName = 'this is my app'
const conf = getConInfo({
fallback_application_name: fbAppName,
})
getAppName(conf, function (res) {
@ -46,8 +46,8 @@ suite.test('fallback_application_name is used', function (done) {
})
suite.test('application_name is used', function (done) {
var appName = 'some wired !@#$% application_name'
var conf = getConInfo({
const appName = 'some wired !@#$% application_name'
const conf = getConInfo({
application_name: appName,
})
getAppName(conf, function (res) {
@ -57,9 +57,9 @@ suite.test('application_name is used', function (done) {
})
suite.test('application_name has precedence over fallback_application_name', function (done) {
var appName = 'some wired !@#$% application_name'
var fbAppName = 'some other strange $$test$$ appname'
var conf = getConInfo({
const appName = 'some wired !@#$% application_name'
const fbAppName = 'some other strange $$test$$ appname'
const conf = getConInfo({
application_name: appName,
fallback_application_name: fbAppName,
})
@ -70,9 +70,9 @@ suite.test('application_name has precedence over fallback_application_name', fun
})
suite.test('application_name from connection string', function (done) {
var appName = 'my app'
var conParams = require('../../../lib/connection-parameters')
var conf
const appName = 'my app'
const conParams = require('../../../lib/connection-parameters')
let conf
if (process.argv[2]) {
conf = new conParams(process.argv[2] + '?application_name=' + appName)
} else {
@ -87,7 +87,7 @@ suite.test('application_name from connection string', function (done) {
// TODO: make the test work for native client too
if (!helper.args.native) {
suite.test('application_name is read from the env', function (done) {
var appName = (process.env.PGAPPNAME = 'testest')
const appName = (process.env.PGAPPNAME = 'testest')
getAppName({}, function (res) {
delete process.env.PGAPPNAME
assert.strictEqual(res, appName)

View File

@ -1,9 +1,9 @@
'use strict'
var helper = require('./test-helper')
var pg = helper.pg
const helper = require('./test-helper')
const pg = helper.pg
const assert = require('assert')
var suite = new helper.Suite()
const suite = new helper.Suite()
const pool = new pg.Pool()
@ -16,7 +16,7 @@ pool.connect(
'SELECT $1::text[] as array',
[[null]],
assert.success(function (result) {
var array = result.rows[0].array
const array = result.rows[0].array
assert.lengthIs(array, 1)
assert.isNull(array[0])
done()
@ -25,9 +25,9 @@ pool.connect(
})
suite.test('elements containing JSON-escaped characters', function (done) {
var param = '\\"\\"'
let param = '\\"\\"'
for (var i = 1; i <= 0x1f; i++) {
for (let i = 1; i <= 0x1f; i++) {
param += String.fromCharCode(i)
}
@ -35,7 +35,7 @@ pool.connect(
'SELECT $1::text[] as array',
[[param]],
assert.success(function (result) {
var array = result.rows[0].array
const array = result.rows[0].array
assert.lengthIs(array, 1)
assert.equal(array[0], param)
done()
@ -70,7 +70,7 @@ pool.connect(
client.query(
'SELECT names FROM why',
assert.success(function (result) {
var names = result.rows[0].names
const names = result.rows[0].names
assert.lengthIs(names, 3)
assert.equal(names[0], 'aaron')
assert.equal(names[1], 'brian')
@ -84,7 +84,7 @@ pool.connect(
client.query(
"SELECT '{}'::text[] as names",
assert.success(function (result) {
var names = result.rows[0].names
const names = result.rows[0].names
assert.lengthIs(names, 0)
done()
})
@ -95,7 +95,7 @@ pool.connect(
client.query(
'SELECT \'{"joe,bob",jim}\'::text[] as names',
assert.success(function (result) {
var names = result.rows[0].names
const names = result.rows[0].names
assert.lengthIs(names, 2)
assert.equal(names[0], 'joe,bob')
assert.equal(names[1], 'jim')
@ -108,7 +108,7 @@ pool.connect(
client.query(
'SELECT \'{"{","}"}\'::text[] as names',
assert.success(function (result) {
var names = result.rows[0].names
const names = result.rows[0].names
assert.lengthIs(names, 2)
assert.equal(names[0], '{')
assert.equal(names[1], '}')
@ -121,7 +121,7 @@ pool.connect(
client.query(
'SELECT \'{joe,null,bob,"NULL"}\'::text[] as names',
assert.success(function (result) {
var names = result.rows[0].names
const names = result.rows[0].names
assert.lengthIs(names, 4)
assert.equal(names[0], 'joe')
assert.equal(names[1], null)
@ -136,7 +136,7 @@ pool.connect(
client.query(
"SELECT ARRAY['joe''', 'jim', 'bob\"'] AS names",
assert.success(function (result) {
var names = result.rows[0].names
const names = result.rows[0].names
assert.lengthIs(names, 3)
assert.equal(names[0], "joe'")
assert.equal(names[1], 'jim')
@ -150,7 +150,7 @@ pool.connect(
client.query(
"SELECT '{{1,joe},{2,bob}}'::text[] as names",
assert.success(function (result) {
var names = result.rows[0].names
const names = result.rows[0].names
assert.lengthIs(names, 2)
assert.lengthIs(names[0], 2)
@ -169,7 +169,7 @@ pool.connect(
client.query(
"SELECT '{1,2,3}'::integer[] as names",
assert.success(function (result) {
var names = result.rows[0].names
const names = result.rows[0].names
assert.lengthIs(names, 3)
assert.equal(names[0], 1)
assert.equal(names[1], 2)
@ -183,7 +183,7 @@ pool.connect(
client.query(
"SELECT '{{1,100},{2,100},{3,100}}'::integer[] as names",
assert.success(function (result) {
var names = result.rows[0].names
const names = result.rows[0].names
assert.lengthIs(names, 3)
assert.equal(names[0][0], 1)
assert.equal(names[0][1], 100)
@ -209,7 +209,7 @@ pool.connect(
],
],
assert.success(function (result) {
var names = result.rows[0].names
const names = result.rows[0].names
assert.lengthIs(names, 3)
assert.equal(names[0][0], 1)
assert.equal(names[0][1], 100)

View File

@ -1,6 +1,6 @@
'use strict'
var helper = require('../test-helper')
var pg = helper.pg
const helper = require('../test-helper')
const pg = helper.pg
process.on('unhandledRejection', function (e) {
console.error(e, e.stack)

File diff suppressed because one or more lines are too long

View File

@ -1,14 +1,14 @@
'use strict'
var helper = require('./test-helper')
var pg = helper.pg
const helper = require('./test-helper')
const pg = helper.pg
const assert = require('assert')
const { Client } = helper
var suite = new helper.Suite()
const suite = new helper.Suite()
// clear process.env
var realEnv = {}
for (var key in process.env) {
const realEnv = {}
for (const key in process.env) {
realEnv[key] = process.env[key]
if (!key.indexOf('PG')) delete process.env[key]
}
@ -30,7 +30,7 @@ suite.test('default values are used in new clients', function () {
parseInputDatesAsUTC: false,
})
var client = new pg.Client()
const client = new pg.Client()
assert.same(client, {
user: process.env.USER,
password: null,
@ -46,7 +46,7 @@ suite.test('modified values are passed to created clients', function () {
pg.defaults.port = 1234
pg.defaults.database = 'pow'
var client = new Client()
const client = new Client()
assert.same(client, {
user: 'boom',
password: 'zap',
@ -80,7 +80,7 @@ suite.test('database defaults to user when user is non-default', () => {
suite.test('cleanup', () => {
// restore process.env
for (var key in realEnv) {
for (const key in realEnv) {
process.env[key] = realEnv[key]
}
})

View File

@ -1,5 +1,5 @@
'use strict'
var helper = require('./test-helper')
const helper = require('./test-helper')
const suite = new helper.Suite()
const assert = require('assert')

View File

@ -1,14 +1,14 @@
'use strict'
var helper = require('./test-helper')
const helper = require('./test-helper')
var pg = helper.pg
const pg = helper.pg
const assert = require('assert')
const Client = pg.Client
const DatabaseError = pg.DatabaseError
var createErorrClient = function () {
var client = helper.client()
const createErorrClient = function () {
const client = helper.client()
client.once('error', function (err) {
assert.fail('Client shoud not throw error during query execution')
})
@ -78,7 +78,7 @@ suite.test('using a client after closing it results in error', (done) => {
})
suite.test('query receives error on client shutdown', function (done) {
var client = new Client()
const client = new Client()
client.connect(
assert.success(function () {
const config = {
@ -102,8 +102,8 @@ suite.test('query receives error on client shutdown', function (done) {
)
})
var ensureFuture = function (testClient, done) {
var goodQuery = testClient.query(new pg.Query('select age from boom'))
const ensureFuture = function (testClient, done) {
const goodQuery = testClient.query(new pg.Query('select age from boom'))
assert.emits(goodQuery, 'row', function (row) {
assert.equal(row.age, 28)
done()
@ -111,12 +111,12 @@ var ensureFuture = function (testClient, done) {
}
suite.test('when query is parsing', (done) => {
var client = createErorrClient()
const client = createErorrClient()
client.query({ text: 'CREATE TEMP TABLE boom(age integer); INSERT INTO boom (age) VALUES (28);' })
// this query wont parse since there isn't a table named bang
var query = client.query(
const query = client.query(
new pg.Query({
text: 'select * from bang where name = $1',
values: ['0'],
@ -129,11 +129,11 @@ suite.test('when query is parsing', (done) => {
})
suite.test('when a query is binding', function (done) {
var client = createErorrClient()
const client = createErorrClient()
client.query({ text: 'CREATE TEMP TABLE boom(age integer); INSERT INTO boom (age) VALUES (28);' })
var query = client.query(
const query = client.query(
new pg.Query({
text: 'select * from boom where age = $1',
values: ['asldkfjasdf'],
@ -150,7 +150,7 @@ suite.test('when a query is binding', function (done) {
})
suite.test('non-query error with callback', function (done) {
var client = new Client({
const client = new Client({
user: 'asldkfjsadlfkj',
})
client.connect(
@ -162,7 +162,7 @@ suite.test('non-query error with callback', function (done) {
})
suite.test('non-error calls supplied callback', function (done) {
var client = new Client({
const client = new Client({
user: helper.args.user,
password: helper.args.password,
host: helper.args.host,
@ -179,7 +179,7 @@ suite.test('non-error calls supplied callback', function (done) {
})
suite.test('when connecting to an invalid host with callback', function (done) {
var client = new Client({
const client = new Client({
user: 'very invalid username',
})
client.on('error', () => {
@ -192,7 +192,7 @@ suite.test('when connecting to an invalid host with callback', function (done) {
})
suite.test('when connecting to invalid host with promise', function (done) {
var client = new Client({
const client = new Client({
user: 'very invalid username',
})
client.on('error', () => {
@ -202,7 +202,7 @@ suite.test('when connecting to invalid host with promise', function (done) {
})
suite.test('non-query error', function (done) {
var client = new Client({
const client = new Client({
user: 'asldkfjsadlfkj',
})
client.connect().catch((e) => {
@ -212,9 +212,9 @@ suite.test('non-query error', function (done) {
})
suite.test('within a simple query', (done) => {
var client = createErorrClient()
const client = createErorrClient()
var query = client.query(new pg.Query("select eeeee from yodas_dsflsd where pixistix = 'zoiks!!!'"))
const query = client.query(new pg.Query("select eeeee from yodas_dsflsd where pixistix = 'zoiks!!!'"))
assert.emits(query, 'error', function (error) {
if (!helper.config.native) {

View File

@ -1,8 +1,8 @@
var pg = require('./test-helper').pg
const pg = require('./test-helper').pg
var sql = 'SELECT 1 AS "\\\'/*", 2 AS "\\\'*/\n + process.exit(-1)] = null;\n//"'
const sql = 'SELECT 1 AS "\\\'/*", 2 AS "\\\'*/\n + process.exit(-1)] = null;\n//"'
var client = new pg.Client()
const client = new pg.Client()
client.connect()
client.query(sql, function (err, res) {
if (err) throw err

View File

@ -1,11 +1,11 @@
'use strict'
var helper = require('./test-helper')
const helper = require('./test-helper')
const pool = new helper.pg.Pool()
const assert = require('assert')
pool.connect(
assert.success(function (client, done) {
var types = require('pg-types')
const types = require('pg-types')
// 1231 = numericOID
types.setTypeParser(1700, function () {
return 'yes'
@ -13,7 +13,7 @@ pool.connect(
types.setTypeParser(1700, 'binary', function () {
return 'yes'
})
var bignum = '294733346389144765940638005275322203805'
const bignum = '294733346389144765940638005275322203805'
client.query('CREATE TEMP TABLE bignumz(id numeric)')
client.query('INSERT INTO bignumz(id) VALUES ($1)', [bignum])
client.query(

View File

@ -1,18 +1,18 @@
'use strict'
var helper = require('./test-helper')
var Client = helper.Client
const helper = require('./test-helper')
const Client = helper.Client
const assert = require('assert')
var suite = new helper.Suite()
const suite = new helper.Suite()
var conInfo = helper.config
const conInfo = helper.config
function getConInfo(override) {
return Object.assign({}, conInfo, override)
}
function testClientVersion(cb) {
var client = new Client({})
const client = new Client({})
client.connect(
assert.success(function () {
helper.versionGTE(
@ -37,13 +37,13 @@ function testClientVersion(cb) {
}
function getIdleTransactionSessionTimeout(conf, cb) {
var client = new Client(conf)
const client = new Client(conf)
client.connect(
assert.success(function () {
client.query(
'SHOW idle_in_transaction_session_timeout',
assert.success(function (res) {
var timeout = res.rows[0].idle_in_transaction_session_timeout
const timeout = res.rows[0].idle_in_transaction_session_timeout
cb(timeout)
client.end()
})
@ -64,7 +64,7 @@ if (!helper.args.native) {
})
suite.test('idle_in_transaction_session_timeout integer is used', function (done) {
var conf = getConInfo({
const conf = getConInfo({
idle_in_transaction_session_timeout: 3000,
})
getIdleTransactionSessionTimeout(conf, function (res) {
@ -74,7 +74,7 @@ if (!helper.args.native) {
})
suite.test('idle_in_transaction_session_timeout float is used', function (done) {
var conf = getConInfo({
const conf = getConInfo({
idle_in_transaction_session_timeout: 3000.7,
})
getIdleTransactionSessionTimeout(conf, function (res) {
@ -84,7 +84,7 @@ if (!helper.args.native) {
})
suite.test('idle_in_transaction_session_timeout string is used', function (done) {
var conf = getConInfo({
const conf = getConInfo({
idle_in_transaction_session_timeout: '3000',
})
getIdleTransactionSessionTimeout(conf, function (res) {

View File

@ -1,6 +1,6 @@
'use strict'
var helper = require('./test-helper')
var assert = require('assert')
const helper = require('./test-helper')
const assert = require('assert')
const pool = new helper.pg.Pool()
pool.connect(
@ -15,14 +15,14 @@ pool.connect(
return pool.end()
}
client.query('CREATE TEMP TABLE stuff(id SERIAL PRIMARY KEY, data JSON)')
var value = { name: 'Brian', age: 250, alive: true, now: new Date() }
const value = { name: 'Brian', age: 250, alive: true, now: new Date() }
client.query('INSERT INTO stuff (data) VALUES ($1)', [value])
client.query(
'SELECT * FROM stuff',
assert.success(function (result) {
assert.equal(result.rows.length, 1)
assert.equal(typeof result.rows[0].data, 'object')
var row = result.rows[0].data
const row = result.rows[0].data
assert.strictEqual(row.name, value.name)
assert.strictEqual(row.age, value.age)
assert.strictEqual(row.alive, value.alive)

View File

@ -1,12 +1,12 @@
'use strict'
var buffers = require('../../test-buffers')
var helper = require('./test-helper')
var suite = new helper.Suite()
const buffers = require('../../test-buffers')
const helper = require('./test-helper')
const suite = new helper.Suite()
const assert = require('assert')
var net = require('net')
const net = require('net')
var Server = function (response) {
const Server = function (response) {
this.server = undefined
this.socket = undefined
this.response = response
@ -58,11 +58,11 @@ Server.prototype.close = function (cb) {
this.server.close(cb)
}
var testServer = function (server, cb) {
const testServer = function (server, cb) {
// wait for our server to start
server.start(function (options) {
// connect a client to it
var client = new helper.Client(options)
const client = new helper.Client(options)
client.connect().catch((err) => {
assert(err instanceof Error)
clearTimeout(timeoutId)
@ -77,7 +77,7 @@ var testServer = function (server, cb) {
})
// blow up if we don't receive an error
var timeoutId = setTimeout(function () {
const timeoutId = setTimeout(function () {
throw new Error('Client should have emitted an error but it did not.')
}, 5000)
})

View File

@ -1,10 +1,10 @@
'use strict'
var helper = require('./test-helper')
const helper = require('./test-helper')
const suite = new helper.Suite()
const assert = require('assert')
suite.test('noData message handling', function () {
var client = helper.client()
const client = helper.client()
client.query({
name: 'boom',
@ -37,7 +37,7 @@ suite.test('noData message handling', function () {
values: [101],
},
(err, res) => {
var row = res.rows[0]
const row = res.rows[0]
assert.strictEqual(row.size, 100)
}
)

View File

@ -1,12 +1,12 @@
'use strict'
var helper = require('./test-helper')
var pg = helper.pg
const helper = require('./test-helper')
const pg = helper.pg
const suite = new helper.Suite()
const pool = new pg.Pool()
const assert = require('assert')
suite.test('can access results when no rows are returned', function (done) {
var checkResult = function (result) {
const checkResult = function (result) {
assert(result.fields, 'should have fields definition')
assert.equal(result.fields.length, 1)
assert.equal(result.fields[0].name, 'val')
@ -16,7 +16,7 @@ suite.test('can access results when no rows are returned', function (done) {
pool.connect(
assert.success(function (client, release) {
const q = new pg.Query('select $1::text as val limit 0', ['hi'])
var query = client.query(
const query = client.query(
q,
assert.success(function (result) {
checkResult(result)

View File

@ -1,7 +1,7 @@
'use strict'
var helper = require('../test-helper')
var pg = helper.pg
const helper = require('../test-helper')
const pg = helper.pg
const suite = new helper.Suite()
const assert = require('assert')

View File

@ -1,18 +1,18 @@
'use strict'
var helper = require('./test-helper')
var Query = helper.pg.Query
const helper = require('./test-helper')
const Query = helper.pg.Query
const assert = require('assert')
var suite = new helper.Suite()
const suite = new helper.Suite()
;(function () {
var client = helper.client()
const client = helper.client()
client.on('drain', client.end.bind(client))
var queryName = 'user by age and like name'
const queryName = 'user by age and like name'
suite.test('first named prepared statement', function (done) {
var query = client.query(
const query = client.query(
new Query({
text: 'select name from person where age <= $1 and name LIKE $2',
values: [20, 'Bri%'],
@ -28,7 +28,7 @@ var suite = new helper.Suite()
})
suite.test('second named prepared statement with same name & text', function (done) {
var cachedQuery = client.query(
const cachedQuery = client.query(
new Query({
text: 'select name from person where age <= $1 and name LIKE $2',
name: queryName,
@ -44,7 +44,7 @@ var suite = new helper.Suite()
})
suite.test('with same name, but without query text', function (done) {
var q = client.query(
const q = client.query(
new Query({
name: queryName,
values: [30, '%n%'],
@ -81,12 +81,12 @@ var suite = new helper.Suite()
})
})()
;(function () {
var statementName = 'differ'
var statement1 = 'select count(*)::int4 as count from person'
var statement2 = 'select count(*)::int4 as count from person where age < $1'
const statementName = 'differ'
const statement1 = 'select count(*)::int4 as count from person'
const statement2 = 'select count(*)::int4 as count from person where age < $1'
var client1 = helper.client()
var client2 = helper.client()
const client1 = helper.client()
const client2 = helper.client()
suite.test('client 1 execution', function (done) {
client1.query(
@ -103,7 +103,7 @@ var suite = new helper.Suite()
})
suite.test('client 2 execution', function (done) {
var query = client2.query(
const query = client2.query(
new Query({
name: statementName,
text: statement2,
@ -125,13 +125,13 @@ var suite = new helper.Suite()
})
})()
;(function () {
var client = helper.client()
const client = helper.client()
client.query('CREATE TEMP TABLE zoom(name varchar(100));')
client.query("INSERT INTO zoom (name) VALUES ('zed')")
client.query("INSERT INTO zoom (name) VALUES ('postgres')")
client.query("INSERT INTO zoom (name) VALUES ('node postgres')")
var checkForResults = function (q) {
const checkForResults = function (q) {
assert.emits(q, 'row', function (row) {
assert.equal(row.name, 'node postgres')
@ -146,7 +146,7 @@ var suite = new helper.Suite()
}
suite.test('with small row count', function (done) {
var query = client.query(
const query = client.query(
new Query(
{
name: 'get names',
@ -161,7 +161,7 @@ var suite = new helper.Suite()
})
suite.test('with large row count', function (done) {
var query = client.query(
const query = client.query(
new Query(
{
name: 'get names',

View File

@ -1,7 +1,7 @@
'use strict'
var bluebird = require('bluebird')
var helper = require('../test-helper')
var pg = helper.pg
const bluebird = require('bluebird')
const helper = require('../test-helper')
const pg = helper.pg
const assert = require('assert')
process.on('unhandledRejection', function (e) {

View File

@ -1,6 +1,6 @@
'use strict'
var helper = require('../test-helper')
var pg = helper.pg
const helper = require('../test-helper')
const pg = helper.pg
const assert = require('assert')
new helper.Suite().test('support for complex column names', function () {

View File

@ -1,24 +1,24 @@
'use strict'
var helper = require('./test-helper')
var Query = helper.pg.Query
const helper = require('./test-helper')
const Query = helper.pg.Query
const { Client } = helper
const assert = require('assert')
var suite = new helper.Suite()
const suite = new helper.Suite()
suite.test('client end during query execution of prepared statement', function (done) {
var client = new Client()
const client = new Client()
client.connect(
assert.success(function () {
var sleepQuery = 'select pg_sleep($1)'
const sleepQuery = 'select pg_sleep($1)'
var queryConfig = {
const queryConfig = {
name: 'sleep query',
text: sleepQuery,
values: [5],
}
var queryInstance = new Query(
const queryInstance = new Query(
queryConfig,
assert.calls(function (err, result) {
assert.equal(err.message, 'Connection terminated')
@ -26,7 +26,7 @@ suite.test('client end during query execution of prepared statement', function (
})
)
var query1 = client.query(queryInstance)
const query1 = client.query(queryInstance)
query1.on('error', function (err) {
assert.fail('Prepared statement should not emit error')
@ -46,9 +46,9 @@ suite.test('client end during query execution of prepared statement', function (
})
function killIdleQuery(targetQuery, cb) {
var client2 = new Client(helper.args)
var pidColName = 'procpid'
var queryColName = 'current_query'
const client2 = new Client(helper.args)
let pidColName = 'procpid'
let queryColName = 'current_query'
client2.connect(
assert.success(function () {
helper.versionGTE(
@ -59,7 +59,7 @@ function killIdleQuery(targetQuery, cb) {
pidColName = 'pid'
queryColName = 'query'
}
var killIdleQuery =
const killIdleQuery =
'SELECT ' +
pidColName +
', (SELECT pg_terminate_backend(' +
@ -87,10 +87,10 @@ suite.test('query killed during query execution of prepared statement', function
if (helper.args.native) {
return done()
}
var client = new Client(helper.args)
const client = new Client(helper.args)
client.connect(
assert.success(function () {
var sleepQuery = 'select pg_sleep($1)'
const sleepQuery = 'select pg_sleep($1)'
const queryConfig = {
name: 'sleep query',
@ -101,7 +101,7 @@ suite.test('query killed during query execution of prepared statement', function
// client should emit an error because it is unexpectedly disconnected
assert.emits(client, 'error')
var query1 = client.query(
const query1 = client.query(
new Query(queryConfig),
assert.calls(function (err, result) {
assert.equal(err.message, 'terminating connection due to administrator command')

View File

@ -1,19 +1,19 @@
'use strict'
var helper = require('./test-helper')
var Query = helper.pg.Query
var DatabaseError = helper.pg.DatabaseError
const helper = require('./test-helper')
const Query = helper.pg.Query
const DatabaseError = helper.pg.DatabaseError
const assert = require('assert')
const { Client } = helper
const suite = new helper.Suite()
suite.test('error during query execution', function () {
var client = new Client(helper.args)
const client = new Client(helper.args)
client.connect(
assert.success(function () {
var queryText = 'select pg_sleep(10)'
var sleepQuery = new Query(queryText)
var pidColName = 'procpid'
var queryColName = 'current_query'
const queryText = 'select pg_sleep(10)'
const sleepQuery = new Query(queryText)
let pidColName = 'procpid'
let queryColName = 'current_query'
helper.versionGTE(
client,
90200,
@ -22,7 +22,7 @@ suite.test('error during query execution', function () {
pidColName = 'pid'
queryColName = 'query'
}
var query1 = client.query(
const query1 = client.query(
sleepQuery,
assert.calls(function (err, result) {
assert(err)
@ -36,10 +36,10 @@ suite.test('error during query execution', function () {
assert.fail('Query with an error should not emit "end" event')
})
setTimeout(function () {
var client2 = new Client(helper.args)
const client2 = new Client(helper.args)
client2.connect(
assert.success(function () {
var killIdleQuery = `SELECT ${pidColName}, (SELECT pg_cancel_backend(${pidColName})) AS killed FROM pg_stat_activity WHERE ${queryColName} LIKE $1`
const killIdleQuery = `SELECT ${pidColName}, (SELECT pg_cancel_backend(${pidColName})) AS killed FROM pg_stat_activity WHERE ${queryColName} LIKE $1`
client2.query(
killIdleQuery,
[queryText],
@ -64,7 +64,7 @@ if (helper.config.native) {
}
suite.test('9.3 column error fields', function () {
var client = new Client(helper.args)
const client = new Client(helper.args)
client.connect(
assert.success(function () {
helper.versionGTE(
@ -93,7 +93,7 @@ suite.test('9.3 column error fields', function () {
})
suite.test('9.3 constraint error fields', function () {
var client = new Client(helper.args)
const client = new Client(helper.args)
client.connect(
assert.success(function () {
helper.versionGTE(

View File

@ -1,8 +1,8 @@
'use strict'
// test for issue #320
//
var helper = require('./test-helper')
const helper = require('./test-helper')
var client = new helper.pg.Client(helper.config)
const client = new helper.pg.Client(helper.config)
client.connect()
client.end()

View File

@ -1,6 +1,6 @@
'use strict'
var helper = require('./test-helper')
var pg = helper.pg
const helper = require('./test-helper')
const pg = helper.pg
const assert = require('assert')
const pool = new pg.Pool()

View File

@ -1,16 +1,16 @@
'use strict'
var util = require('util')
var helper = require('./test-helper')
const util = require('util')
const helper = require('./test-helper')
const assert = require('assert')
const suite = new helper.Suite()
var Client = helper.Client
const Client = helper.Client
var conInfo = helper.config
const conInfo = helper.config
suite.test('returns results as array', function () {
var client = new Client(conInfo)
var checkRow = function (row) {
const client = new Client(conInfo)
const checkRow = function (row) {
assert(util.isArray(row), 'row should be an array')
assert.equal(row.length, 4)
assert.equal(row[0].getFullYear(), new Date().getFullYear())
@ -20,7 +20,7 @@ suite.test('returns results as array', function () {
}
client.connect(
assert.success(function () {
var config = {
const config = {
text: 'SELECT NOW(), 1::int, $1::text, null',
values: ['hai'],
rowMode: 'array',

View File

@ -1,16 +1,16 @@
'use strict'
var helper = require('./test-helper')
const helper = require('./test-helper')
const assert = require('assert')
const suite = new helper.Suite()
var Client = helper.Client
const Client = helper.Client
var conInfo = helper.config
const conInfo = helper.config
var checkResult = function (result) {
const checkResult = function (result) {
assert(result.fields)
assert.equal(result.fields.length, 3)
var fields = result.fields
const fields = result.fields
assert.equal(fields[0].name, 'now')
assert.equal(fields[1].name, 'num')
assert.equal(fields[2].name, 'texty')
@ -20,7 +20,7 @@ var checkResult = function (result) {
}
suite.test('row descriptions on result object', function () {
var client = new Client(conInfo)
const client = new Client(conInfo)
client.connect(
assert.success(function () {
client.query(
@ -36,7 +36,7 @@ suite.test('row descriptions on result object', function () {
})
suite.test('row description on no rows', function () {
var client = new Client(conInfo)
const client = new Client(conInfo)
client.connect(
assert.success(function () {
client.query(

View File

@ -1,28 +1,28 @@
'use strict'
var helper = require('./test-helper')
var Query = helper.pg.Query
const helper = require('./test-helper')
const Query = helper.pg.Query
const assert = require('assert')
const suite = new helper.Suite()
const test = suite.test.bind(suite)
// before running this test make sure you run the script create-test-tables
test('simple query interface', function () {
var client = helper.client()
const client = helper.client()
var query = client.query(new Query('select name from person order by name collate "C"'))
const query = client.query(new Query('select name from person order by name collate "C"'))
client.on('drain', client.end.bind(client))
var rows = []
const rows = []
query.on('row', function (row, result) {
assert.ok(result)
rows.push(row['name'])
})
query.once('row', function (row) {
test('Can iterate through columns', function () {
var columnCount = 0
let columnCount = 0
// eslint-disable-next-line @typescript-eslint/no-unused-vars
for (var column in row) {
for (const column in row) {
columnCount++
}
if ('length' in row) {
@ -47,11 +47,11 @@ test('simple query interface', function () {
})
test('prepared statements do not mutate params', function () {
var client = helper.client()
const client = helper.client()
var params = [1]
const params = [1]
var query = client.query(new Query('select name from person where $1 = 1 order by name collate "C"', params))
const query = client.query(new Query('select name from person where $1 = 1 order by name collate "C"', params))
assert.deepEqual(params, [1])
@ -72,10 +72,10 @@ test('prepared statements do not mutate params', function () {
})
test('multiple simple queries', function () {
var client = helper.client()
const client = helper.client()
client.query({ text: "create temp table bang(id serial, name varchar(5));insert into bang(name) VALUES('boom');" })
client.query("insert into bang(name) VALUES ('yes');")
var query = client.query(new Query('select name from bang'))
const query = client.query(new Query('select name from bang'))
assert.emits(query, 'row', function (row) {
assert.equal(row['name'], 'boom')
assert.emits(query, 'row', function (row) {
@ -86,12 +86,12 @@ test('multiple simple queries', function () {
})
test('multiple select statements', function () {
var client = helper.client()
const client = helper.client()
client.query(
'create temp table boom(age integer); insert into boom(age) values(1); insert into boom(age) values(2); insert into boom(age) values(3)'
)
client.query({ text: "create temp table bang(name varchar(5)); insert into bang(name) values('zoom');" })
var result = client.query(new Query({ text: 'select age from boom where age < 2; select name from bang' }))
const result = client.query(new Query({ text: 'select age from boom where age < 2; select name from bang' }))
assert.emits(result, 'row', function (row) {
assert.strictEqual(row['age'], 1)
assert.emits(result, 'row', function (row) {

View File

@ -1,24 +1,24 @@
'use strict'
var helper = require('./test-helper')
var Client = helper.Client
const helper = require('./test-helper')
const Client = helper.Client
const assert = require('assert')
var suite = new helper.Suite()
const suite = new helper.Suite()
var conInfo = helper.config
const conInfo = helper.config
function getConInfo(override) {
return Object.assign({}, conInfo, override)
}
function getStatementTimeout(conf, cb) {
var client = new Client(conf)
const client = new Client(conf)
client.connect(
assert.success(function () {
client.query(
'SHOW statement_timeout',
assert.success(function (res) {
var statementTimeout = res.rows[0].statement_timeout
const statementTimeout = res.rows[0].statement_timeout
cb(statementTimeout)
client.end()
})
@ -38,7 +38,7 @@ if (!helper.args.native) {
})
suite.test('statement_timeout integer is used', function (done) {
var conf = getConInfo({
const conf = getConInfo({
statement_timeout: 3000,
})
getStatementTimeout(conf, function (res) {
@ -48,7 +48,7 @@ if (!helper.args.native) {
})
suite.test('statement_timeout float is used', function (done) {
var conf = getConInfo({
const conf = getConInfo({
statement_timeout: 3000.7,
})
getStatementTimeout(conf, function (res) {
@ -58,7 +58,7 @@ if (!helper.args.native) {
})
suite.test('statement_timeout string is used', function (done) {
var conf = getConInfo({
const conf = getConInfo({
statement_timeout: '3000',
})
getStatementTimeout(conf, function (res) {
@ -68,10 +68,10 @@ if (!helper.args.native) {
})
suite.test('statement_timeout actually cancels long running queries', function (done) {
var conf = getConInfo({
const conf = getConInfo({
statement_timeout: '10', // 10ms to keep tests running fast
})
var client = new Client(conf)
const client = new Client(conf)
client.connect(
assert.success(function () {
client.query('SELECT pg_sleep( 1 )', function (error) {

View File

@ -1,4 +1,4 @@
'use strict'
var helper = require('./../test-helper')
const helper = require('./../test-helper')
module.exports = helper

View File

@ -1,11 +1,11 @@
'use strict'
var helper = require('./../test-helper')
const helper = require('./../test-helper')
const assert = require('assert')
var oldTz = process.env.TZ
const oldTz = process.env.TZ
process.env.TZ = 'Europe/Berlin'
var date = new Date()
const date = new Date()
const pool = new helper.pg.Pool()
const suite = new helper.Suite()

View File

@ -1,5 +1,5 @@
'use strict'
var helper = require('./test-helper')
const helper = require('./test-helper')
const suite = new helper.Suite()
const pg = helper.pg
const assert = require('assert')
@ -9,7 +9,7 @@ client.connect(
assert.success(function () {
client.query('begin')
var getZed = {
const getZed = {
text: 'SELECT * FROM person WHERE name = $1',
values: ['Zed'],
}

View File

@ -1,10 +1,10 @@
'use strict'
var helper = require('./test-helper')
var pg = helper.pg
const helper = require('./test-helper')
const pg = helper.pg
const suite = new helper.Suite()
const assert = require('assert')
var testForTypeCoercion = function (type) {
const testForTypeCoercion = function (type) {
const pool = new pg.Pool()
suite.test(`test type coercion ${type.name}`, (cb) => {
pool.connect(function (err, client, done) {
@ -23,7 +23,7 @@ var testForTypeCoercion = function (type) {
})
)
var query = client.query(
const query = client.query(
new pg.Query({
name: 'get type ' + type.name,
text: 'select col from test_type',
@ -39,8 +39,8 @@ var testForTypeCoercion = function (type) {
query,
'row',
function (row) {
var expected = val + ' (' + typeof val + ')'
var returned = row.col + ' (' + typeof row.col + ')'
const expected = val + ' (' + typeof val + ')'
const returned = row.col + ' (' + typeof row.col + ')'
assert.strictEqual(row.col, val, 'expected ' + type.name + ' of ' + expected + ' but got ' + returned)
},
'row should have been called for ' + type.name + ' of ' + val
@ -59,7 +59,7 @@ var testForTypeCoercion = function (type) {
})
}
var types = [
let types = [
{
name: 'integer',
values: [-2147483648, -1, 0, 1, 2147483647, null],
@ -141,15 +141,15 @@ types.forEach(function (type) {
})
suite.test('timestamptz round trip', function (cb) {
var now = new Date()
var client = helper.client()
const now = new Date()
const client = helper.client()
client.query('create temp table date_tests(name varchar(10), tstz timestamptz(3))')
client.query({
text: 'insert into date_tests(name, tstz)VALUES($1, $2)',
name: 'add date',
values: ['now', now],
})
var result = client.query(
const result = client.query(
new pg.Query({
name: 'get date',
text: 'select * from date_tests where name = $1',
@ -158,7 +158,7 @@ suite.test('timestamptz round trip', function (cb) {
)
assert.emits(result, 'row', function (row) {
var date = row.tstz
const date = row.tstz
assert.equal(date.getYear(), now.getYear())
assert.equal(date.getMonth(), now.getMonth())
assert.equal(date.getDate(), now.getDate())
@ -196,7 +196,7 @@ suite.test('selecting nulls', (cb) => {
})
suite.test('date range extremes', function (done) {
var client = helper.client()
const client = helper.client()
// Set the server timeszone to the same as used for the test,
// otherwise (if server's timezone is ahead of GMT) in

View File

@ -1,9 +1,9 @@
'use strict'
var helper = require('./test-helper')
const helper = require('./test-helper')
const assert = require('assert')
function testTypeParser(client, expectedResult, done) {
var boolValue = true
const boolValue = true
client.query('CREATE TEMP TABLE parserOverrideTest(id bool)')
client.query('INSERT INTO parserOverrideTest(id) VALUES ($1)', [boolValue])
client.query(
@ -20,7 +20,7 @@ pool.connect(
assert.success(function (client1, done1) {
pool.connect(
assert.success(function (client2, done2) {
var boolTypeOID = 16
const boolTypeOID = 16
client1.setTypeParser(boolTypeOID, function () {
return 'first client'
})

View File

@ -11,7 +11,7 @@ const testPoolSize = function (max) {
let count = 0
return new Promise((resolve) => {
for (var i = 0; i < max; i++) {
for (let i = 0; i < max; i++) {
pool.connect(function (err, client, release) {
assert(!err)
client.query('SELECT * FROM NOW()')

View File

@ -1,5 +1,5 @@
'use strict'
var helper = require('./test-helper')
const helper = require('./test-helper')
const pg = helper.pg
const native = helper.args.native
const assert = require('assert')
@ -23,9 +23,9 @@ suite.test('errors emitted on checked-out clients', (cb) => {
client2,
90200,
assert.success(function (isGreater) {
var killIdleQuery =
let killIdleQuery =
'SELECT pid, (SELECT pg_terminate_backend(pid)) AS killed FROM pg_stat_activity WHERE state = $1'
var params = ['idle']
let params = ['idle']
if (!isGreater) {
killIdleQuery =
'SELECT procpid, (SELECT pg_terminate_backend(procpid)) AS killed FROM pg_stat_activity WHERE current_query LIKE $1'

View File

@ -1,5 +1,5 @@
'use strict'
var helper = require('./test-helper')
const helper = require('./test-helper')
const assert = require('assert')
new helper.Suite().test('idle timeout', function () {

View File

@ -1,10 +1,10 @@
'use strict'
var helper = require('./../test-helper')
var pg = helper.pg
var native = helper.args.native
const helper = require('./../test-helper')
const pg = helper.pg
const native = helper.args.native
const assert = require('assert')
var pool = new pg.Pool()
const pool = new pg.Pool()
pool.connect(
assert.calls(function (err, client, done) {

View File

@ -1,4 +1,4 @@
'use strict'
var helper = require('./../test-helper')
const helper = require('./../test-helper')
module.exports = helper

View File

@ -1,17 +1,17 @@
'use strict'
var helper = require('./test-helper')
var co = require('co')
const helper = require('./test-helper')
const co = require('co')
const assert = require('assert')
const pool = new helper.pg.Pool()
new helper.Suite().test(
'using coroutines works with promises',
co.wrap(function* () {
var client = yield pool.connect()
var res = yield client.query('SELECT $1::text as name', ['foo'])
const client = yield pool.connect()
const res = yield client.query('SELECT $1::text as name', ['foo'])
assert.equal(res.rows[0].name, 'foo')
var threw = false
let threw = false
try {
yield client.query('SELECT LKDSJDSLKFJ')
} catch (e) {

View File

@ -1,8 +1,8 @@
'use strict'
var helper = require('./test-helper')
var Query = helper.pg.Query
var suite = new helper.Suite()
const helper = require('./test-helper')
const Query = helper.pg.Query
const suite = new helper.Suite()
const assert = require('assert')
const Pool = helper.pg.Pool
@ -22,9 +22,9 @@ suite.test('no domain', function (cb) {
suite.test('with domain', function (cb) {
assert(!process.domain)
const pool = new Pool()
var domain = require('domain').create()
const domain = require('domain').create()
domain.run(function () {
var startingDomain = process.domain
const startingDomain = process.domain
assert(startingDomain)
pool.connect(
assert.success(function (client, done) {
@ -46,7 +46,7 @@ suite.test('with domain', function (cb) {
})
suite.test('error on domain', function (cb) {
var domain = require('domain').create()
const domain = require('domain').create()
const pool = new Pool()
domain.on('error', function () {
pool.end(cb)

View File

@ -1,6 +1,6 @@
'use strict'
var helper = require('../test-helper')
var exec = require('child_process').exec
const helper = require('../test-helper')
const exec = require('child_process').exec
const assert = require('assert')
helper.pg.defaults.poolIdleTimeout = 1000
@ -14,8 +14,8 @@ pool.connect(function (err, client, done) {
})
client.query('SELECT pg_backend_pid()', function (err, result) {
assert.ifError(err)
var pid = result.rows[0].pg_backend_pid
var psql = 'psql'
const pid = result.rows[0].pg_backend_pid
let psql = 'psql'
if (helper.args.host) psql = psql + ' -h ' + helper.args.host
if (helper.args.port) psql = psql + ' -p ' + helper.args.port
if (helper.args.user) psql = psql + ' -U ' + helper.args.user

Some files were not shown because too many files have changed in this diff Show More