af-db-ts 2.0.74 → 2.0.76
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/dist/cjs/src/ms/query-ms.js +7 -0
- package/dist/cjs/src/ms/query-ms.js.map +1 -1
- package/dist/cjs/src/pg/utils-pg.js +53 -2
- package/dist/cjs/src/pg/utils-pg.js.map +1 -1
- package/dist/esm/src/ms/query-ms.js +7 -0
- package/dist/esm/src/ms/query-ms.js.map +1 -1
- package/dist/esm/src/pg/utils-pg.js +53 -2
- package/dist/esm/src/pg/utils-pg.js.map +1 -1
- package/dist/types/src/ms/query-ms.d.ts.map +1 -1
- package/dist/types/src/pg/utils-pg.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/ms/query-ms.ts +9 -2
- package/src/pg/utils-pg.ts +63 -2
|
@@ -25,6 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.queryMs = void 0;
|
|
27
27
|
const sql = __importStar(require("mssql"));
|
|
28
|
+
const af_color_1 = require("af-color");
|
|
28
29
|
const common_1 = require("../common");
|
|
29
30
|
const pool_ms_1 = require("./pool-ms");
|
|
30
31
|
const queryMs = async (connectionId, sqlText, throwError, prefix) => {
|
|
@@ -40,6 +41,12 @@ const queryMs = async (connectionId, sqlText, throwError, prefix) => {
|
|
|
40
41
|
return result;
|
|
41
42
|
}
|
|
42
43
|
catch (err) {
|
|
44
|
+
const { lineNumber } = err || {};
|
|
45
|
+
if (lineNumber) {
|
|
46
|
+
const sqlTextLines = sqlText.replace(/\r\n/, '\n').split(/\n/);
|
|
47
|
+
sqlTextLines[lineNumber - 1] = af_color_1.bg.yellow + sqlTextLines[lineNumber - 1] + af_color_1.rs + af_color_1.magenta;
|
|
48
|
+
sqlText = sqlTextLines.join('\n');
|
|
49
|
+
}
|
|
43
50
|
(0, common_1.logSqlError)(err, !throwError, sqlText, prefix);
|
|
44
51
|
}
|
|
45
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-ms.js","sourceRoot":"","sources":["../../../../src/ms/query-ms.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAA6B;AAC7B,sCAAwC;AACxC,uCAA4D;AAErD,MAAM,OAAO,GAAG,KAAK,EAC1B,YAAoB,EACpB,OAAe,EACf,UAAoB,EACpB,MAAe,EACqC,EAAE;IACtD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAA,mBAAS,EAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,EAAE,SAAS,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC;YAC1C,MAAM,IAAA,8BAAoB,EAAC,YAAY,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,0CAA0C;QAC1C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"query-ms.js","sourceRoot":"","sources":["../../../../src/ms/query-ms.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAA6B;AAC7B,uCAA2C;AAC3C,sCAAwC;AACxC,uCAA4D;AAErD,MAAM,OAAO,GAAG,KAAK,EAC1B,YAAoB,EACpB,OAAe,EACf,UAAoB,EACpB,MAAe,EACqC,EAAE;IACtD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAA,mBAAS,EAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,EAAE,SAAS,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC;YAC1C,MAAM,IAAA,8BAAoB,EAAC,YAAY,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,0CAA0C;QAC1C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAgB,EAAE,CAAC;QAC1B,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,IAAI,EAAE,CAAC;QACjC,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/D,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,aAAE,CAAC,MAAM,GAAG,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,aAAE,GAAG,kBAAO,CAAC;YACvF,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,IAAA,oBAAW,EAAC,GAAG,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;AACH,CAAC,CAAC;AAzBW,QAAA,OAAO,WAyBlB"}
|
|
@@ -3,29 +3,80 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getNormalizedTypePg = exports.getTypeByUdtNamePg = exports.getJsTypeByTypePg = void 0;
|
|
4
4
|
const getJsTypeByTypePg = (dataType, arrayType) => {
|
|
5
5
|
switch (dataType) {
|
|
6
|
+
case 'bit':
|
|
7
|
+
case 'bool':
|
|
6
8
|
case 'boolean':
|
|
7
9
|
return 'boolean';
|
|
8
10
|
case 'bigint':
|
|
9
11
|
return 'string | number';
|
|
12
|
+
case 'smallint':
|
|
13
|
+
case 'int2':
|
|
14
|
+
case 'int':
|
|
10
15
|
case 'integer':
|
|
16
|
+
case 'int4':
|
|
17
|
+
case 'int8':
|
|
11
18
|
case 'numeric':
|
|
19
|
+
case 'decimal':
|
|
12
20
|
case 'real':
|
|
13
|
-
case '
|
|
21
|
+
case 'float4':
|
|
22
|
+
case 'money':
|
|
23
|
+
case 'double precision':
|
|
24
|
+
case 'float8':
|
|
25
|
+
return 'number';
|
|
26
|
+
case 'smallserial':
|
|
27
|
+
case 'serial2':
|
|
28
|
+
case 'serial':
|
|
29
|
+
case 'serial4':
|
|
30
|
+
case 'bigserial':
|
|
31
|
+
case 'serial8':
|
|
14
32
|
return 'number';
|
|
15
|
-
case 'text':
|
|
16
33
|
case 'character':
|
|
34
|
+
case 'char':
|
|
17
35
|
case 'varchar':
|
|
36
|
+
case 'character varying':
|
|
37
|
+
case 'string':
|
|
38
|
+
case 'text':
|
|
18
39
|
case 'uuid':
|
|
40
|
+
case 'xml':
|
|
41
|
+
return 'string';
|
|
42
|
+
case 'bytea':
|
|
19
43
|
return 'string';
|
|
20
44
|
case 'json':
|
|
21
45
|
case 'jsonb':
|
|
22
46
|
return 'any';
|
|
23
47
|
case 'date':
|
|
48
|
+
case 'time':
|
|
24
49
|
case 'timestamptz':
|
|
50
|
+
case 'timestamp with time zone':
|
|
25
51
|
case 'timestamp':
|
|
52
|
+
case 'timestamp without time zone':
|
|
53
|
+
case 'time without time zone':
|
|
54
|
+
case 'timetz':
|
|
55
|
+
case 'time with time zone':
|
|
26
56
|
return 'string | Date | number';
|
|
27
57
|
case 'USER_DEFINED':
|
|
28
58
|
return 'string';
|
|
59
|
+
// Не задействованы
|
|
60
|
+
case 'bit varying':
|
|
61
|
+
case 'varbit':
|
|
62
|
+
case 'box': // rectangular box on a plane
|
|
63
|
+
case 'cidr': // IPv4 or IPv6 network address
|
|
64
|
+
case 'circle': // circle on a plane
|
|
65
|
+
case 'inet': // IPv4 or IPv6 host address
|
|
66
|
+
case 'line': // infinite line on a plane
|
|
67
|
+
case 'interval': // interval [fields][(p)] // time span
|
|
68
|
+
case 'lseg': // line segment on a plane
|
|
69
|
+
case 'macaddr': // MAC (Media Access Control) address
|
|
70
|
+
case 'macaddr8': // MAC (Media Access Control) address (EUI-64 format)
|
|
71
|
+
case 'path': // geometric path on a plane
|
|
72
|
+
case 'pg_lsn': // PostgreSQL Log Sequence Number
|
|
73
|
+
case 'pg_snapshot': // user-level transaction ID snapshot
|
|
74
|
+
case 'point': // geometric point on a plane
|
|
75
|
+
case 'polygon': // closed geometric path on a plane
|
|
76
|
+
case 'tsquery': // text search query
|
|
77
|
+
case 'tsvector': // text search document
|
|
78
|
+
case 'txid_snapshot': // user-level transaction ID snapshot (deprecated; see pg_snapshot)
|
|
79
|
+
return 'string';
|
|
29
80
|
case 'ARRAY': {
|
|
30
81
|
const jsType = (0, exports.getJsTypeByTypePg)(arrayType);
|
|
31
82
|
return `${jsType}[]`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils-pg.js","sourceRoot":"","sources":["../../../../src/pg/utils-pg.ts"],"names":[],"mappings":";;;AAEO,MAAM,iBAAiB,GAAG,CAAC,QAAsB,EAAE,SAAuB,EAAU,EAAE;IAC3F,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"utils-pg.js","sourceRoot":"","sources":["../../../../src/pg/utils-pg.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as sql from 'mssql';
|
|
2
|
+
import { bg, magenta, rs } from 'af-color';
|
|
2
3
|
import { logSqlError } from '../common';
|
|
3
4
|
import { closeDbConnectionsMs, getPoolMs } from './pool-ms';
|
|
4
5
|
export const queryMs = async (connectionId, sqlText, throwError, prefix) => {
|
|
@@ -14,6 +15,12 @@ export const queryMs = async (connectionId, sqlText, throwError, prefix) => {
|
|
|
14
15
|
return result;
|
|
15
16
|
}
|
|
16
17
|
catch (err) {
|
|
18
|
+
const { lineNumber } = err || {};
|
|
19
|
+
if (lineNumber) {
|
|
20
|
+
const sqlTextLines = sqlText.replace(/\r\n/, '\n').split(/\n/);
|
|
21
|
+
sqlTextLines[lineNumber - 1] = bg.yellow + sqlTextLines[lineNumber - 1] + rs + magenta;
|
|
22
|
+
sqlText = sqlTextLines.join('\n');
|
|
23
|
+
}
|
|
17
24
|
logSqlError(err, !throwError, sqlText, prefix);
|
|
18
25
|
}
|
|
19
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-ms.js","sourceRoot":"","sources":["../../../../src/ms/query-ms.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE5D,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAC1B,YAAoB,EACpB,OAAe,EACf,UAAoB,EACpB,MAAe,EACqC,EAAE;IACtD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,EAAE,SAAS,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC;YAC1C,MAAM,oBAAoB,CAAC,YAAY,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,0CAA0C;QAC1C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"query-ms.js","sourceRoot":"","sources":["../../../../src/ms/query-ms.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE5D,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAC1B,YAAoB,EACpB,OAAe,EACf,UAAoB,EACpB,MAAe,EACqC,EAAE;IACtD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,EAAE,SAAS,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC;YAC1C,MAAM,oBAAoB,CAAC,YAAY,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,0CAA0C;QAC1C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAgB,EAAE,CAAC;QAC1B,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,IAAI,EAAE,CAAC;QACjC,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/D,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;YACvF,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,WAAW,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1,28 +1,79 @@
|
|
|
1
1
|
export const getJsTypeByTypePg = (dataType, arrayType) => {
|
|
2
2
|
switch (dataType) {
|
|
3
|
+
case 'bit':
|
|
4
|
+
case 'bool':
|
|
3
5
|
case 'boolean':
|
|
4
6
|
return 'boolean';
|
|
5
7
|
case 'bigint':
|
|
6
8
|
return 'string | number';
|
|
9
|
+
case 'smallint':
|
|
10
|
+
case 'int2':
|
|
11
|
+
case 'int':
|
|
7
12
|
case 'integer':
|
|
13
|
+
case 'int4':
|
|
14
|
+
case 'int8':
|
|
8
15
|
case 'numeric':
|
|
16
|
+
case 'decimal':
|
|
9
17
|
case 'real':
|
|
10
|
-
case '
|
|
18
|
+
case 'float4':
|
|
19
|
+
case 'money':
|
|
20
|
+
case 'double precision':
|
|
21
|
+
case 'float8':
|
|
22
|
+
return 'number';
|
|
23
|
+
case 'smallserial':
|
|
24
|
+
case 'serial2':
|
|
25
|
+
case 'serial':
|
|
26
|
+
case 'serial4':
|
|
27
|
+
case 'bigserial':
|
|
28
|
+
case 'serial8':
|
|
11
29
|
return 'number';
|
|
12
|
-
case 'text':
|
|
13
30
|
case 'character':
|
|
31
|
+
case 'char':
|
|
14
32
|
case 'varchar':
|
|
33
|
+
case 'character varying':
|
|
34
|
+
case 'string':
|
|
35
|
+
case 'text':
|
|
15
36
|
case 'uuid':
|
|
37
|
+
case 'xml':
|
|
38
|
+
return 'string';
|
|
39
|
+
case 'bytea':
|
|
16
40
|
return 'string';
|
|
17
41
|
case 'json':
|
|
18
42
|
case 'jsonb':
|
|
19
43
|
return 'any';
|
|
20
44
|
case 'date':
|
|
45
|
+
case 'time':
|
|
21
46
|
case 'timestamptz':
|
|
47
|
+
case 'timestamp with time zone':
|
|
22
48
|
case 'timestamp':
|
|
49
|
+
case 'timestamp without time zone':
|
|
50
|
+
case 'time without time zone':
|
|
51
|
+
case 'timetz':
|
|
52
|
+
case 'time with time zone':
|
|
23
53
|
return 'string | Date | number';
|
|
24
54
|
case 'USER_DEFINED':
|
|
25
55
|
return 'string';
|
|
56
|
+
// Не задействованы
|
|
57
|
+
case 'bit varying':
|
|
58
|
+
case 'varbit':
|
|
59
|
+
case 'box': // rectangular box on a plane
|
|
60
|
+
case 'cidr': // IPv4 or IPv6 network address
|
|
61
|
+
case 'circle': // circle on a plane
|
|
62
|
+
case 'inet': // IPv4 or IPv6 host address
|
|
63
|
+
case 'line': // infinite line on a plane
|
|
64
|
+
case 'interval': // interval [fields][(p)] // time span
|
|
65
|
+
case 'lseg': // line segment on a plane
|
|
66
|
+
case 'macaddr': // MAC (Media Access Control) address
|
|
67
|
+
case 'macaddr8': // MAC (Media Access Control) address (EUI-64 format)
|
|
68
|
+
case 'path': // geometric path on a plane
|
|
69
|
+
case 'pg_lsn': // PostgreSQL Log Sequence Number
|
|
70
|
+
case 'pg_snapshot': // user-level transaction ID snapshot
|
|
71
|
+
case 'point': // geometric point on a plane
|
|
72
|
+
case 'polygon': // closed geometric path on a plane
|
|
73
|
+
case 'tsquery': // text search query
|
|
74
|
+
case 'tsvector': // text search document
|
|
75
|
+
case 'txid_snapshot': // user-level transaction ID snapshot (deprecated; see pg_snapshot)
|
|
76
|
+
return 'string';
|
|
26
77
|
case 'ARRAY': {
|
|
27
78
|
const jsType = getJsTypeByTypePg(arrayType);
|
|
28
79
|
return `${jsType}[]`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils-pg.js","sourceRoot":"","sources":["../../../../src/pg/utils-pg.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAsB,EAAE,SAAuB,EAAU,EAAE;IAC3F,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"utils-pg.js","sourceRoot":"","sources":["../../../../src/pg/utils-pg.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-ms.d.ts","sourceRoot":"","sources":["../../../../src/ms/query-ms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"query-ms.d.ts","sourceRoot":"","sources":["../../../../src/ms/query-ms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAMhC,eAAO,MAAM,OAAO,6CACJ,MAAM,WACX,MAAM,eACF,OAAO,WACX,MAAM,uDAqBhB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils-pg.d.ts","sourceRoot":"","sources":["../../../../src/pg/utils-pg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,iBAAiB,cAAe,WAAW,cAAc,WAAW,KAAG,
|
|
1
|
+
{"version":3,"file":"utils-pg.d.ts","sourceRoot":"","sources":["../../../../src/pg/utils-pg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,iBAAiB,cAAe,WAAW,cAAc,WAAW,KAAG,MA6FnF,CAAC;AAoCF,eAAO,MAAM,kBAAkB,YAAa,aAAa,KAAG,WAG3D,CAAC;AAuBF,eAAO,MAAM,mBAAmB,eAAgB,WAAW,KAAG,WAA6D,CAAC"}
|
package/package.json
CHANGED
package/src/ms/query-ms.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { IResult } from 'mssql';
|
|
2
2
|
import * as sql from 'mssql';
|
|
3
|
+
import { bg, magenta, rs } from 'af-color';
|
|
3
4
|
import { logSqlError } from '../common';
|
|
4
5
|
import { closeDbConnectionsMs, getPoolMs } from './pool-ms';
|
|
5
6
|
|
|
6
|
-
export const queryMs = async <ColumnSetDescription = any>(
|
|
7
|
+
export const queryMs = async <ColumnSetDescription = any> (
|
|
7
8
|
connectionId: string,
|
|
8
9
|
sqlText: string,
|
|
9
10
|
throwError?: boolean,
|
|
@@ -19,7 +20,13 @@ export const queryMs = async <ColumnSetDescription = any>(
|
|
|
19
20
|
// noinspection UnnecessaryLocalVariableJS
|
|
20
21
|
const result = await request.query(sqlText);
|
|
21
22
|
return result;
|
|
22
|
-
} catch (err) {
|
|
23
|
+
} catch (err: Error | any) {
|
|
24
|
+
const { lineNumber } = err || {};
|
|
25
|
+
if (lineNumber) {
|
|
26
|
+
const sqlTextLines = sqlText.replace(/\r\n/, '\n').split(/\n/);
|
|
27
|
+
sqlTextLines[lineNumber - 1] = bg.yellow + sqlTextLines[lineNumber - 1] + rs + magenta;
|
|
28
|
+
sqlText = sqlTextLines.join('\n');
|
|
29
|
+
}
|
|
23
30
|
logSqlError(err, !throwError, sqlText, prefix);
|
|
24
31
|
}
|
|
25
32
|
};
|
package/src/pg/utils-pg.ts
CHANGED
|
@@ -2,29 +2,90 @@ import { TDataTypePg, TArrayTypesPg } from '../@types/i-data-types-pg';
|
|
|
2
2
|
|
|
3
3
|
export const getJsTypeByTypePg = (dataType?: TDataTypePg, arrayType?: TDataTypePg): string => {
|
|
4
4
|
switch (dataType) {
|
|
5
|
+
case 'bit':
|
|
6
|
+
case 'bool':
|
|
5
7
|
case 'boolean':
|
|
6
8
|
return 'boolean';
|
|
9
|
+
|
|
7
10
|
case 'bigint':
|
|
8
11
|
return 'string | number';
|
|
12
|
+
|
|
13
|
+
case 'smallint':
|
|
14
|
+
case 'int2':
|
|
15
|
+
case 'int':
|
|
9
16
|
case 'integer':
|
|
17
|
+
case 'int4':
|
|
18
|
+
case 'int8':
|
|
10
19
|
case 'numeric':
|
|
20
|
+
case 'decimal':
|
|
11
21
|
case 'real':
|
|
12
|
-
case '
|
|
22
|
+
case 'float4':
|
|
23
|
+
case 'money':
|
|
24
|
+
case 'double precision':
|
|
25
|
+
case 'float8':
|
|
13
26
|
return 'number';
|
|
14
|
-
|
|
27
|
+
|
|
28
|
+
case 'smallserial':
|
|
29
|
+
case 'serial2':
|
|
30
|
+
case 'serial':
|
|
31
|
+
case 'serial4':
|
|
32
|
+
case 'bigserial':
|
|
33
|
+
case 'serial8':
|
|
34
|
+
return 'number';
|
|
35
|
+
|
|
15
36
|
case 'character':
|
|
37
|
+
case 'char':
|
|
16
38
|
case 'varchar':
|
|
39
|
+
case 'character varying':
|
|
40
|
+
case 'string':
|
|
41
|
+
case 'text':
|
|
17
42
|
case 'uuid':
|
|
43
|
+
case 'xml':
|
|
18
44
|
return 'string';
|
|
45
|
+
|
|
46
|
+
case 'bytea':
|
|
47
|
+
return 'string';
|
|
48
|
+
|
|
19
49
|
case 'json':
|
|
20
50
|
case 'jsonb':
|
|
21
51
|
return 'any';
|
|
52
|
+
|
|
22
53
|
case 'date':
|
|
54
|
+
case 'time':
|
|
23
55
|
case 'timestamptz':
|
|
56
|
+
case 'timestamp with time zone':
|
|
24
57
|
case 'timestamp':
|
|
58
|
+
case 'timestamp without time zone':
|
|
59
|
+
case 'time without time zone':
|
|
60
|
+
case 'timetz':
|
|
61
|
+
case 'time with time zone':
|
|
25
62
|
return 'string | Date | number';
|
|
63
|
+
|
|
26
64
|
case 'USER_DEFINED':
|
|
27
65
|
return 'string';
|
|
66
|
+
|
|
67
|
+
// Не задействованы
|
|
68
|
+
case 'bit varying':
|
|
69
|
+
case 'varbit':
|
|
70
|
+
case 'box': // rectangular box on a plane
|
|
71
|
+
case 'cidr': // IPv4 or IPv6 network address
|
|
72
|
+
case 'circle': // circle on a plane
|
|
73
|
+
case 'inet': // IPv4 or IPv6 host address
|
|
74
|
+
case 'line': // infinite line on a plane
|
|
75
|
+
case 'interval': // interval [fields][(p)] // time span
|
|
76
|
+
case 'lseg': // line segment on a plane
|
|
77
|
+
case 'macaddr': // MAC (Media Access Control) address
|
|
78
|
+
case 'macaddr8': // MAC (Media Access Control) address (EUI-64 format)
|
|
79
|
+
case 'path': // geometric path on a plane
|
|
80
|
+
case 'pg_lsn': // PostgreSQL Log Sequence Number
|
|
81
|
+
case 'pg_snapshot': // user-level transaction ID snapshot
|
|
82
|
+
case 'point': // geometric point on a plane
|
|
83
|
+
case 'polygon': // closed geometric path on a plane
|
|
84
|
+
case 'tsquery': // text search query
|
|
85
|
+
case 'tsvector': // text search document
|
|
86
|
+
case 'txid_snapshot': // user-level transaction ID snapshot (deprecated; see pg_snapshot)
|
|
87
|
+
return 'string';
|
|
88
|
+
|
|
28
89
|
case 'ARRAY': {
|
|
29
90
|
const jsType = getJsTypeByTypePg(arrayType);
|
|
30
91
|
return `${jsType}[]`;
|