mirror of
https://github.com/brianc/node-postgres.git
synced 2025-12-08 20:16:25 +00:00
Remove promise-interop from native query
This commit is contained in:
parent
55c3b3691c
commit
bc2f550402
@ -119,9 +119,14 @@ Client.prototype.query = function(config, values, callback) {
|
||||
}
|
||||
|
||||
var query = new NativeQuery(config, values, callback);
|
||||
var result = query.callback ? query : new global.Promise(function(resolve, reject) {
|
||||
query.on('end', resolve);
|
||||
query.on('error', reject);
|
||||
});
|
||||
|
||||
this._queryQueue.push(query);
|
||||
this._pulseQueryQueue();
|
||||
return query;
|
||||
return result;
|
||||
};
|
||||
|
||||
//disconnect from the backend server
|
||||
|
||||
@ -34,23 +34,6 @@ var NativeQuery = module.exports = function(config, values, callback) {
|
||||
|
||||
util.inherits(NativeQuery, EventEmitter);
|
||||
|
||||
NativeQuery.prototype.then = function(onSuccess, onFailure) {
|
||||
return this.promise().then(onSuccess, onFailure);
|
||||
};
|
||||
|
||||
NativeQuery.prototype.catch = function(callback) {
|
||||
return this.promise().catch(callback);
|
||||
};
|
||||
|
||||
NativeQuery.prototype.promise = function() {
|
||||
if (this._promise) return this._promise;
|
||||
this._promise = new Promise(function(resolve, reject) {
|
||||
this.once('end', resolve);
|
||||
this.once('error', reject);
|
||||
}.bind(this));
|
||||
return this._promise;
|
||||
};
|
||||
|
||||
var errorFieldMap = {
|
||||
'sqlState': 'code',
|
||||
'statementPosition': 'position',
|
||||
|
||||
@ -1,34 +1,6 @@
|
||||
var helper = require(__dirname + "/../test-helper");
|
||||
var Client = require(__dirname + "/../../lib/native");
|
||||
|
||||
test('query with non-text as first parameter throws error', function() {
|
||||
var client = new Client(helper.config);
|
||||
client.connect();
|
||||
assert.emits(client, 'connect', function() {
|
||||
client.end();
|
||||
assert.emits(client, 'end', function() {
|
||||
assert.throws(function() {
|
||||
client.query({text:{fail: true}});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
test('parameterized query with non-text as first parameter throws error', function() {
|
||||
var client = new Client(helper.config);
|
||||
client.connect();
|
||||
assert.emits(client, 'connect', function() {
|
||||
client.end();
|
||||
assert.emits(client, 'end', function() {
|
||||
assert.throws(function() {
|
||||
client.query({
|
||||
text: {fail: true},
|
||||
values: [1, 2]
|
||||
})
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
var connect = function(callback) {
|
||||
var client = new Client(helper.config);
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
var helper = require(__dirname + "/../test-helper");
|
||||
var Client = require(__dirname + "/../../lib/native");
|
||||
var helper = require("../test-helper");
|
||||
var Client = require("../../lib/native");
|
||||
var Query = Client.Query;
|
||||
|
||||
var setupClient = function() {
|
||||
var client = new Client(helper.config);
|
||||
@ -10,37 +11,10 @@ var setupClient = function() {
|
||||
return client;
|
||||
}
|
||||
|
||||
//test('connects', function() {
|
||||
//var client = new Client(helper.config);
|
||||
//client.connect();
|
||||
//test('good query', function() {
|
||||
//var query = client.query("SELECT 1 as num, 'HELLO' as str");
|
||||
//assert.emits(query, 'row', function(row) {
|
||||
//test('has integer data type', function() {
|
||||
//assert.strictEqual(row.num, 1);
|
||||
//})
|
||||
//test('has string data type', function() {
|
||||
//assert.strictEqual(row.str, "HELLO")
|
||||
//})
|
||||
//test('emits end AFTER row event', function() {
|
||||
//assert.emits(query, 'end');
|
||||
//test('error query', function() {
|
||||
//var query = client.query("LSKDJF");
|
||||
//assert.emits(query, 'error', function(err) {
|
||||
//assert.ok(err != null, "Should not have emitted null error");
|
||||
//client.end();
|
||||
//})
|
||||
//})
|
||||
//})
|
||||
//})
|
||||
//})
|
||||
//})
|
||||
|
||||
|
||||
test('multiple results', function() {
|
||||
test('queued queries', function() {
|
||||
var client = setupClient();
|
||||
var q = client.query("SELECT name FROM BOOM");
|
||||
var q = client.query(new Query("SELECT name FROM BOOM"));
|
||||
assert.emits(q, 'row', function(row) {
|
||||
assert.equal(row.name, 'Aaron');
|
||||
assert.emits(q, 'row', function(row) {
|
||||
@ -49,7 +23,7 @@ test('multiple results', function() {
|
||||
})
|
||||
assert.emits(q, 'end', function() {
|
||||
test('query with config', function() {
|
||||
var q2 = client.query({text:'SELECT 1 as num'});
|
||||
var q2 = client.query(new Query({text:'SELECT 1 as num'}));
|
||||
assert.emits(q2, 'row', function(row) {
|
||||
assert.strictEqual(row.num, 1);
|
||||
assert.emits(q2, 'end', function() {
|
||||
@ -64,7 +38,7 @@ test('multiple results', function() {
|
||||
test('parameterized queries', function() {
|
||||
test('with a single string param', function() {
|
||||
var client = setupClient();
|
||||
var q = client.query("SELECT * FROM boom WHERE name = $1", ['Aaron']);
|
||||
var q = client.query(new Query("SELECT * FROM boom WHERE name = $1", ['Aaron']));
|
||||
assert.emits(q, 'row', function(row) {
|
||||
assert.equal(row.name, 'Aaron');
|
||||
})
|
||||
@ -75,10 +49,10 @@ test('parameterized queries', function() {
|
||||
|
||||
test('with object config for query', function() {
|
||||
var client = setupClient();
|
||||
var q = client.query({
|
||||
var q = client.query(new Query({
|
||||
text: "SELECT name FROM boom WHERE name = $1",
|
||||
values: ['Brian']
|
||||
});
|
||||
}));
|
||||
assert.emits(q, 'row', function(row) {
|
||||
assert.equal(row.name, 'Brian');
|
||||
})
|
||||
@ -89,7 +63,7 @@ test('parameterized queries', function() {
|
||||
|
||||
test('multiple parameters', function() {
|
||||
var client = setupClient();
|
||||
var q = client.query('SELECT name FROM boom WHERE name = $1 or name = $2 ORDER BY name', ['Aaron', 'Brian']);
|
||||
var q = client.query(new Query('SELECT name FROM boom WHERE name = $1 or name = $2 ORDER BY name', ['Aaron', 'Brian']));
|
||||
assert.emits(q, 'row', function(row) {
|
||||
assert.equal(row.name, 'Aaron');
|
||||
assert.emits(q, 'row', function(row) {
|
||||
@ -100,10 +74,10 @@ test('parameterized queries', function() {
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
test('integer parameters', function() {
|
||||
var client = setupClient();
|
||||
var q = client.query('SELECT * FROM boom WHERE age > $1', [27]);
|
||||
var q = client.query(new Query('SELECT * FROM boom WHERE age > $1', [27]));
|
||||
assert.emits(q, 'row', function(row) {
|
||||
assert.equal(row.name, 'Brian');
|
||||
assert.equal(row.age, 28);
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
var helper = require(__dirname + "/../test-helper");
|
||||
var Client = require(__dirname + "/../../lib/native");
|
||||
var Query = Client.Query;
|
||||
|
||||
test('many rows', function() {
|
||||
var client = new Client(helper.config);
|
||||
client.connect();
|
||||
var q = client.query("SELECT * FROM person");
|
||||
var q = client.query(new Query("SELECT * FROM person"));
|
||||
var rows = [];
|
||||
q.on('row', function(row) {
|
||||
rows.push(row)
|
||||
@ -21,7 +22,7 @@ test('many queries', function() {
|
||||
var count = 0;
|
||||
var expected = 100;
|
||||
for(var i = 0; i < expected; i++) {
|
||||
var q = client.query("SELECT * FROM person");
|
||||
var q = client.query(new Query("SELECT * FROM person"));
|
||||
assert.emits(q, 'end', function() {
|
||||
count++;
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user