pogi 3.0.0-beta → 3.0.0-beta5

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 (129) hide show
  1. package/.env +5 -0
  2. package/lib/bin/generateInterface.js +1 -1
  3. package/lib/connectionOptions.d.ts +7 -0
  4. package/lib/index.d.ts +1 -1
  5. package/lib/pgConverters.d.ts +9 -10
  6. package/lib/pgConverters.js +44 -39
  7. package/lib/pgConverters.js.map +1 -1
  8. package/lib/{src/pgConverters.test.d.ts → pgConverters.test.d.ts} +0 -0
  9. package/lib/{src/pgConverters.test.js → pgConverters.test.js} +0 -0
  10. package/lib/pgConverters.test.js.map +1 -0
  11. package/lib/pgDb.d.ts +24 -31
  12. package/lib/pgDb.js +66 -69
  13. package/lib/pgDb.js.map +1 -1
  14. package/lib/{src/pgDb.test.d.ts → pgDb.test.d.ts} +0 -0
  15. package/lib/{src/pgDb.test.js → pgDb.test.js} +6 -0
  16. package/lib/pgDb.test.js.map +1 -0
  17. package/lib/pgDbInterface.d.ts +22 -0
  18. package/lib/pgDbInterface.js +11 -0
  19. package/lib/pgDbInterface.js.map +1 -0
  20. package/lib/pgDbOperators.d.ts +3 -3
  21. package/lib/pgDbOperators.js +4 -7
  22. package/lib/pgDbOperators.js.map +1 -1
  23. package/lib/{src/pgDbOperators.test.d.ts → pgDbOperators.test.d.ts} +0 -0
  24. package/lib/{src/pgDbOperators.test.js → pgDbOperators.test.js} +0 -0
  25. package/lib/pgDbOperators.test.js.map +1 -0
  26. package/lib/pgSchema.d.ts +2 -3
  27. package/lib/pgSchema.js.map +1 -1
  28. package/lib/pgSchemaInterface.d.ts +0 -0
  29. package/lib/pgSchemaInterface.js +2 -0
  30. package/lib/pgSchemaInterface.js.map +1 -0
  31. package/lib/pgTable.d.ts +13 -38
  32. package/lib/pgTable.js +54 -54
  33. package/lib/pgTable.js.map +1 -1
  34. package/lib/pgTableInterface.d.ts +28 -0
  35. package/lib/{src/pgTableInterface.js → pgTableInterface.js} +0 -0
  36. package/lib/pgTableInterface.js.map +1 -0
  37. package/lib/pgUtils.d.ts +15 -5
  38. package/lib/pgUtils.js +118 -24
  39. package/lib/pgUtils.js.map +1 -1
  40. package/lib/queryAble.d.ts +15 -64
  41. package/lib/queryAble.js +46 -45
  42. package/lib/queryAble.js.map +1 -1
  43. package/lib/{src/queryAbleInterface.d.ts → queryAbleInterface.d.ts} +6 -10
  44. package/lib/{src/queryAbleInterface.js → queryAbleInterface.js} +0 -0
  45. package/lib/queryAbleInterface.js.map +1 -0
  46. package/lib/queryWhere.d.ts +2 -2
  47. package/lib/queryWhere.js +19 -23
  48. package/lib/queryWhere.js.map +1 -1
  49. package/lib/{src/bin/generateInterface.d.ts → test/pgDbOperatorSpec.d.ts} +0 -0
  50. package/lib/test/pgDbOperatorSpec.js +326 -0
  51. package/lib/test/pgDbOperatorSpec.js.map +1 -0
  52. package/lib/test/pgDbSpec.d.ts +1 -0
  53. package/lib/test/pgDbSpec.js +1139 -0
  54. package/lib/test/pgDbSpec.js.map +1 -0
  55. package/lib/test/pgServiceRestartTest.d.ts +1 -0
  56. package/lib/test/pgServiceRestartTest.js +1532 -0
  57. package/lib/test/pgServiceRestartTest.js.map +1 -0
  58. package/package.json +2 -1
  59. package/tsconfig.json +3 -5
  60. package/lib/src/bin/generateInterface.js +0 -53
  61. package/lib/src/bin/generateInterface.js.map +0 -1
  62. package/lib/src/connectionOptions.d.ts +0 -34
  63. package/lib/src/connectionOptions.js +0 -3
  64. package/lib/src/connectionOptions.js.map +0 -1
  65. package/lib/src/index.d.ts +0 -6
  66. package/lib/src/index.js +0 -12
  67. package/lib/src/index.js.map +0 -1
  68. package/lib/src/pgConverters.d.ts +0 -9
  69. package/lib/src/pgConverters.js +0 -71
  70. package/lib/src/pgConverters.js.map +0 -1
  71. package/lib/src/pgConverters.test.js.map +0 -1
  72. package/lib/src/pgDb.d.ts +0 -79
  73. package/lib/src/pgDb.js +0 -764
  74. package/lib/src/pgDb.js.map +0 -1
  75. package/lib/src/pgDb.test.js.map +0 -1
  76. package/lib/src/pgDbInterface.js +0 -11
  77. package/lib/src/pgDbInterface.js.map +0 -1
  78. package/lib/src/pgDbLogger.d.ts +0 -5
  79. package/lib/src/pgDbLogger.js +0 -3
  80. package/lib/src/pgDbLogger.js.map +0 -1
  81. package/lib/src/pgDbOperators.d.ts +0 -113
  82. package/lib/src/pgDbOperators.js +0 -41
  83. package/lib/src/pgDbOperators.js.map +0 -1
  84. package/lib/src/pgDbOperators.test.js.map +0 -1
  85. package/lib/src/pgSchema.d.ts +0 -17
  86. package/lib/src/pgSchema.js +0 -16
  87. package/lib/src/pgSchema.js.map +0 -1
  88. package/lib/src/pgSchemaInterface.d.ts +0 -12
  89. package/lib/src/pgSchemaInterface.js +0 -3
  90. package/lib/src/pgSchemaInterface.js.map +0 -1
  91. package/lib/src/pgTable.d.ts +0 -105
  92. package/lib/src/pgTable.js +0 -322
  93. package/lib/src/pgTable.js.map +0 -1
  94. package/lib/src/pgTableInterface.d.ts +0 -102
  95. package/lib/src/pgTableInterface.js.map +0 -1
  96. package/lib/src/pgUtils.d.ts +0 -41
  97. package/lib/src/pgUtils.js +0 -282
  98. package/lib/src/pgUtils.js.map +0 -1
  99. package/lib/src/queryAble.d.ts +0 -40
  100. package/lib/src/queryAble.js +0 -338
  101. package/lib/src/queryAble.js.map +0 -1
  102. package/lib/src/queryAbleInterface.js.map +0 -1
  103. package/lib/src/queryWhere.d.ts +0 -8
  104. package/lib/src/queryWhere.js +0 -245
  105. package/lib/src/queryWhere.js.map +0 -1
  106. package/src/bin/generateInterface.ts +0 -54
  107. package/src/connectionOptions.ts +0 -75
  108. package/src/index.d.ts +0 -7
  109. package/src/index.ts +0 -6
  110. package/src/pgConverters.test.ts +0 -10
  111. package/src/pgConverters.ts +0 -59
  112. package/src/pgDb.test.ts +0 -1324
  113. package/src/pgDb.ts +0 -842
  114. package/src/pgDbInterface.ts +0 -57
  115. package/src/pgDbLogger.ts +0 -13
  116. package/src/pgDbOperators.test.ts +0 -478
  117. package/src/pgDbOperators.ts +0 -85
  118. package/src/pgSchema.ts +0 -16
  119. package/src/pgSchemaInterface.ts +0 -12
  120. package/src/pgTable.ts +0 -369
  121. package/src/pgTableInterface.ts +0 -131
  122. package/src/pgUtils.ts +0 -290
  123. package/src/queryAble.ts +0 -365
  124. package/src/queryAbleInterface.ts +0 -108
  125. package/src/queryWhere.ts +0 -325
  126. package/src/test/init.sql +0 -122
  127. package/src/test/pgServiceRestartTest.ts +0 -1500
  128. package/src/test/throw_exception.sql +0 -5
  129. package/src/test/tricky.sql +0 -13
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,30 +25,65 @@ 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 {
51
- return s + options.fields;
86
+ return s + (escapeColumns ? exports.pgUtils.quoteFieldName(options.fields) : exports.pgUtils.quoteFieldNameInsecure(options.fields));
52
87
  }
53
88
  }
54
89
  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,52 @@ 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(',') :
160
+ Array.isArray(options.orderBy) ? options.orderBy : Object.entries(options.orderBy).map(([k, v]) => k + ' ' + v);
161
+ if (Array.isArray(orderBy)) {
162
+ let orderBy2;
163
+ if (escapeColumns) {
164
+ orderBy2 = orderBy.map(v => {
105
165
  var _a;
106
166
  if (typeof v === 'number')
107
167
  return exports.pgUtils.quoteFieldNameOrPosition(v);
@@ -116,10 +176,41 @@ exports.pgUtils = {
116
176
  throw new Error(`Invalid orderBy: ${v}`);
117
177
  return `${exports.pgUtils.quoteFieldNameOrPosition(o[1])} ${(_a = o[2]) !== null && _a !== void 0 ? _a : ''}`;
118
178
  });
119
- sql += ' ORDER BY ' + orderBy2.join(',');
120
179
  }
121
180
  else {
122
- throw new Error(`Invalid orderBy: ${options.orderBy}`);
181
+ orderBy2 = orderBy.map(v => {
182
+ var _a;
183
+ if (typeof v === 'number')
184
+ return exports.pgUtils.quoteFieldNameOrPositionInsecure(v);
185
+ else if (typeof v !== 'string' || !v.length)
186
+ throw new Error(`Invalid orderBy: ${v}`);
187
+ if (v[0] == '+')
188
+ return exports.pgUtils.quoteFieldNameOrPositionInsecure(v.slice(1));
189
+ if (v[0] == '-')
190
+ return exports.pgUtils.quoteFieldNameOrPositionInsecure(v.slice(1)) + ' desc';
191
+ let o = ASC_DESC_REGEXP.exec(v);
192
+ if (!o)
193
+ throw new Error(`Invalid orderBy: ${v}`);
194
+ return `${exports.pgUtils.quoteFieldNameOrPositionInsecure(o[1])} ${(_a = o[2]) !== null && _a !== void 0 ? _a : ''}`;
195
+ });
196
+ }
197
+ sql += ' ORDER BY ' + orderBy2.join(',');
198
+ }
199
+ else {
200
+ throw new Error(`Invalid orderBy: ${options.orderBy}`);
201
+ }
202
+ return sql;
203
+ },
204
+ processQueryOptions(options, pgTable) {
205
+ options = options || {};
206
+ let sql = '';
207
+ if (options.groupBy) {
208
+ sql += exports.pgUtils.handleColumnEscapeGroupBy(options, pgTable);
209
+ }
210
+ if (options.orderBy) {
211
+ sql += exports.pgUtils.handleColumnEscapeOrderBy(options, pgTable);
212
+ if (options.orderByNullsFirst != null) {
213
+ sql += ' NULLS ' + options.orderByNullsFirst ? 'FIRST' : 'LAST';
123
214
  }
124
215
  }
125
216
  if (options.limit) {
@@ -165,7 +256,7 @@ exports.pgUtils = {
165
256
  });
166
257
  },
167
258
  createFunctionCaller(q, fn) {
168
- return (...args) => tslib_1.__awaiter(this, void 0, void 0, function* () {
259
+ return (...args) => (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
169
260
  let placeHolders = [];
170
261
  let params = [];
171
262
  args.forEach((arg) => {
@@ -190,6 +281,9 @@ exports.pgUtils = {
190
281
  return res;
191
282
  }
192
283
  });
284
+ },
285
+ escapeForLike(s) {
286
+ return s.replace(/([\\%_])/g, '\\$1');
193
287
  }
194
288
  };
195
289
  //# 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,34 @@
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 * as pg from 'pg';
5
+ import { SqlQueryOptions, IQueryAble, PgRowResult } from "./queryAbleInterface";
6
+ import { PgDb, PgSchema } from ".";
7
+ export declare abstract class QueryAble implements IQueryAble {
8
+ db: PgDb & QueryAble;
9
+ schema: PgSchema;
10
+ logger: PgDbLogger;
59
11
  static connectionErrorListener: () => void;
60
- constructor();
61
12
  setLogger(logger: PgDbLogger): void;
62
- getLogger(useConsoleAsDefault?: boolean): any;
13
+ getLogger(useConsoleAsDefault?: boolean): PgDbLogger;
63
14
  run(sql: string, params?: any[] | {}, options?: SqlQueryOptions): Promise<any[]>;
64
- query(sql: string, params?: any[] | {}, options?: SqlQueryOptions): Promise<any[]>;
15
+ query(sql: string, params?: any[] | {} | null, options?: SqlQueryOptions): Promise<any[]>;
65
16
  protected internalQuery(options: {
66
- connection: any;
17
+ connection: pg.PoolClient | null;
67
18
  sql: string;
68
19
  params?: any;
69
- logger?: any;
20
+ logger?: PgDbLogger;
70
21
  }): Promise<any[]>;
71
22
  protected internalQuery(options: {
72
- connection: any;
23
+ connection: pg.PoolClient | null;
73
24
  sql: string;
74
25
  params?: any;
75
- logger?: any;
26
+ logger?: PgDbLogger;
76
27
  rowMode: true;
77
28
  }): Promise<PgRowResult>;
78
29
  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>;
30
+ queryWithOnCursorCallback(sql: string, params: any[] | Record<string, any> | null, options: SqlQueryOptions | null, callback: (res: any) => any): Promise<void>;
31
+ queryAsStream(sql: string, params?: any[] | Record<string, any> | null, options?: SqlQueryOptions | null): Promise<stream.Readable>;
81
32
  queryOne(sql: string, params?: any[] | {}, options?: SqlQueryOptions): Promise<any>;
82
33
  queryFirst(sql: string, params?: any[] | {}, options?: SqlQueryOptions): Promise<any>;
83
34
  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 !== null && params !== void 0 ? params : undefined;
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,25 +181,25 @@ 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
  }
191
188
  let connection = this.db.connection;
192
189
  let logger = (options && options.logger || this.getLogger(false));
193
190
  let pgStream;
194
- let queriable = this;
191
+ let queryable = this;
195
192
  let isFirst = true;
196
193
  let convertTypeFilter = through(function (data) {
197
194
  try {
198
195
  let fields = pgStream._result && pgStream._result.fields || pgStream.cursor._result && pgStream.cursor._result.fields;
199
196
  if (isFirst) {
200
- if (queriable.hasUnknownOids(fields)) {
197
+ if (queryable.hasUnknownOids(fields)) {
201
198
  throw new Error('[337] Query returns fields with unknown oid.');
202
199
  }
203
200
  isFirst = false;
204
201
  }
205
- queriable.postProcessFields([data], fields, queriable.db.pgdbTypeParsers);
202
+ queryable.postProcessFields([data], fields, queryable.db.logger);
206
203
  this.emit('data', data);
207
204
  }
208
205
  catch (err) {
@@ -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 !== null && params !== void 0 ? params : undefined;
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);