mysql2-core 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # mysql2-core
package/lib/build.js ADDED
@@ -0,0 +1,303 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function param(i) {
4
+ return '?';
5
+ }
6
+ exports.param = param;
7
+ function params(length, from) {
8
+ if (from === undefined || from == null) {
9
+ from = 0;
10
+ }
11
+ var ps = [];
12
+ for (var i = 1; i <= length; i++) {
13
+ ps.push(param(i + from));
14
+ }
15
+ return ps;
16
+ }
17
+ exports.params = params;
18
+ function metadata(attrs) {
19
+ var mp = {};
20
+ var ks = Object.keys(attrs);
21
+ var ats = [];
22
+ var bools = [];
23
+ var fields = [];
24
+ var m = { keys: ats, fields: fields };
25
+ var isMap = false;
26
+ for (var _i = 0, ks_1 = ks; _i < ks_1.length; _i++) {
27
+ var k = ks_1[_i];
28
+ var attr = attrs[k];
29
+ attr.name = k;
30
+ if (attr.key) {
31
+ ats.push(attr);
32
+ }
33
+ if (!attr.ignored) {
34
+ fields.push(k);
35
+ }
36
+ if (attr.type === 'boolean') {
37
+ bools.push(attr);
38
+ }
39
+ if (attr.version) {
40
+ m.version = k;
41
+ }
42
+ var field = (attr.column ? attr.column : k);
43
+ var s = field.toLowerCase();
44
+ if (s !== k) {
45
+ mp[s] = k;
46
+ isMap = true;
47
+ }
48
+ }
49
+ if (isMap) {
50
+ m.map = mp;
51
+ }
52
+ if (bools.length > 0) {
53
+ m.bools = bools;
54
+ }
55
+ return m;
56
+ }
57
+ exports.metadata = metadata;
58
+ function buildToSave(obj, table, attrs, ver, buildParam, i) {
59
+ if (!i) {
60
+ i = 1;
61
+ }
62
+ if (!buildParam) {
63
+ buildParam = param;
64
+ }
65
+ var ks = Object.keys(attrs);
66
+ var pks = [];
67
+ var cols = [];
68
+ var values = [];
69
+ var args = [];
70
+ var isVersion = false;
71
+ var o = obj;
72
+ for (var _i = 0, ks_2 = ks; _i < ks_2.length; _i++) {
73
+ var k = ks_2[_i];
74
+ var attr = attrs[k];
75
+ attr.name = k;
76
+ if (attr.key) {
77
+ pks.push(attr);
78
+ }
79
+ var v = o[k];
80
+ if (v === undefined || v == null) {
81
+ v = attr.default;
82
+ }
83
+ if (v !== undefined && v != null && !attr.ignored && !attr.noinsert) {
84
+ var field = (attr.column ? attr.column : k);
85
+ cols.push(field);
86
+ if (k === ver) {
87
+ isVersion = true;
88
+ values.push("" + 1);
89
+ }
90
+ else {
91
+ if (v === '') {
92
+ values.push("''");
93
+ }
94
+ else if (typeof v === 'number') {
95
+ values.push(toString(v));
96
+ }
97
+ else {
98
+ var p = buildParam(i++);
99
+ values.push(p);
100
+ if (typeof v === 'boolean') {
101
+ if (v === true) {
102
+ var v2 = (attr.true ? attr.true : "'1'");
103
+ args.push(v2);
104
+ }
105
+ else {
106
+ var v2 = (attr.false ? attr.false : "'0'");
107
+ args.push(v2);
108
+ }
109
+ }
110
+ else {
111
+ args.push(v);
112
+ }
113
+ }
114
+ }
115
+ }
116
+ }
117
+ if (!isVersion && ver && ver.length > 0) {
118
+ var attr = attrs[ver];
119
+ var field = (attr.column ? attr.column : ver);
120
+ cols.push(field);
121
+ values.push("" + 1);
122
+ }
123
+ if (pks.length === 0) {
124
+ if (cols.length === 0) {
125
+ return undefined;
126
+ }
127
+ else {
128
+ var q = "insert into " + table + "(" + cols.join(',') + ")values(" + values.join(',') + ")";
129
+ return { query: q, params: args };
130
+ }
131
+ }
132
+ else {
133
+ var colSet = [];
134
+ for (var _a = 0, ks_3 = ks; _a < ks_3.length; _a++) {
135
+ var k = ks_3[_a];
136
+ var v = o[k];
137
+ if (v !== undefined) {
138
+ var attr = attrs[k];
139
+ if (attr && !attr.key && !attr.ignored && !attr.noupdate) {
140
+ var field = (attr.column ? attr.column : k);
141
+ var x = void 0;
142
+ if (v == null) {
143
+ x = 'null';
144
+ }
145
+ else if (v === '') {
146
+ x = "''";
147
+ }
148
+ else if (typeof v === 'number') {
149
+ x = toString(v);
150
+ }
151
+ else {
152
+ x = buildParam(i++);
153
+ if (typeof v === 'boolean') {
154
+ if (v === true) {
155
+ var v2 = (attr.true ? '' + attr.true : "'1'");
156
+ args.push(v2);
157
+ }
158
+ else {
159
+ var v2 = (attr.false ? '' + attr.false : "'0'");
160
+ args.push(v2);
161
+ }
162
+ }
163
+ else {
164
+ args.push(v);
165
+ }
166
+ }
167
+ colSet.push(field + "=" + x);
168
+ }
169
+ }
170
+ }
171
+ if (colSet.length === 0) {
172
+ var q = "insert ignore into " + table + "(" + cols.join(',') + ")values(" + values.join(',') + ")";
173
+ return { query: q, params: args };
174
+ }
175
+ else {
176
+ var q = "insert into " + table + "(" + cols.join(',') + ")values(" + values.join(',') + ") on duplicate key update " + colSet.join(',');
177
+ return { query: q, params: args };
178
+ }
179
+ }
180
+ }
181
+ exports.buildToSave = buildToSave;
182
+ function buildToSaveBatch(objs, table, attrs, ver, buildParam) {
183
+ if (!buildParam) {
184
+ buildParam = param;
185
+ }
186
+ var sts = [];
187
+ var ks = Object.keys(attrs);
188
+ for (var _i = 0, objs_1 = objs; _i < objs_1.length; _i++) {
189
+ var obj = objs_1[_i];
190
+ var i = 1;
191
+ var cols = [];
192
+ var values = [];
193
+ var args = [];
194
+ var isVersion = false;
195
+ var o = obj;
196
+ for (var _a = 0, ks_4 = ks; _a < ks_4.length; _a++) {
197
+ var k = ks_4[_a];
198
+ var attr = attrs[k];
199
+ var v = o[k];
200
+ if (v === undefined || v == null) {
201
+ v = attr.default;
202
+ }
203
+ if (v != null && v !== undefined && !attr.ignored && !attr.noinsert) {
204
+ var field = (attr.column ? attr.column : k);
205
+ cols.push(field);
206
+ if (k === ver) {
207
+ isVersion = true;
208
+ values.push("" + 1);
209
+ }
210
+ else {
211
+ if (v === '') {
212
+ values.push("''");
213
+ }
214
+ else if (typeof v === 'number') {
215
+ values.push(toString(v));
216
+ }
217
+ else {
218
+ var p = buildParam(i++);
219
+ values.push(p);
220
+ if (typeof v === 'boolean') {
221
+ if (v === true) {
222
+ var v2 = (attr.true ? attr.true : "'1'");
223
+ args.push(v2);
224
+ }
225
+ else {
226
+ var v2 = (attr.false ? attr.false : "'0'");
227
+ args.push(v2);
228
+ }
229
+ }
230
+ else {
231
+ args.push(v);
232
+ }
233
+ }
234
+ }
235
+ }
236
+ }
237
+ if (!isVersion && ver && ver.length > 0) {
238
+ var attr = attrs[ver];
239
+ var field = (attr.column ? attr.column : ver);
240
+ cols.push(field);
241
+ values.push("" + 1);
242
+ }
243
+ var colSet = [];
244
+ for (var _b = 0, ks_5 = ks; _b < ks_5.length; _b++) {
245
+ var k = ks_5[_b];
246
+ var v = o[k];
247
+ if (v !== undefined) {
248
+ var attr = attrs[k];
249
+ if (attr && !attr.key && !attr.ignored && k !== ver && !attr.noupdate) {
250
+ var field = (attr.column ? attr.column : k);
251
+ var x = void 0;
252
+ if (v == null) {
253
+ x = 'null';
254
+ }
255
+ else if (v === '') {
256
+ x = "''";
257
+ }
258
+ else if (typeof v === 'number') {
259
+ x = toString(v);
260
+ }
261
+ else {
262
+ x = buildParam(i++);
263
+ if (typeof v === 'boolean') {
264
+ if (v === true) {
265
+ var v2 = (attr.true ? '' + attr.true : "'1'");
266
+ args.push(v2);
267
+ }
268
+ else {
269
+ var v2 = (attr.false ? '' + attr.false : "'0'");
270
+ args.push(v2);
271
+ }
272
+ }
273
+ else {
274
+ args.push(v);
275
+ }
276
+ }
277
+ colSet.push(field + "=" + x);
278
+ }
279
+ }
280
+ }
281
+ if (colSet.length === 0) {
282
+ var q = "insert ignore into " + table + "(" + cols.join(',') + ")values(" + values.join(',') + ");";
283
+ var smt = { query: q, params: args };
284
+ sts.push(smt);
285
+ }
286
+ else {
287
+ var q = "insert into " + table + "(" + cols.join(',') + ")values(" + values.join(',') + ") on duplicate key update " + colSet.join(',') + ";";
288
+ var smt = { query: q, params: args };
289
+ sts.push(smt);
290
+ }
291
+ }
292
+ return sts;
293
+ }
294
+ exports.buildToSaveBatch = buildToSaveBatch;
295
+ var n = 'NaN';
296
+ function toString(v) {
297
+ var x = '' + v;
298
+ if (x === n) {
299
+ x = 'null';
300
+ }
301
+ return x;
302
+ }
303
+ exports.toString = toString;