mirror of
https://github.com/knex/knex.git
synced 2025-11-16 10:04:30 +00:00
event emitters everywhere, standard 'query' event
This commit is contained in:
parent
63b0246db0
commit
2f6a42dd5e
12
knex.js
12
knex.js
@ -42,6 +42,7 @@ var QueryInterface = require('./lib/query/methods');
|
|||||||
// Create a new "knex" instance with the appropriate configured client.
|
// Create a new "knex" instance with the appropriate configured client.
|
||||||
Knex.initialize = function(config) {
|
Knex.initialize = function(config) {
|
||||||
var Dialect, client;
|
var Dialect, client;
|
||||||
|
var EventEmitter = require('events').EventEmitter;
|
||||||
|
|
||||||
// The object we're potentially using to kick off an
|
// The object we're potentially using to kick off an
|
||||||
// initial chain. It is assumed that `knex` isn't a
|
// initial chain. It is assumed that `knex` isn't a
|
||||||
@ -49,9 +50,20 @@ Knex.initialize = function(config) {
|
|||||||
// in case it's called with `new`.
|
// in case it's called with `new`.
|
||||||
function knex(tableName) {
|
function knex(tableName) {
|
||||||
var qb = new client.QueryBuilder;
|
var qb = new client.QueryBuilder;
|
||||||
|
|
||||||
|
// Passthrough all "query" events to the knex object.
|
||||||
|
qb.on('query', function(data) {
|
||||||
|
knex.emit('query', data);
|
||||||
|
});
|
||||||
return tableName ? qb.table(tableName) : qb;
|
return tableName ? qb.table(tableName) : qb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Hook up the "knex" object as an EventEmitter.
|
||||||
|
var ee = new EventEmitter();
|
||||||
|
for (var key in ee) {
|
||||||
|
knex[key] = ee[key];
|
||||||
|
}
|
||||||
|
|
||||||
// The `__knex__` is used if you need to duck-type check whether this
|
// The `__knex__` is used if you need to duck-type check whether this
|
||||||
// is a knex builder, without a full on `instanceof` check.
|
// is a knex builder, without a full on `instanceof` check.
|
||||||
knex.VERSION = knex.__knex__ = '0.6.0';
|
knex.VERSION = knex.__knex__ = '0.6.0';
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
// Util.js
|
// helpers.js
|
||||||
// -------
|
// -------
|
||||||
|
|
||||||
// Just some common functions needed in multiple places within the library.
|
// Just some common functions needed in multiple places within the library.
|
||||||
|
|||||||
@ -1,9 +1,11 @@
|
|||||||
// Builder
|
// Builder
|
||||||
// -------
|
// -------
|
||||||
var _ = require('lodash');
|
var _ = require('lodash');
|
||||||
|
var inherits = require('inherits');
|
||||||
|
var EventEmitter = require('events').EventEmitter;
|
||||||
|
|
||||||
var Raw = require('../raw');
|
var Raw = require('../raw');
|
||||||
var helpers = require('../helpers');
|
var helpers = require('../helpers');
|
||||||
|
|
||||||
var JoinClause = require('./joinclause');
|
var JoinClause = require('./joinclause');
|
||||||
|
|
||||||
@ -18,6 +20,7 @@ function QueryBuilder() {
|
|||||||
this._joinFlag = 'inner';
|
this._joinFlag = 'inner';
|
||||||
this._boolFlag = 'and';
|
this._boolFlag = 'and';
|
||||||
}
|
}
|
||||||
|
inherits(QueryBuilder, EventEmitter);
|
||||||
|
|
||||||
// All operators used in the `where` clause generation.
|
// All operators used in the `where` clause generation.
|
||||||
var operators = ['=', '<', '>', '<=', '>=', '<>', '!=', 'like', 'not like',
|
var operators = ['=', '<', '>', '<=', '>=', '<>', '!=', 'like', 'not like',
|
||||||
|
|||||||
@ -2,6 +2,8 @@
|
|||||||
// -------
|
// -------
|
||||||
var SqlString = require('./sqlstring');
|
var SqlString = require('./sqlstring');
|
||||||
var _ = require('lodash');
|
var _ = require('lodash');
|
||||||
|
var inherits = require('inherits');
|
||||||
|
var EventEmitter = require('events').EventEmitter;
|
||||||
|
|
||||||
function Raw(sql, bindings) {
|
function Raw(sql, bindings) {
|
||||||
if (sql.toSQL) {
|
if (sql.toSQL) {
|
||||||
@ -13,6 +15,7 @@ function Raw(sql, bindings) {
|
|||||||
this._debug = void 0;
|
this._debug = void 0;
|
||||||
this._transacting = void 0;
|
this._transacting = void 0;
|
||||||
}
|
}
|
||||||
|
inherits(Raw, EventEmitter);
|
||||||
|
|
||||||
// Wraps the current sql with `before` and `after`.
|
// Wraps the current sql with `before` and `after`.
|
||||||
Raw.prototype.wrap = function(before, after) {
|
Raw.prototype.wrap = function(before, after) {
|
||||||
|
|||||||
@ -69,6 +69,7 @@ Runner.prototype.stream = function(options, handler) {
|
|||||||
// to run in sequence, and on the same connection, especially helpful when schema building
|
// to run in sequence, and on the same connection, especially helpful when schema building
|
||||||
// and dealing with foreign key constraints, etc.
|
// and dealing with foreign key constraints, etc.
|
||||||
Runner.prototype.query = Promise.method(function(obj) {
|
Runner.prototype.query = Promise.method(function(obj) {
|
||||||
|
this.builder.emit('query', obj);
|
||||||
return this._query(obj).bind(this).then(this.processResponse);
|
return this._query(obj).bind(this).then(this.processResponse);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,14 +1,18 @@
|
|||||||
var _ = require('lodash');
|
var _ = require('lodash');
|
||||||
|
var inherits = require('inherits');
|
||||||
|
var EventEmitter = require('events').EventEmitter;
|
||||||
|
|
||||||
var SqlString = require('../sqlstring');
|
var SqlString = require('../sqlstring');
|
||||||
|
|
||||||
// Constructor for the builder instance, typically called from
|
// Constructor for the builder instance, typically called from
|
||||||
// `knex.builder`, accepting the current `knex` instance,
|
// `knex.builder`, accepting the current `knex` instance,
|
||||||
// and pulling out the `client` and `grammar` from the current
|
// and pulling out the `client` and `grammar` from the current
|
||||||
// knex instance.
|
// knex instance.
|
||||||
var SchemaBuilder = function() {
|
function SchemaBuilder() {
|
||||||
this._sequence = [];
|
this._sequence = [];
|
||||||
this._errors = [];
|
this._errors = [];
|
||||||
};
|
}
|
||||||
|
inherits(SchemaBuilder, EventEmitter);
|
||||||
|
|
||||||
// Each of the schema builder methods just add to the
|
// Each of the schema builder methods just add to the
|
||||||
// "_sequence" array for consistency.
|
// "_sequence" array for consistency.
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
// Transaction
|
// Transaction
|
||||||
// -------
|
// -------
|
||||||
var Promise = require('./promise');
|
var Promise = require('./promise');
|
||||||
|
var inherits = require('inherits');
|
||||||
|
var EventEmitter = require('events').EventEmitter;
|
||||||
|
|
||||||
// Creates a new wrapper object for constructing a transaction.
|
// Creates a new wrapper object for constructing a transaction.
|
||||||
// Called by the `knex.transaction`, which sets the correct client
|
// Called by the `knex.transaction`, which sets the correct client
|
||||||
@ -9,6 +11,7 @@ var Promise = require('./promise');
|
|||||||
function Transaction(container) {
|
function Transaction(container) {
|
||||||
this.container = container;
|
this.container = container;
|
||||||
}
|
}
|
||||||
|
inherits(Transaction, EventEmitter);
|
||||||
|
|
||||||
// Build the object passed around inside the transaction container.
|
// Build the object passed around inside the transaction container.
|
||||||
Transaction.prototype.containerObject = function(runner) {
|
Transaction.prototype.containerObject = function(runner) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user