pogi 3.0.0-beta → 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 (100) hide show
  1. package/lib/bin/generateInterface.js +1 -1
  2. package/lib/connectionOptions.d.ts +10 -0
  3. package/lib/index.d.ts +1 -1
  4. package/lib/pgConverters.d.ts +9 -10
  5. package/lib/pgConverters.js +44 -39
  6. package/lib/pgConverters.js.map +1 -1
  7. package/lib/{src/pgConverters.test.d.ts → pgConverters.test.d.ts} +0 -0
  8. package/lib/{src/pgConverters.test.js → pgConverters.test.js} +0 -0
  9. package/lib/pgConverters.test.js.map +1 -0
  10. package/lib/pgDb.d.ts +18 -27
  11. package/lib/pgDb.js +59 -62
  12. package/lib/pgDb.js.map +1 -1
  13. package/lib/{src/pgDb.test.d.ts → pgDb.test.d.ts} +0 -0
  14. package/lib/{src/pgDb.test.js → pgDb.test.js} +0 -0
  15. package/lib/pgDb.test.js.map +1 -0
  16. package/lib/pgDbInterface.d.ts +53 -0
  17. package/lib/{src/pgDbInterface.js → pgDbInterface.js} +0 -0
  18. package/lib/pgDbInterface.js.map +1 -0
  19. package/lib/pgDbOperators.d.ts +3 -3
  20. package/lib/pgDbOperators.js +4 -7
  21. package/lib/pgDbOperators.js.map +1 -1
  22. package/lib/{src/pgDbOperators.test.d.ts → pgDbOperators.test.d.ts} +0 -0
  23. package/lib/{src/pgDbOperators.test.js → pgDbOperators.test.js} +0 -0
  24. package/lib/pgDbOperators.test.js.map +1 -0
  25. package/lib/pgSchema.d.ts +10 -9
  26. package/lib/pgSchema.js.map +1 -1
  27. package/lib/{src/pgSchemaInterface.d.ts → pgSchemaInterface.d.ts} +0 -0
  28. package/lib/{src/pgSchemaInterface.js → pgSchemaInterface.js} +0 -0
  29. package/lib/pgSchemaInterface.js.map +1 -0
  30. package/lib/pgTable.d.ts +15 -40
  31. package/lib/pgTable.js +54 -54
  32. package/lib/pgTable.js.map +1 -1
  33. package/lib/{src/pgTableInterface.d.ts → pgTableInterface.d.ts} +3 -3
  34. package/lib/{src/pgTableInterface.js → pgTableInterface.js} +0 -0
  35. package/lib/pgTableInterface.js.map +1 -0
  36. package/lib/pgUtils.d.ts +13 -5
  37. package/lib/pgUtils.js +116 -23
  38. package/lib/pgUtils.js.map +1 -1
  39. package/lib/queryAble.d.ts +16 -64
  40. package/lib/queryAble.js +43 -42
  41. package/lib/queryAble.js.map +1 -1
  42. package/lib/{src/queryAbleInterface.d.ts → queryAbleInterface.d.ts} +2 -6
  43. package/lib/{src/queryAbleInterface.js → queryAbleInterface.js} +0 -0
  44. package/lib/queryAbleInterface.js.map +1 -0
  45. package/lib/queryWhere.d.ts +2 -2
  46. package/lib/queryWhere.js +19 -23
  47. package/lib/queryWhere.js.map +1 -1
  48. package/package.json +2 -1
  49. package/src/connectionOptions.ts +9 -7
  50. package/src/index.ts +1 -1
  51. package/src/pgDb.ts +3 -3
  52. package/src/pgDbInterface.ts +2 -2
  53. package/src/pgTable.ts +6 -6
  54. package/src/pgTableInterface.ts +20 -20
  55. package/src/pgUtils.ts +16 -6
  56. package/src/queryAbleInterface.ts +2 -6
  57. package/tsconfig.json +3 -5
  58. package/lib/src/bin/generateInterface.d.ts +0 -1
  59. package/lib/src/bin/generateInterface.js +0 -53
  60. package/lib/src/bin/generateInterface.js.map +0 -1
  61. package/lib/src/connectionOptions.d.ts +0 -34
  62. package/lib/src/connectionOptions.js +0 -3
  63. package/lib/src/connectionOptions.js.map +0 -1
  64. package/lib/src/index.d.ts +0 -6
  65. package/lib/src/index.js +0 -12
  66. package/lib/src/index.js.map +0 -1
  67. package/lib/src/pgConverters.d.ts +0 -9
  68. package/lib/src/pgConverters.js +0 -71
  69. package/lib/src/pgConverters.js.map +0 -1
  70. package/lib/src/pgConverters.test.js.map +0 -1
  71. package/lib/src/pgDb.d.ts +0 -79
  72. package/lib/src/pgDb.js +0 -764
  73. package/lib/src/pgDb.js.map +0 -1
  74. package/lib/src/pgDb.test.js.map +0 -1
  75. package/lib/src/pgDbInterface.js.map +0 -1
  76. package/lib/src/pgDbLogger.d.ts +0 -5
  77. package/lib/src/pgDbLogger.js +0 -3
  78. package/lib/src/pgDbLogger.js.map +0 -1
  79. package/lib/src/pgDbOperators.d.ts +0 -113
  80. package/lib/src/pgDbOperators.js +0 -41
  81. package/lib/src/pgDbOperators.js.map +0 -1
  82. package/lib/src/pgDbOperators.test.js.map +0 -1
  83. package/lib/src/pgSchema.d.ts +0 -17
  84. package/lib/src/pgSchema.js +0 -16
  85. package/lib/src/pgSchema.js.map +0 -1
  86. package/lib/src/pgSchemaInterface.js.map +0 -1
  87. package/lib/src/pgTable.d.ts +0 -105
  88. package/lib/src/pgTable.js +0 -322
  89. package/lib/src/pgTable.js.map +0 -1
  90. package/lib/src/pgTableInterface.js.map +0 -1
  91. package/lib/src/pgUtils.d.ts +0 -41
  92. package/lib/src/pgUtils.js +0 -282
  93. package/lib/src/pgUtils.js.map +0 -1
  94. package/lib/src/queryAble.d.ts +0 -40
  95. package/lib/src/queryAble.js +0 -338
  96. package/lib/src/queryAble.js.map +0 -1
  97. package/lib/src/queryAbleInterface.js.map +0 -1
  98. package/lib/src/queryWhere.d.ts +0 -8
  99. package/lib/src/queryWhere.js +0 -245
  100. package/lib/src/queryWhere.js.map +0 -1
package/lib/pgUtils.js CHANGED
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const pgDb_1 = require("./pgDb");
6
6
  const util = require("util");
7
7
  const NAMED_PARAMS_REGEXP = /(?:^|[^:]):(!?[a-zA-Z0-9_]+)/g;
8
- const ASC_DESC_REGEXP = /^(.+?)(?:\s+(asc|desc))?$/i;
8
+ const ASC_DESC_REGEXP = /^\s*(.+?)(?:\s+(asc|desc))?\s*$/i;
9
9
  exports.pgUtils = {
10
10
  logError(logger, options) {
11
11
  let { error, sql, params, connection } = options;
@@ -25,26 +25,61 @@ exports.pgUtils = {
25
25
  throw new Error(`Invalid field: ${f}`);
26
26
  }
27
27
  },
28
+ quoteFieldNameOrPositionInsecure(f) {
29
+ if (Number.isInteger(+f)) {
30
+ if (!Number.isInteger(+f) || +f < 1)
31
+ throw new Error(`Invalid field: ${f}`);
32
+ return '' + f;
33
+ }
34
+ else if (typeof f === 'string' && f.length) {
35
+ return f.indexOf('"') == -1 && f.indexOf('(') == -1 ? '"' + f + '"' : f;
36
+ }
37
+ else {
38
+ throw new Error(`Invalid field: ${f}`);
39
+ }
40
+ },
28
41
  quoteFieldNameOrPosition(f) {
29
- if (typeof f === 'string' && f.length) {
42
+ if (Number.isInteger(+f)) {
43
+ if (!Number.isInteger(+f) || +f < 1)
44
+ throw new Error(`Invalid field: ${f}`);
45
+ return '' + f;
46
+ }
47
+ else if (typeof f === 'string' && f.length) {
30
48
  return `"${f
31
- .replace(/^\s*"*/, '')
32
- .replace(/"*\s*$/, '')
49
+ .replace(/^\s*"*\s*/, '')
50
+ .replace(/\s*"*\s*$/, '')
33
51
  .replace(/"/g, '""')}"`;
34
52
  }
35
- else if (typeof f === 'number') {
36
- if (!Number.isInteger(f) || f < 1)
37
- throw new Error(`Invalid field: ${f}`);
53
+ else {
54
+ throw new Error(`Invalid field: ${f}`);
55
+ }
56
+ },
57
+ quoteFieldNameJsonbOrPosition(f) {
58
+ if (Number.isInteger(+f)) {
38
59
  return '' + f;
39
60
  }
61
+ if (typeof f === 'string' && f.length) {
62
+ return `'${f
63
+ .replace(/^\s*'*/, '')
64
+ .replace(/'*\s*$/, '')
65
+ .replace(/'/g, "''")}'`;
66
+ }
40
67
  else {
41
68
  throw new Error(`Invalid field: ${f}`);
42
69
  }
43
70
  },
44
- processQueryFields(options) {
71
+ processQueryFields(options, pgTable) {
72
+ var _a, _b, _c;
73
+ let escapeColumns = (((pgTable === null || pgTable === void 0 ? void 0 : pgTable.db.config.forceEscapeColumns) === true || ((_a = pgTable === null || pgTable === void 0 ? void 0 : pgTable.db.config.forceEscapeColumns) === null || _a === void 0 ? void 0 : _a.select) === true)
74
+ && options.forceEscapeColumns !== false && ((_b = options.forceEscapeColumns) === null || _b === void 0 ? void 0 : _b.select) !== false)
75
+ || options.forceEscapeColumns === true
76
+ || ((_c = options.forceEscapeColumns) === null || _c === void 0 ? void 0 : _c.select);
45
77
  let s = options && options.distinct ? ' DISTINCT ' : ' ';
46
78
  if (options && options.fields) {
47
79
  if (Array.isArray(options.fields)) {
80
+ if (escapeColumns) {
81
+ return s + options.fields.map(exports.pgUtils.quoteFieldName).join(', ');
82
+ }
48
83
  return s + options.fields.map(exports.pgUtils.quoteFieldNameInsecure).join(', ');
49
84
  }
50
85
  else {
@@ -72,7 +107,7 @@ exports.pgUtils = {
72
107
  }
73
108
  sql2.push(sql.slice(lastIndex, NAMED_PARAMS_REGEXP.lastIndex - p[1].length - 1));
74
109
  if (ddl) {
75
- sql2.push('"' + ('' + params[name]).replace(/"/g, '""') + '"');
110
+ sql2.push(exports.pgUtils.quoteFieldName(params[name]));
76
111
  }
77
112
  else {
78
113
  params2.push(params[name]);
@@ -81,27 +116,51 @@ exports.pgUtils = {
81
116
  lastIndex = NAMED_PARAMS_REGEXP.lastIndex;
82
117
  p = NAMED_PARAMS_REGEXP.exec(sql);
83
118
  }
84
- sql2.push(sql.substr(lastIndex));
119
+ sql2.push(sql.slice(lastIndex));
85
120
  return {
86
121
  sql: sql2.join(''),
87
122
  params: params2
88
123
  };
89
124
  },
90
- processQueryOptions(options) {
91
- options = options || {};
92
- let sql = '';
93
- if (options.groupBy) {
125
+ handleColumnEscapeGroupBy(options, pgTable) {
126
+ var _a, _b, _c;
127
+ if (!options.groupBy)
128
+ return '';
129
+ let escapeColumns = (((pgTable === null || pgTable === void 0 ? void 0 : pgTable.db.config.forceEscapeColumns) === true || ((_a = pgTable === null || pgTable === void 0 ? void 0 : pgTable.db.config.forceEscapeColumns) === null || _a === void 0 ? void 0 : _a.groupBy) === true)
130
+ && options.forceEscapeColumns !== false && ((_b = options.forceEscapeColumns) === null || _b === void 0 ? void 0 : _b.groupBy) !== false)
131
+ || options.forceEscapeColumns === true
132
+ || ((_c = options.forceEscapeColumns) === null || _c === void 0 ? void 0 : _c.groupBy);
133
+ if (escapeColumns) {
94
134
  if (Array.isArray(options.groupBy)) {
95
- sql += ' GROUP BY ' + options.groupBy.map(exports.pgUtils.quoteFieldNameOrPosition).join(',');
135
+ return ' GROUP BY ' + options.groupBy.map(exports.pgUtils.quoteFieldNameOrPosition).join(',');
96
136
  }
97
137
  else {
98
- sql += ' GROUP BY ' + exports.pgUtils.quoteFieldNameOrPosition(options.groupBy);
138
+ return ' GROUP BY ' + exports.pgUtils.quoteFieldNameOrPosition(options.groupBy);
99
139
  }
100
140
  }
101
- if (options.orderBy) {
102
- let orderBy = typeof options.orderBy === 'string' ? options.orderBy.split(',') : options.orderBy;
103
- if (Array.isArray(orderBy)) {
104
- let orderBy2 = orderBy.map(v => {
141
+ else {
142
+ if (Array.isArray(options.groupBy)) {
143
+ return ' GROUP BY ' + options.groupBy.map(exports.pgUtils.quoteFieldNameOrPositionInsecure).join(',');
144
+ }
145
+ else {
146
+ return ' GROUP BY ' + exports.pgUtils.quoteFieldNameOrPositionInsecure(options.groupBy);
147
+ }
148
+ }
149
+ },
150
+ handleColumnEscapeOrderBy(options, pgTable) {
151
+ var _a, _b, _c;
152
+ if (!options.orderBy)
153
+ return '';
154
+ let sql = '';
155
+ let escapeColumns = (((pgTable === null || pgTable === void 0 ? void 0 : pgTable.db.config.forceEscapeColumns) === true || ((_a = pgTable === null || pgTable === void 0 ? void 0 : pgTable.db.config.forceEscapeColumns) === null || _a === void 0 ? void 0 : _a.orderBy) === true)
156
+ && options.forceEscapeColumns !== false && ((_b = options.forceEscapeColumns) === null || _b === void 0 ? void 0 : _b.orderBy) !== false)
157
+ || options.forceEscapeColumns === true
158
+ || ((_c = options.forceEscapeColumns) === null || _c === void 0 ? void 0 : _c.orderBy);
159
+ let orderBy = typeof options.orderBy === 'string' ? options.orderBy.split(',') : options.orderBy;
160
+ if (Array.isArray(orderBy)) {
161
+ let orderBy2;
162
+ if (escapeColumns) {
163
+ orderBy2 = orderBy.map(v => {
105
164
  var _a;
106
165
  if (typeof v === 'number')
107
166
  return exports.pgUtils.quoteFieldNameOrPosition(v);
@@ -116,10 +175,41 @@ exports.pgUtils = {
116
175
  throw new Error(`Invalid orderBy: ${v}`);
117
176
  return `${exports.pgUtils.quoteFieldNameOrPosition(o[1])} ${(_a = o[2]) !== null && _a !== void 0 ? _a : ''}`;
118
177
  });
119
- sql += ' ORDER BY ' + orderBy2.join(',');
120
178
  }
121
179
  else {
122
- throw new Error(`Invalid orderBy: ${options.orderBy}`);
180
+ orderBy2 = orderBy.map(v => {
181
+ var _a;
182
+ if (typeof v === 'number')
183
+ return exports.pgUtils.quoteFieldNameOrPositionInsecure(v);
184
+ else if (typeof v !== 'string' || !v.length)
185
+ throw new Error(`Invalid orderBy: ${v}`);
186
+ if (v[0] == '+')
187
+ return exports.pgUtils.quoteFieldNameOrPositionInsecure(v.slice(1));
188
+ if (v[0] == '-')
189
+ return exports.pgUtils.quoteFieldNameOrPositionInsecure(v.slice(1)) + ' desc';
190
+ let o = ASC_DESC_REGEXP.exec(v);
191
+ if (!o)
192
+ throw new Error(`Invalid orderBy: ${v}`);
193
+ return `${exports.pgUtils.quoteFieldNameOrPositionInsecure(o[1])} ${(_a = o[2]) !== null && _a !== void 0 ? _a : ''}`;
194
+ });
195
+ }
196
+ sql += ' ORDER BY ' + orderBy2.join(',');
197
+ }
198
+ else {
199
+ throw new Error(`Invalid orderBy: ${options.orderBy}`);
200
+ }
201
+ return sql;
202
+ },
203
+ processQueryOptions(options, pgTable) {
204
+ options = options || {};
205
+ let sql = '';
206
+ if (options.groupBy) {
207
+ sql += exports.pgUtils.handleColumnEscapeGroupBy(options, pgTable);
208
+ }
209
+ if (options.orderBy) {
210
+ sql += exports.pgUtils.handleColumnEscapeOrderBy(options, pgTable);
211
+ if (options.orderByNullsFirst != null) {
212
+ sql += ' NULLS ' + options.orderByNullsFirst ? 'FIRST' : 'LAST';
123
213
  }
124
214
  }
125
215
  if (options.limit) {
@@ -165,7 +255,7 @@ exports.pgUtils = {
165
255
  });
166
256
  },
167
257
  createFunctionCaller(q, fn) {
168
- return (...args) => tslib_1.__awaiter(this, void 0, void 0, function* () {
258
+ return (...args) => (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
169
259
  let placeHolders = [];
170
260
  let params = [];
171
261
  args.forEach((arg) => {
@@ -190,6 +280,9 @@ exports.pgUtils = {
190
280
  return res;
191
281
  }
192
282
  });
283
+ },
284
+ escapeForLike(s) {
285
+ return s.replace(/([\\%_])/g, '\\$1');
193
286
  }
194
287
  };
195
288
  //# sourceMappingURL=pgUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pgUtils.js","sourceRoot":"","sources":["../src/pgUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pgUtils.js","sourceRoot":"","sources":["../src/pgUtils.ts"],"names":[],"mappings":"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"}
@@ -1,83 +1,35 @@
1
1
  /// <reference types="node" />
2
2
  import { PgDbLogger } from "./pgDbLogger";
3
3
  import * as stream from "stream";
4
- export interface QueryOptions {
5
- limit?: number;
6
- offset?: number;
7
- orderBy?: string | string[] | {
8
- [fieldName: string]: 'asc' | 'desc';
9
- };
10
- groupBy?: string | string[];
11
- fields?: string | string[];
12
- logger?: PgDbLogger;
13
- forUpdate?: boolean;
14
- distinct?: boolean;
15
- skipUndefined?: boolean;
16
- }
17
- export interface SqlQueryOptions {
18
- logger?: PgDbLogger;
19
- }
20
- export interface ResultFieldType {
21
- name: string;
22
- tableID: number;
23
- columnID: number;
24
- dataTypeID: number;
25
- dataTypeSize: number;
26
- dataTypeModifier: number;
27
- format: string;
28
- }
29
- export interface ResultType {
30
- command: 'SELECT' | 'UPDATE' | 'DELETE';
31
- rowCount: number;
32
- oid: number;
33
- rows: any[];
34
- fields: ResultFieldType[];
35
- _parsers: Function[][];
36
- RowCtor: Function[];
37
- rowsAsArray: boolean;
38
- _getTypeParser: Function[];
39
- }
40
- export interface PgRowResult {
41
- columns: string[];
42
- rows: any[];
43
- }
44
- export declare type PostProcessResultFunc = (res: any[], fields: ResultFieldType[], logger: PgDbLogger) => void;
45
- export interface IPgDb {
46
- connection: any;
47
- pool: any;
48
- pgdbTypeParsers: any;
49
- knownOids: Record<number, boolean>;
50
- runRestartConnectionForListen(): Promise<Error>;
51
- needToFixConnectionForListen(): boolean;
52
- postProcessResult: PostProcessResultFunc;
53
- resetMissingParsers(connection: any, oidList: number[]): Promise<void>;
54
- }
55
- export declare class QueryAble {
56
- db: IPgDb & QueryAble;
57
- schema: any;
58
- protected logger: PgDbLogger;
4
+ import { IPgSchema } from "./pgSchemaInterface";
5
+ import * as pg from 'pg';
6
+ import { IPgDb } from "./pgDbInterface";
7
+ import { SqlQueryOptions, IQueryAble, PgRowResult } from "./queryAbleInterface";
8
+ export declare abstract class QueryAble implements IQueryAble {
9
+ db: IPgDb & IQueryAble;
10
+ schema: IPgSchema;
11
+ logger: PgDbLogger;
59
12
  static connectionErrorListener: () => void;
60
- constructor();
61
13
  setLogger(logger: PgDbLogger): void;
62
- getLogger(useConsoleAsDefault?: boolean): any;
14
+ getLogger(useConsoleAsDefault?: boolean): PgDbLogger;
63
15
  run(sql: string, params?: any[] | {}, options?: SqlQueryOptions): Promise<any[]>;
64
- query(sql: string, params?: any[] | {}, options?: SqlQueryOptions): Promise<any[]>;
16
+ query(sql: string, params?: any[] | {} | null, options?: SqlQueryOptions): Promise<any[]>;
65
17
  protected internalQuery(options: {
66
- connection: any;
18
+ connection: pg.PoolClient | null;
67
19
  sql: string;
68
20
  params?: any;
69
- logger?: any;
21
+ logger?: PgDbLogger;
70
22
  }): Promise<any[]>;
71
23
  protected internalQuery(options: {
72
- connection: any;
24
+ connection: pg.PoolClient | null;
73
25
  sql: string;
74
26
  params?: any;
75
- logger?: any;
27
+ logger?: PgDbLogger;
76
28
  rowMode: true;
77
29
  }): Promise<PgRowResult>;
78
30
  queryAsRows(sql: string, params?: any[] | {}, options?: SqlQueryOptions): Promise<PgRowResult>;
79
- queryWithOnCursorCallback(sql: string, params: any[] | {}, options: SqlQueryOptions, callback: (any: any) => any): Promise<void>;
80
- queryAsStream(sql: string, params?: any[] | {}, options?: SqlQueryOptions): Promise<stream.Readable>;
31
+ queryWithOnCursorCallback(sql: string, params: any[] | Record<string, any> | null, options: SqlQueryOptions | null, callback: (res: any) => any): Promise<void>;
32
+ queryAsStream(sql: string, params?: any[] | Record<string, any> | null, options?: SqlQueryOptions | null): Promise<stream.Readable>;
81
33
  queryOne(sql: string, params?: any[] | {}, options?: SqlQueryOptions): Promise<any>;
82
34
  queryFirst(sql: string, params?: any[] | {}, options?: SqlQueryOptions): Promise<any>;
83
35
  queryOneField(sql: string, params?: any[] | {}, options?: SqlQueryOptions): Promise<any>;
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,19 @@ 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* () {
36
34
  if (this.db.needToFixConnectionForListen()) {
37
35
  yield this.db.runRestartConnectionForListen();
38
36
  }
@@ -44,25 +42,25 @@ class QueryAble {
44
42
  sql = p.sql;
45
43
  params = p.params;
46
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;
47
47
  if (connection) {
48
48
  logger.log('reused connection', sql, util.inspect(params, false, null), connection.processID);
49
- let res = yield connection.query({ text: sql, values: params, rowMode: (options === null || options === void 0 ? void 0 : options.rowMode) ? 'array' : undefined });
49
+ res = yield connection.query(query);
50
50
  yield this.checkAndFixOids(connection, res.fields);
51
- this.postProcessFields(res.rows, res.fields, logger);
52
- return (options === null || options === void 0 ? void 0 : options.rowMode) ? { columns: (res.fields || []).map(f => f.name), rows: res.rows || [] } : res.rows;
53
51
  }
54
52
  else {
55
53
  connection = yield this.db.pool.connect();
56
54
  logger.log('new connection', sql, util.inspect(params, false, null), connection.processID);
57
55
  connection.on('error', QueryAble.connectionErrorListener);
58
- let res = yield connection.query({ text: sql, values: params, rowMode: (options === null || options === void 0 ? void 0 : options.rowMode) ? 'array' : undefined });
56
+ res = yield connection.query(query);
59
57
  yield this.checkAndFixOids(connection, res.fields);
60
58
  connection.off('error', QueryAble.connectionErrorListener);
61
59
  connection.release();
62
60
  connection = null;
63
- this.postProcessFields(res.rows, res.fields, logger);
64
- return (options === null || options === void 0 ? void 0 : options.rowMode) ? { columns: (res.fields || []).map(f => f.name), rows: res.rows || [] } : res.rows;
65
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;
66
64
  }
67
65
  catch (e) {
68
66
  pgUtils_1.pgUtils.logError(logger, { error: e, sql, params, connection });
@@ -79,35 +77,37 @@ class QueryAble {
79
77
  });
80
78
  }
81
79
  queryAsRows(sql, params, options) {
82
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
80
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
83
81
  let connection = this.db.connection;
84
82
  let logger = (options && options.logger || this.getLogger(false));
85
83
  return this.internalQuery({ connection, sql, params, logger, rowMode: true });
86
84
  });
87
85
  }
88
86
  queryWithOnCursorCallback(sql, params, options, callback) {
89
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
87
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
90
88
  if (this.db.needToFixConnectionForListen()) {
91
89
  yield this.db.runRestartConnectionForListen();
92
90
  }
93
91
  let connection = this.db.connection;
94
92
  let logger = this.getLogger(true);
93
+ let positionedParams;
95
94
  try {
96
95
  if (params && !Array.isArray(params)) {
97
96
  let p = pgUtils_1.pgUtils.processNamedParams(sql, params);
98
97
  sql = p.sql;
99
98
  params = p.params;
100
99
  }
101
- let queryInternal = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
102
- this.getLogger(false).log(sql, util.inspect(params, false, null), connection.processID);
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);
103
105
  let fieldsToFix;
104
106
  let isFirst = true;
105
- let query = new QueryStream(sql, params);
107
+ let query = new QueryStream(sql, positionedParams);
106
108
  let stream = connection.query(query);
107
109
  yield new Promise((resolve, reject) => {
108
- query.handleError = (err, connection) => {
109
- reject(err);
110
- };
110
+ query.handleError = reject;
111
111
  stream.on('data', (res) => {
112
112
  try {
113
113
  let fields = stream._result && stream._result.fields || stream.cursor._result && stream.cursor._result.fields;
@@ -133,12 +133,10 @@ class QueryAble {
133
133
  });
134
134
  if (fieldsToFix) {
135
135
  yield this.checkAndFixOids(connection, fieldsToFix);
136
- query = new QueryStream(sql, params);
136
+ query = new QueryStream(sql, positionedParams);
137
137
  stream = connection.query(query);
138
138
  yield new Promise((resolve, reject) => {
139
- query.handleError = (err, connection) => {
140
- reject(err);
141
- };
139
+ query.handleError = reject;
142
140
  stream.on('data', (res) => {
143
141
  try {
144
142
  let fields = stream._result && stream._result.fields || stream.cursor._result && stream.cursor._result.fields;
@@ -161,12 +159,11 @@ class QueryAble {
161
159
  }
162
160
  else {
163
161
  connection = yield this.db.pool.connect();
164
- logger.log('new connection', sql, util.inspect(params, false, null), connection.processID);
162
+ logger.log('new connection', sql, util.inspect(positionedParams, false, null), connection.processID);
165
163
  connection.on('error', QueryAble.connectionErrorListener);
166
164
  yield queryInternal();
167
165
  connection.off('error', QueryAble.connectionErrorListener);
168
166
  connection.release();
169
- connection = null;
170
167
  }
171
168
  }
172
169
  catch (e) {
@@ -184,7 +181,7 @@ class QueryAble {
184
181
  });
185
182
  }
186
183
  queryAsStream(sql, params, options) {
187
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
184
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
188
185
  if (this.db.needToFixConnectionForListen()) {
189
186
  yield this.db.runRestartConnectionForListen();
190
187
  }
@@ -221,16 +218,20 @@ class QueryAble {
221
218
  connection = null;
222
219
  pgUtils_1.pgUtils.logError(logger, { error: e, sql, params, connection });
223
220
  });
221
+ let positionedParams;
224
222
  try {
225
223
  if (params && !Array.isArray(params)) {
226
224
  let p = pgUtils_1.pgUtils.processNamedParams(sql, params);
227
225
  sql = p.sql;
228
226
  params = p.params;
229
227
  }
228
+ else {
229
+ positionedParams = params;
230
+ }
230
231
  if (connection) {
231
- logger.log(sql, util.inspect(params, false, null), connection.processID);
232
- let query = new QueryStream(sql, params);
233
- query.handleError = (err, connection) => {
232
+ logger.log(sql, util.inspect(positionedParams, false, null), connection.processID);
233
+ let query = new QueryStream(sql, positionedParams);
234
+ query.handleError = (err) => {
234
235
  convertTypeFilter.emit('error', err);
235
236
  };
236
237
  pgStream = connection.query(query);
@@ -238,10 +239,10 @@ class QueryAble {
238
239
  }
239
240
  else {
240
241
  connection = yield this.db.pool.connect();
241
- logger.log('new connection', sql, util.inspect(params, false, null), connection.processID);
242
+ logger.log('new connection', sql, util.inspect(positionedParams, false, null), connection.processID);
242
243
  connection.on('error', QueryAble.connectionErrorListener);
243
- let query = new QueryStream(sql, params);
244
- query.handleError = (err, connection) => {
244
+ let query = new QueryStream(sql, positionedParams);
245
+ query.handleError = (err, _connection) => {
245
246
  convertTypeFilter.emit('error', err);
246
247
  };
247
248
  pgStream = connection.query(query);
@@ -253,7 +254,7 @@ class QueryAble {
253
254
  connection = null;
254
255
  });
255
256
  pgStream.on('error', (e) => {
256
- pgUtils_1.pgUtils.logError(logger, { error: e, sql, params, connection });
257
+ pgUtils_1.pgUtils.logError(logger, { error: e, sql, params: positionedParams, connection });
257
258
  if (connection) {
258
259
  connection.off('error', QueryAble.connectionErrorListener);
259
260
  connection.release();
@@ -264,13 +265,13 @@ class QueryAble {
264
265
  }
265
266
  }
266
267
  catch (e) {
267
- pgUtils_1.pgUtils.logError(logger, { error: e, sql, params, connection });
268
+ pgUtils_1.pgUtils.logError(logger, { error: e, sql, params: positionedParams, connection });
268
269
  throw e;
269
270
  }
270
271
  });
271
272
  }
272
273
  queryOne(sql, params, options) {
273
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
274
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
274
275
  let res = yield this.query(sql, params, options);
275
276
  if (res.length > 1) {
276
277
  let logger = (options && options.logger || this.getLogger(false));
@@ -282,13 +283,13 @@ class QueryAble {
282
283
  });
283
284
  }
284
285
  queryFirst(sql, params, options) {
285
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
286
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
286
287
  let res = yield this.query(sql, params, options);
287
288
  return res[0];
288
289
  });
289
290
  }
290
291
  queryOneField(sql, params, options) {
291
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
292
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
292
293
  let res = yield this.query(sql, params, options);
293
294
  if (!res.length) {
294
295
  return null;
@@ -304,7 +305,7 @@ class QueryAble {
304
305
  });
305
306
  }
306
307
  queryOneColumn(sql, params, options) {
307
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
308
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
308
309
  let res = yield this.query(sql, params, options);
309
310
  if (!res.length) {
310
311
  return [];
@@ -319,7 +320,7 @@ class QueryAble {
319
320
  this.db.postProcessResult(rows, fields, logger);
320
321
  }
321
322
  checkAndFixOids(connection, fields) {
322
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
323
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
323
324
  if (fields) {
324
325
  let oidList = fields.map(field => field.dataTypeID);
325
326
  return this.db.resetMissingParsers(connection, oidList);