more api compat

This commit is contained in:
Brian Carlson 2011-02-23 19:40:52 -06:00
parent 7d05daaf2c
commit 6a2adc1feb
3 changed files with 23 additions and 5 deletions

View File

@ -1,5 +1,6 @@
//require the c++ bindings & export to javascript //require the c++ bindings & export to javascript
var binding = require(__dirname + '/../build/default/binding'); var binding = require(__dirname + '/../build/default/binding');
var utils = require(__dirname + "/utils");
var Connection = binding.Connection; var Connection = binding.Connection;
var p = Connection.prototype; var p = Connection.prototype;
@ -11,8 +12,8 @@ var add = function(params, config, paramName) {
} }
var getLibpgConString = function(config, callback) { var getLibpgConString = function(config, callback) {
var params = []
if(typeof config == 'object') { if(typeof config == 'object') {
var params = []
add(params, config, 'user'); add(params, config, 'user');
add(params, config, 'password'); add(params, config, 'password');
add(params, config, 'port'); add(params, config, 'port');
@ -25,8 +26,12 @@ var getLibpgConString = function(config, callback) {
} }
params.push("hostaddr=127.0.0.1 "); params.push("hostaddr=127.0.0.1 ");
} }
callback(params.join(" "));
} else if (typeof config == 'string') {
getLibpgConString(utils.parseConnectionString(config), callback)
} else {
throw new Error("Unrecognized config type for connection");
} }
callback(params.join(" "));
} }
var nativeConnect = p.connect; var nativeConnect = p.connect;
@ -73,10 +78,19 @@ var ctor = function(config) {
this.emit('end'); this.emit('end');
this._activeQuery = null; this._activeQuery = null;
connection._pulseQueryQueue(); connection._pulseQueryQueue();
}) });
return connection; return connection;
} };
var connect = function(config, callback) {
var client = new ctor(config);
client.connect();
client.on('connect', function() {
callback(null, client);
})
};
module.exports = { module.exports = {
Client:ctor Client: ctor,
connect: connect
}; };

View File

@ -11,6 +11,7 @@ if(typeof events.EventEmitter.prototype.once !== 'function') {
}); });
}; };
} }
var Pool = function(maxSize, createFn) { var Pool = function(maxSize, createFn) {
events.EventEmitter.call(this); events.EventEmitter.call(this);
this.maxSize = maxSize; this.maxSize = maxSize;

View File

@ -1,5 +1,8 @@
var helper = require(__dirname + '/../test-helper'); var helper = require(__dirname + '/../test-helper');
var pg = require(__dirname + '/../../../lib'); var pg = require(__dirname + '/../../../lib');
if(helper.args.libpq) {
pg = require(__dirname + "/../../../lib/binding");
}
var connectionString = helper.connectionString(__filename); var connectionString = helper.connectionString(__filename);
var log = function() { var log = function() {