pogi 2.10.2 → 3.0.0-beta2

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.
Files changed (83) hide show
  1. package/.vscode/launch.json +47 -15
  2. package/CHANGELOG.md +11 -0
  3. package/docs/API/PgDb.md +25 -0
  4. package/docs/notification.md +19 -0
  5. package/jest.config.js +23 -0
  6. package/lib/bin/generateInterface.js +3 -3
  7. package/lib/bin/generateInterface.js.map +1 -1
  8. package/lib/connectionOptions.d.ts +10 -0
  9. package/lib/index.d.ts +1 -1
  10. package/lib/pgConverters.d.ts +9 -8
  11. package/lib/pgConverters.js +46 -32
  12. package/lib/pgConverters.js.map +1 -1
  13. package/lib/pgConverters.test.d.ts +1 -0
  14. package/lib/pgConverters.test.js +13 -0
  15. package/lib/pgConverters.test.js.map +1 -0
  16. package/lib/pgDb.d.ts +27 -27
  17. package/lib/pgDb.js +293 -100
  18. package/lib/pgDb.js.map +1 -1
  19. package/lib/pgDb.test.d.ts +1 -0
  20. package/lib/pgDb.test.js +1126 -0
  21. package/lib/pgDb.test.js.map +1 -0
  22. package/lib/pgDbInterface.d.ts +53 -0
  23. package/lib/pgDbInterface.js +11 -0
  24. package/lib/pgDbInterface.js.map +1 -0
  25. package/lib/pgDbOperators.d.ts +3 -3
  26. package/lib/pgDbOperators.js +4 -7
  27. package/lib/pgDbOperators.js.map +1 -1
  28. package/lib/pgDbOperators.test.d.ts +1 -0
  29. package/lib/pgDbOperators.test.js +313 -0
  30. package/lib/pgDbOperators.test.js.map +1 -0
  31. package/lib/pgSchema.d.ts +10 -9
  32. package/lib/pgSchema.js.map +1 -1
  33. package/lib/pgSchemaInterface.d.ts +12 -0
  34. package/lib/pgSchemaInterface.js +3 -0
  35. package/lib/pgSchemaInterface.js.map +1 -0
  36. package/lib/pgTable.d.ts +15 -40
  37. package/lib/pgTable.js +54 -54
  38. package/lib/pgTable.js.map +1 -1
  39. package/lib/pgTableInterface.d.ts +102 -0
  40. package/lib/pgTableInterface.js +4 -0
  41. package/lib/pgTableInterface.js.map +1 -0
  42. package/lib/pgUtils.d.ts +16 -6
  43. package/lib/pgUtils.js +162 -31
  44. package/lib/pgUtils.js.map +1 -1
  45. package/lib/queryAble.d.ts +20 -53
  46. package/lib/queryAble.js +149 -80
  47. package/lib/queryAble.js.map +1 -1
  48. package/lib/queryAbleInterface.d.ts +55 -0
  49. package/lib/queryAbleInterface.js +7 -0
  50. package/lib/queryAbleInterface.js.map +1 -0
  51. package/lib/queryWhere.d.ts +2 -2
  52. package/lib/queryWhere.js +19 -23
  53. package/lib/queryWhere.js.map +1 -1
  54. package/mkdocs.yml +1 -0
  55. package/package.json +21 -11
  56. package/src/bin/generateInterface.ts +2 -2
  57. package/src/connectionOptions.ts +48 -13
  58. package/src/index.d.ts +7 -0
  59. package/src/index.ts +1 -1
  60. package/src/pgConverters.test.ts +10 -0
  61. package/src/pgConverters.ts +34 -22
  62. package/src/pgDb.test.ts +1324 -0
  63. package/src/pgDb.ts +318 -122
  64. package/src/pgDbInterface.ts +57 -0
  65. package/src/pgDbOperators.test.ts +478 -0
  66. package/src/pgDbOperators.ts +45 -22
  67. package/src/pgSchema.ts +10 -9
  68. package/src/pgSchemaInterface.ts +12 -0
  69. package/src/pgTable.ts +66 -98
  70. package/src/pgTableInterface.ts +131 -0
  71. package/src/pgUtils.ts +166 -42
  72. package/src/queryAble.ts +167 -125
  73. package/src/queryAbleInterface.ts +104 -0
  74. package/src/queryWhere.ts +42 -43
  75. package/{spec/resources → src/test}/init.sql +23 -0
  76. package/src/test/pgServiceRestartTest.ts +1500 -0
  77. package/{spec/resources → src/test}/throw_exception.sql +0 -0
  78. package/{spec/resources → src/test}/tricky.sql +0 -0
  79. package/{src/tsconfig.json → tsconfig.json} +12 -11
  80. package/spec/run.js +0 -5
  81. package/spec/support/jasmine.json +0 -9
  82. package/src/test/pgDbOperatorSpec.ts +0 -492
  83. package/src/test/pgDbSpec.ts +0 -994
package/lib/queryAble.js CHANGED
@@ -3,16 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.QueryAble = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const pgUtils_1 = require("./pgUtils");
6
- const util = require('util');
7
- const QueryStream = require('pg-query-stream');
8
- const through = require('through');
6
+ const util = require("util");
7
+ const QueryStream = require("pg-query-stream");
8
+ const through = require("through");
9
9
  let defaultLogger = {
10
10
  log: () => { },
11
11
  error: () => { }
12
12
  };
13
13
  class QueryAble {
14
- constructor() {
15
- }
16
14
  setLogger(logger) {
17
15
  this.logger = logger;
18
16
  }
@@ -20,19 +18,22 @@ class QueryAble {
20
18
  return this.logger || this.schema && this.schema.logger || this.db.logger || (useConsoleAsDefault ? console : defaultLogger);
21
19
  }
22
20
  run(sql, params, options) {
23
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
21
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
24
22
  return this.query(sql, params, options);
25
23
  });
26
24
  }
27
25
  query(sql, params, options) {
28
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
26
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
29
27
  let connection = this.db.connection;
30
28
  let logger = (options && options.logger || this.getLogger(false));
31
29
  return this.internalQuery({ connection, sql, params, logger });
32
30
  });
33
31
  }
34
32
  internalQuery(options) {
35
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
33
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
34
+ if (this.db.needToFixConnectionForListen()) {
35
+ yield this.db.runRestartConnectionForListen();
36
+ }
36
37
  let { connection, sql, params, logger } = options;
37
38
  logger = logger || this.getLogger(false);
38
39
  try {
@@ -41,139 +42,164 @@ class QueryAble {
41
42
  sql = p.sql;
42
43
  params = p.params;
43
44
  }
45
+ let query = (options === null || options === void 0 ? void 0 : options.rowMode) ? { text: sql, values: params, rowMode: 'array' } : { text: sql, values: params };
46
+ let res;
44
47
  if (connection) {
45
48
  logger.log('reused connection', sql, util.inspect(params, false, null), connection.processID);
46
- let res = yield connection.query({ text: sql, values: params, rowMode: (options === null || options === void 0 ? void 0 : options.rowMode) ? 'array' : undefined });
47
- pgUtils_1.pgUtils.postProcessResult(res.rows, res.fields, this.db.pgdbTypeParsers);
48
- if (this.db.postProcessResult)
49
- this.db.postProcessResult(res.rows, res.fields, logger);
50
- return (options === null || options === void 0 ? void 0 : options.rowMode) ? { columns: (res.fields || []).map(f => f.name), rows: res.rows || [] } : res.rows;
49
+ res = yield connection.query(query);
50
+ yield this.checkAndFixOids(connection, res.fields);
51
51
  }
52
52
  else {
53
53
  connection = yield this.db.pool.connect();
54
54
  logger.log('new connection', sql, util.inspect(params, false, null), connection.processID);
55
+ connection.on('error', QueryAble.connectionErrorListener);
56
+ res = yield connection.query(query);
57
+ yield this.checkAndFixOids(connection, res.fields);
58
+ connection.off('error', QueryAble.connectionErrorListener);
59
+ connection.release();
60
+ connection = null;
61
+ }
62
+ this.postProcessFields(res.rows, res.fields, logger);
63
+ return (options === null || options === void 0 ? void 0 : options.rowMode) ? { columns: (res.fields || []).map(f => f.name), rows: res.rows || [] } : res.rows;
64
+ }
65
+ catch (e) {
66
+ pgUtils_1.pgUtils.logError(logger, { error: e, sql, params, connection });
67
+ if (connection) {
55
68
  try {
56
- let res = yield connection.query({ text: sql, values: params, rowMode: (options === null || options === void 0 ? void 0 : options.rowMode) ? 'array' : undefined });
57
69
  connection.release();
58
- connection = null;
59
- pgUtils_1.pgUtils.postProcessResult(res.rows, res.fields, this.db.pgdbTypeParsers);
60
- if (this.db.postProcessResult)
61
- this.db.postProcessResult(res.rows, res.fields, logger);
62
- return (options === null || options === void 0 ? void 0 : options.rowMode) ? { columns: (res.fields || []).map(f => f.name), rows: res.rows || [] } : res.rows;
63
70
  }
64
71
  catch (e) {
65
- pgUtils_1.pgUtils.logError(logger, { error: e, sql, params, connection });
66
- try {
67
- if (connection)
68
- connection.release();
69
- }
70
- catch (e) {
71
- logger.error('connection error2', e.message);
72
- }
73
- connection = null;
74
- throw e;
72
+ logger.error('connection error', e.message);
75
73
  }
76
74
  }
77
- }
78
- catch (e) {
79
- pgUtils_1.pgUtils.logError(logger, { error: e, sql, params, connection });
80
75
  throw e;
81
76
  }
82
77
  });
83
78
  }
84
79
  queryAsRows(sql, params, options) {
85
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
80
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
86
81
  let connection = this.db.connection;
87
82
  let logger = (options && options.logger || this.getLogger(false));
88
83
  return this.internalQuery({ connection, sql, params, logger, rowMode: true });
89
84
  });
90
85
  }
91
86
  queryWithOnCursorCallback(sql, params, options, callback) {
92
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
87
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
88
+ if (this.db.needToFixConnectionForListen()) {
89
+ yield this.db.runRestartConnectionForListen();
90
+ }
93
91
  let connection = this.db.connection;
92
+ let logger = this.getLogger(true);
93
+ let positionedParams;
94
94
  try {
95
95
  if (params && !Array.isArray(params)) {
96
96
  let p = pgUtils_1.pgUtils.processNamedParams(sql, params);
97
97
  sql = p.sql;
98
98
  params = p.params;
99
99
  }
100
- if (connection) {
101
- this.getLogger(false).log(sql, util.inspect(params, false, null), connection.processID);
102
- let query = new QueryStream(sql, params);
100
+ else {
101
+ positionedParams = params;
102
+ }
103
+ let queryInternal = () => (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
104
+ this.getLogger(false).log(sql, util.inspect(positionedParams, false, null), connection.processID);
105
+ let fieldsToFix;
106
+ let isFirst = true;
107
+ let query = new QueryStream(sql, positionedParams);
103
108
  let stream = connection.query(query);
104
109
  yield new Promise((resolve, reject) => {
110
+ query.handleError = reject;
105
111
  stream.on('data', (res) => {
106
112
  try {
107
113
  let fields = stream._result && stream._result.fields || stream.cursor._result && stream.cursor._result.fields;
108
- pgUtils_1.pgUtils.postProcessResult([res], fields, this.db.pgdbTypeParsers);
109
- if (this.db.postProcessResult)
110
- this.db.postProcessResult([res], fields, this.getLogger(false));
114
+ if (isFirst) {
115
+ if (this.hasUnknownOids(fields)) {
116
+ fieldsToFix = fields;
117
+ stream.destroy();
118
+ return;
119
+ }
120
+ isFirst = false;
121
+ }
122
+ this.postProcessFields([res], fields, this.getLogger(false));
111
123
  if (callback(res)) {
112
- stream.emit('close');
124
+ stream.destroy();
113
125
  }
114
126
  }
115
127
  catch (e) {
116
128
  reject(e);
117
129
  }
118
130
  });
119
- stream.on('end', resolve);
131
+ stream.on('close', resolve);
120
132
  stream.on('error', reject);
121
133
  });
122
- }
123
- else {
124
- try {
125
- connection = yield this.db.pool.connect();
126
- this.getLogger(false).log(sql, util.inspect(params, false, null), connection.processID);
127
- let query = new QueryStream(sql, params);
128
- let stream = connection.query(query);
134
+ if (fieldsToFix) {
135
+ yield this.checkAndFixOids(connection, fieldsToFix);
136
+ query = new QueryStream(sql, positionedParams);
137
+ stream = connection.query(query);
129
138
  yield new Promise((resolve, reject) => {
139
+ query.handleError = reject;
130
140
  stream.on('data', (res) => {
131
141
  try {
132
142
  let fields = stream._result && stream._result.fields || stream.cursor._result && stream.cursor._result.fields;
133
- pgUtils_1.pgUtils.postProcessResult([res], fields, this.db.pgdbTypeParsers);
134
- if (this.db.postProcessResult)
135
- this.db.postProcessResult([res], fields, this.getLogger(false));
143
+ this.postProcessFields([res], fields, this.getLogger(false));
136
144
  if (callback(res)) {
137
- stream.emit('close');
145
+ stream.destroy();
138
146
  }
139
147
  }
140
148
  catch (e) {
141
149
  reject(e);
142
150
  }
143
151
  });
144
- stream.on('end', resolve);
152
+ stream.on('close', resolve);
145
153
  stream.on('error', reject);
146
154
  });
147
155
  }
148
- finally {
149
- try {
150
- connection.release();
151
- }
152
- catch (e) {
153
- this.getLogger(true).error('connection error', e.message);
154
- }
155
- }
156
+ });
157
+ if (connection) {
158
+ yield queryInternal();
159
+ }
160
+ else {
161
+ connection = yield this.db.pool.connect();
162
+ logger.log('new connection', sql, util.inspect(positionedParams, false, null), connection.processID);
163
+ connection.on('error', QueryAble.connectionErrorListener);
164
+ yield queryInternal();
165
+ connection.off('error', QueryAble.connectionErrorListener);
166
+ connection.release();
156
167
  }
157
168
  }
158
169
  catch (e) {
159
- let logger = this.getLogger(true);
160
170
  pgUtils_1.pgUtils.logError(logger, { error: e, sql, params, connection });
171
+ if (connection) {
172
+ try {
173
+ connection.release();
174
+ }
175
+ catch (e) {
176
+ logger.error('connection error', e.message);
177
+ }
178
+ }
161
179
  throw e;
162
180
  }
163
181
  });
164
182
  }
165
183
  queryAsStream(sql, params, options) {
166
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
184
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
185
+ if (this.db.needToFixConnectionForListen()) {
186
+ yield this.db.runRestartConnectionForListen();
187
+ }
167
188
  let connection = this.db.connection;
168
189
  let logger = (options && options.logger || this.getLogger(false));
169
190
  let pgStream;
170
- let pgdb = this.db;
191
+ let queriable = this;
192
+ let isFirst = true;
171
193
  let convertTypeFilter = through(function (data) {
172
194
  try {
173
195
  let fields = pgStream._result && pgStream._result.fields || pgStream.cursor._result && pgStream.cursor._result.fields;
174
- pgUtils_1.pgUtils.postProcessResult([data], fields, pgdb.pgdbTypeParsers);
175
- if (pgdb.postProcessResult)
176
- pgdb.postProcessResult([data], fields, logger);
196
+ if (isFirst) {
197
+ if (queriable.hasUnknownOids(fields)) {
198
+ throw new Error('[337] Query returns fields with unknown oid.');
199
+ }
200
+ isFirst = false;
201
+ }
202
+ queriable.postProcessFields([data], fields, queriable.db.pgdbTypeParsers);
177
203
  this.emit('data', data);
178
204
  }
179
205
  catch (err) {
@@ -181,47 +207,71 @@ class QueryAble {
181
207
  }
182
208
  });
183
209
  convertTypeFilter.on('error', (e) => {
210
+ if (connection) {
211
+ try {
212
+ connection.release();
213
+ }
214
+ catch (e) {
215
+ logger.error('connection error', e.message);
216
+ }
217
+ }
218
+ connection = null;
184
219
  pgUtils_1.pgUtils.logError(logger, { error: e, sql, params, connection });
185
220
  });
221
+ let positionedParams;
186
222
  try {
187
223
  if (params && !Array.isArray(params)) {
188
224
  let p = pgUtils_1.pgUtils.processNamedParams(sql, params);
189
225
  sql = p.sql;
190
226
  params = p.params;
191
227
  }
228
+ else {
229
+ positionedParams = params;
230
+ }
192
231
  if (connection) {
193
- logger.log(sql, util.inspect(params, false, null), connection.processID);
194
- let query = new QueryStream(sql, params);
232
+ logger.log(sql, util.inspect(positionedParams, false, null), connection.processID);
233
+ let query = new QueryStream(sql, positionedParams);
234
+ query.handleError = (err) => {
235
+ convertTypeFilter.emit('error', err);
236
+ };
195
237
  pgStream = connection.query(query);
196
238
  return pgStream.pipe(convertTypeFilter);
197
239
  }
198
240
  else {
199
241
  connection = yield this.db.pool.connect();
200
- logger.log(sql, util.inspect(params, false, null), connection.processID);
201
- let query = new QueryStream(sql, params);
242
+ logger.log('new connection', sql, util.inspect(positionedParams, false, null), connection.processID);
243
+ connection.on('error', QueryAble.connectionErrorListener);
244
+ let query = new QueryStream(sql, positionedParams);
245
+ query.handleError = (err, _connection) => {
246
+ convertTypeFilter.emit('error', err);
247
+ };
202
248
  pgStream = connection.query(query);
203
249
  pgStream.on('close', () => {
204
- if (connection)
250
+ if (connection) {
251
+ connection.off('error', QueryAble.connectionErrorListener);
205
252
  connection.release();
253
+ }
206
254
  connection = null;
207
255
  });
208
256
  pgStream.on('error', (e) => {
209
- pgUtils_1.pgUtils.logError(logger, { error: e, sql, params, connection });
210
- if (connection)
257
+ pgUtils_1.pgUtils.logError(logger, { error: e, sql, params: positionedParams, connection });
258
+ if (connection) {
259
+ connection.off('error', QueryAble.connectionErrorListener);
211
260
  connection.release();
261
+ }
212
262
  connection = null;
213
263
  });
214
264
  return pgStream.pipe(convertTypeFilter);
215
265
  }
216
266
  }
217
267
  catch (e) {
218
- pgUtils_1.pgUtils.logError(logger, { error: e, sql, params, connection });
268
+ pgUtils_1.pgUtils.logError(logger, { error: e, sql, params: positionedParams, connection });
219
269
  throw e;
220
270
  }
221
271
  });
222
272
  }
223
273
  queryOne(sql, params, options) {
224
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
274
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
225
275
  let res = yield this.query(sql, params, options);
226
276
  if (res.length > 1) {
227
277
  let logger = (options && options.logger || this.getLogger(false));
@@ -233,13 +283,13 @@ class QueryAble {
233
283
  });
234
284
  }
235
285
  queryFirst(sql, params, options) {
236
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
286
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
237
287
  let res = yield this.query(sql, params, options);
238
288
  return res[0];
239
289
  });
240
290
  }
241
291
  queryOneField(sql, params, options) {
242
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
292
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
243
293
  let res = yield this.query(sql, params, options);
244
294
  if (!res.length) {
245
295
  return null;
@@ -255,7 +305,7 @@ class QueryAble {
255
305
  });
256
306
  }
257
307
  queryOneColumn(sql, params, options) {
258
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
308
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
259
309
  let res = yield this.query(sql, params, options);
260
310
  if (!res.length) {
261
311
  return [];
@@ -264,6 +314,25 @@ class QueryAble {
264
314
  return res.map(r => r[fieldName]);
265
315
  });
266
316
  }
317
+ postProcessFields(rows, fields, logger) {
318
+ pgUtils_1.pgUtils.postProcessResult(rows, fields, this.db.pgdbTypeParsers);
319
+ if (this.db.postProcessResult)
320
+ this.db.postProcessResult(rows, fields, logger);
321
+ }
322
+ checkAndFixOids(connection, fields) {
323
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
324
+ if (fields) {
325
+ let oidList = fields.map(field => field.dataTypeID);
326
+ return this.db.resetMissingParsers(connection, oidList);
327
+ }
328
+ });
329
+ }
330
+ hasUnknownOids(fields) {
331
+ let oidList = fields.map(field => field.dataTypeID);
332
+ let unknownOids = oidList.filter(oid => !this.db.knownOids[oid]);
333
+ return !!unknownOids.length;
334
+ }
267
335
  }
268
336
  exports.QueryAble = QueryAble;
337
+ QueryAble.connectionErrorListener = () => { };
269
338
  //# sourceMappingURL=queryAble.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queryAble.js","sourceRoot":"","sources":["../src/queryAble.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queryAble.js","sourceRoot":"","sources":["../src/queryAble.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /// <reference types="node" />
2
+ import { PgDbLogger } from "./pgDbLogger";
3
+ import { IPgSchema } from "./pgSchemaInterface";
4
+ import * as stream from "stream";
5
+ import { ResultFieldType, IPgDb } from "./pgDbInterface";
6
+ import { ForceEscapeColumnsOptions } from "./connectionOptions";
7
+ export interface QueryOptions {
8
+ limit?: number;
9
+ offset?: number;
10
+ orderBy?: string | string[] | {
11
+ [fieldName: string]: 'asc' | 'desc';
12
+ };
13
+ orderByNullsFirst?: boolean;
14
+ groupBy?: string | string[];
15
+ fields?: string | string[];
16
+ logger?: PgDbLogger;
17
+ forUpdate?: boolean;
18
+ distinct?: boolean;
19
+ skipUndefined?: boolean;
20
+ forceEscapeColumns?: boolean | ForceEscapeColumnsOptions;
21
+ }
22
+ export interface SqlQueryOptions {
23
+ logger?: PgDbLogger;
24
+ }
25
+ export interface ResultType {
26
+ command: 'SELECT' | 'UPDATE' | 'DELETE';
27
+ rowCount: number;
28
+ oid: number;
29
+ rows: any[];
30
+ fields: ResultFieldType[];
31
+ _parsers: Function[][];
32
+ RowCtor: Function[];
33
+ rowsAsArray: boolean;
34
+ _getTypeParser: Function[];
35
+ }
36
+ export interface PgRowResult {
37
+ columns: string[];
38
+ rows: any[];
39
+ }
40
+ export interface IQueryAble {
41
+ db: IPgDb & IQueryAble;
42
+ schema: IPgSchema;
43
+ logger: PgDbLogger;
44
+ setLogger(logger: PgDbLogger): void;
45
+ getLogger(useConsoleAsDefault: boolean): PgDbLogger;
46
+ run(sql: string, params?: any[] | {}, options?: SqlQueryOptions): Promise<any[]>;
47
+ query(sql: string, params?: any[] | {} | null, options?: SqlQueryOptions): Promise<any[]>;
48
+ queryAsRows(sql: string, params?: any[] | {}, options?: SqlQueryOptions): Promise<PgRowResult>;
49
+ queryWithOnCursorCallback(sql: string, params: any[] | Record<string, any> | null, options: SqlQueryOptions | null, callback: (res: any) => any): Promise<void>;
50
+ queryAsStream(sql: string, params?: any[] | Record<string, any> | null, options?: SqlQueryOptions | null): Promise<stream.Readable>;
51
+ queryOne(sql: string, params?: any[] | {}, options?: SqlQueryOptions): Promise<any>;
52
+ queryFirst(sql: string, params?: any[] | {}, options?: SqlQueryOptions): Promise<any>;
53
+ queryOneField(sql: string, params?: any[] | {}, options?: SqlQueryOptions): Promise<any>;
54
+ queryOneColumn(sql: string, params?: any[] | {}, options?: SqlQueryOptions): Promise<any[]>;
55
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ let defaultLogger = {
4
+ log: () => { },
5
+ error: () => { }
6
+ };
7
+ //# sourceMappingURL=queryAbleInterface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryAbleInterface.js","sourceRoot":"","sources":["../src/queryAbleInterface.ts"],"names":[],"mappings":";;AAgDA,IAAI,aAAa,GAAG;IAChB,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACd,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC;CACnB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { FieldType } from "./pgDb";
2
- declare function generateWhere(conditions: any, fieldTypes: {
2
+ declare function generateWhere(conditions: Record<string, any>, fieldTypes: {
3
3
  [index: string]: FieldType;
4
- }, tableName: string, placeholderOffset: number, skipUndefined: any): {
4
+ }, tableName: string, placeholderOffset?: number, skipUndefined?: boolean): {
5
5
  where: string;
6
6
  params: Array<any>;
7
7
  };