make-knex.js
4.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
'use strict';
exports.__esModule = true;
var _defineProperties = require('babel-runtime/core-js/object/define-properties');
var _defineProperties2 = _interopRequireDefault(_defineProperties);
var _assign2 = require('lodash/assign');
var _assign3 = _interopRequireDefault(_assign2);
exports.default = makeKnex;
var _events = require('events');
var _migrate = require('../migrate');
var _migrate2 = _interopRequireDefault(_migrate);
var _seed = require('../seed');
var _seed2 = _interopRequireDefault(_seed);
var _functionhelper = require('../functionhelper');
var _functionhelper2 = _interopRequireDefault(_functionhelper);
var _methods = require('../query/methods');
var _methods2 = _interopRequireDefault(_methods);
var _helpers = require('../helpers');
var helpers = _interopRequireWildcard(_helpers);
var _batchInsert2 = require('./batchInsert');
var _batchInsert3 = _interopRequireDefault(_batchInsert2);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function makeKnex(client) {
// The object we're potentially using to kick off an initial chain.
function knex(tableName, options) {
var qb = knex.queryBuilder();
if (!tableName) helpers.warn('calling knex without a tableName is deprecated. Use knex.queryBuilder() instead.');
return tableName ? qb.table(tableName, options) : qb;
}
(0, _assign3.default)(knex, {
Promise: require('bluebird'),
// A new query builder instance.
queryBuilder: function queryBuilder() {
return client.queryBuilder();
},
raw: function raw() {
return client.raw.apply(client, arguments);
},
batchInsert: function batchInsert(table, batch) {
var chunkSize = arguments.length <= 2 || arguments[2] === undefined ? 1000 : arguments[2];
return (0, _batchInsert3.default)(this, table, batch, chunkSize);
},
// Runs a new transaction, taking a container and returning a promise
// for when the transaction is resolved.
transaction: function transaction(container, config) {
return client.transaction(container, config);
},
// Typically never needed, initializes the pool for a knex client.
initialize: function initialize(config) {
return client.initialize(config);
},
// Convenience method for tearing down the pool.
destroy: function destroy(callback) {
return client.destroy(callback);
}
});
// Hook up the "knex" object as an EventEmitter.
var ee = new _events.EventEmitter();
for (var key in ee) {
knex[key] = ee[key];
}
// Allow chaining methods from the root object, before
// any other information is specified.
_methods2.default.forEach(function (method) {
knex[method] = function () {
var builder = knex.queryBuilder();
return builder[method].apply(builder, arguments);
};
});
knex.client = client;
var VERSION = '0.12.6';
(0, _defineProperties2.default)(knex, {
__knex__: {
get: function get() {
helpers.warn('knex.__knex__ is deprecated, you can get the module version' + "by running require('knex/package').version");
return VERSION;
}
},
VERSION: {
get: function get() {
helpers.warn('knex.VERSION is deprecated, you can get the module version' + "by running require('knex/package').version");
return VERSION;
}
},
schema: {
get: function get() {
return client.schemaBuilder();
}
},
migrate: {
get: function get() {
return new _migrate2.default(knex);
}
},
seed: {
get: function get() {
return new _seed2.default(knex);
}
},
fn: {
get: function get() {
return new _functionhelper2.default(client);
}
}
});
// Passthrough all "start" and "query" events to the knex object.
client.on('start', function (obj) {
knex.emit('start', obj);
});
client.on('query', function (obj) {
knex.emit('query', obj);
});
client.on('query-error', function (err, obj) {
knex.emit('query-error', err, obj);
});
client.on('query-response', function (response, obj, builder) {
knex.emit('query-response', response, obj, builder);
});
client.makeKnex = makeKnex;
return knex;
}
module.exports = exports['default'];