@slonik/pg-driver 46.1.0 → 46.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -1
- package/dist/factories/createPgDriverFactory.d.ts.map +1 -1
- package/dist/factories/createPgDriverFactory.js +3 -2
- package/dist/factories/createPgDriverFactory.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/package.json +14 -14
- package/src/factories/createPgDriverFactory.ts +7 -4
- package/src/index.ts +1 -0
package/README.md
CHANGED
|
@@ -3,4 +3,43 @@
|
|
|
3
3
|
```ts
|
|
4
4
|
import {
|
|
5
5
|
createPgDriverFactory,
|
|
6
|
-
|
|
6
|
+
DatabaseError,
|
|
7
|
+
} from '@slonik/pg-driver';
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
## Error handling
|
|
11
|
+
|
|
12
|
+
All Slonik errors extend from `SlonikError`. `SlonikError` uses `cause` property to store the original error, which might be a `DatabaseError` from `pg`. Example:
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
pool.on('error', (error) => {
|
|
16
|
+
const cause = error.cause;
|
|
17
|
+
|
|
18
|
+
if (cause instanceof DatabaseError) {
|
|
19
|
+
console.log(cause.code);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
This allows you to handle errors based on the lower-level error codes provided by `pg` driver.
|
|
25
|
+
|
|
26
|
+
Example of handling all errors that could warrant a fatal error:
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
const fatalErrorClasses = [
|
|
30
|
+
// Connection Exception
|
|
31
|
+
'08',
|
|
32
|
+
// Invalid Authorization Specification
|
|
33
|
+
'28',
|
|
34
|
+
];
|
|
35
|
+
|
|
36
|
+
pool.on('error', (error) => {
|
|
37
|
+
if (error.cause instanceof DatabaseError) {
|
|
38
|
+
const classCode = error.cause.code.slice(0, 2);
|
|
39
|
+
|
|
40
|
+
if (fatalErrorClasses.includes(classCode)) {
|
|
41
|
+
// Initiate shutdown due to unexpected connection state.
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPgDriverFactory.d.ts","sourceRoot":"","sources":["../../src/factories/createPgDriverFactory.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,aAAa,EAEnB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"createPgDriverFactory.d.ts","sourceRoot":"","sources":["../../src/factories/createPgDriverFactory.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,aAAa,EAEnB,MAAM,gBAAgB,CAAC;AA2PxB,eAAO,MAAM,qBAAqB,QAAO,aA+HxC,CAAC"}
|
|
@@ -9,7 +9,6 @@ const driver_1 = require("@slonik/driver");
|
|
|
9
9
|
const errors_1 = require("@slonik/errors");
|
|
10
10
|
const utilities_1 = require("@slonik/utilities");
|
|
11
11
|
const node_stream_1 = require("node:stream");
|
|
12
|
-
// eslint-disable-next-line no-restricted-imports
|
|
13
12
|
const pg_1 = require("pg");
|
|
14
13
|
const pg_query_stream_1 = __importDefault(require("pg-query-stream"));
|
|
15
14
|
const pg_types_1 = require("pg-types");
|
|
@@ -159,6 +158,9 @@ const wrapError = (error, query) => {
|
|
|
159
158
|
if (error.code === '23505') {
|
|
160
159
|
return new errors_1.UniqueIntegrityConstraintViolationError(error);
|
|
161
160
|
}
|
|
161
|
+
if (error.code === '23P01') {
|
|
162
|
+
return new errors_1.CheckExclusionConstraintViolationError(error);
|
|
163
|
+
}
|
|
162
164
|
if (error.code === '23514') {
|
|
163
165
|
return new errors_1.CheckIntegrityConstraintViolationError(error);
|
|
164
166
|
}
|
|
@@ -251,7 +253,6 @@ const createPgDriverFactory = () => {
|
|
|
251
253
|
callback(new Error('Fields not available'));
|
|
252
254
|
return;
|
|
253
255
|
}
|
|
254
|
-
// eslint-disable-next-line @babel/no-invalid-this
|
|
255
256
|
this.push({
|
|
256
257
|
fields,
|
|
257
258
|
row: datum,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPgDriverFactory.js","sourceRoot":"","sources":["../../src/factories/createPgDriverFactory.ts"],"names":[],"mappings":";AAAA,uCAAuC;;;;;;AAEvC,2CAMwB;AACxB,
|
|
1
|
+
{"version":3,"file":"createPgDriverFactory.js","sourceRoot":"","sources":["../../src/factories/createPgDriverFactory.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createPgDriverFactory = void 0;
|
|
3
|
+
exports.DatabaseError = exports.createPgDriverFactory = void 0;
|
|
4
4
|
var createPgDriverFactory_1 = require("./factories/createPgDriverFactory");
|
|
5
5
|
Object.defineProperty(exports, "createPgDriverFactory", { enumerable: true, get: function () { return createPgDriverFactory_1.createPgDriverFactory; } });
|
|
6
|
+
var pg_1 = require("pg");
|
|
7
|
+
Object.defineProperty(exports, "DatabaseError", { enumerable: true, get: function () { return pg_1.DatabaseError; } });
|
|
6
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2EAA0E;AAAjE,8HAAA,qBAAqB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2EAA0E;AAAjE,8HAAA,qBAAqB,OAAA;AAC9B,yBAAmC;AAA1B,mGAAA,aAAa,OAAA"}
|
package/package.json
CHANGED
|
@@ -16,27 +16,27 @@
|
|
|
16
16
|
]
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@slonik/driver": "^46.
|
|
20
|
-
"@slonik/errors": "^46.
|
|
21
|
-
"@slonik/sql-tag": "^46.
|
|
22
|
-
"@slonik/types": "^46.
|
|
23
|
-
"@slonik/utilities": "^46.
|
|
24
|
-
"pg": "^8.
|
|
25
|
-
"pg-query-stream": "^4.
|
|
19
|
+
"@slonik/driver": "^46.2.0",
|
|
20
|
+
"@slonik/errors": "^46.2.0",
|
|
21
|
+
"@slonik/sql-tag": "^46.2.0",
|
|
22
|
+
"@slonik/types": "^46.2.0",
|
|
23
|
+
"@slonik/utilities": "^46.2.0",
|
|
24
|
+
"pg": "^8.13.1",
|
|
25
|
+
"pg-query-stream": "^4.7.1",
|
|
26
26
|
"pg-types": "^4.0.2",
|
|
27
27
|
"postgres-array": "^3.0.2"
|
|
28
28
|
},
|
|
29
29
|
"description": "A Node.js PostgreSQL client with strict types, detailed logging and assertions.",
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@types/node": "^
|
|
32
|
-
"@types/pg": "^8.11.
|
|
31
|
+
"@types/node": "^22.9.0",
|
|
32
|
+
"@types/pg": "^8.11.10",
|
|
33
33
|
"ava": "^6.1.3",
|
|
34
|
-
"cspell": "^8.
|
|
35
|
-
"eslint": "^
|
|
36
|
-
"eslint-config-canonical": "^42.8.1",
|
|
34
|
+
"cspell": "^8.16.0",
|
|
35
|
+
"eslint": "^9.14.0",
|
|
37
36
|
"nyc": "^15.1.0",
|
|
38
37
|
"ts-node": "^10.9.1",
|
|
39
|
-
"typescript": "^5.
|
|
38
|
+
"typescript": "^5.6.3",
|
|
39
|
+
"@slonik/eslint-config": "^46.2.0"
|
|
40
40
|
},
|
|
41
41
|
"engines": {
|
|
42
42
|
"node": ">=18"
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"url": "https://github.com/gajus/slonik"
|
|
80
80
|
},
|
|
81
81
|
"types": "./dist/index.d.ts",
|
|
82
|
-
"version": "46.
|
|
82
|
+
"version": "46.2.0",
|
|
83
83
|
"scripts": {
|
|
84
84
|
"build": "rm -fr ./dist && tsc --project ./tsconfig.json",
|
|
85
85
|
"lint": "npm run lint:cspell && npm run lint:eslint && npm run lint:tsc",
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
import {
|
|
11
11
|
BackendTerminatedError,
|
|
12
12
|
BackendTerminatedUnexpectedlyError,
|
|
13
|
+
CheckExclusionConstraintViolationError,
|
|
13
14
|
CheckIntegrityConstraintViolationError,
|
|
14
15
|
ForeignKeyIntegrityConstraintViolationError,
|
|
15
16
|
IdleTransactionTimeoutError,
|
|
@@ -25,11 +26,10 @@ import { type PrimitiveValueExpression } from '@slonik/sql-tag';
|
|
|
25
26
|
import { type Field, type Query } from '@slonik/types';
|
|
26
27
|
import { parseDsn } from '@slonik/utilities';
|
|
27
28
|
import { Transform } from 'node:stream';
|
|
28
|
-
// eslint-disable-next-line no-restricted-imports
|
|
29
29
|
import {
|
|
30
30
|
Client,
|
|
31
|
-
type ClientConfig as NativePostgresClientConfiguration,
|
|
32
31
|
type DatabaseError,
|
|
32
|
+
type ClientConfig as NativePostgresClientConfiguration,
|
|
33
33
|
} from 'pg';
|
|
34
34
|
import QueryStream from 'pg-query-stream';
|
|
35
35
|
import { getTypeParser as getNativeTypeParser } from 'pg-types';
|
|
@@ -187,7 +187,7 @@ const isErrorWithCode = (error: Error): error is DatabaseError => {
|
|
|
187
187
|
// TODO evaluate if we can remove query from the error object.
|
|
188
188
|
// I suspect we should not be even using InputSyntaxError as one of the error types.
|
|
189
189
|
// @see https://github.com/gajus/slonik/issues/557
|
|
190
|
-
const wrapError = (error: Error, query:
|
|
190
|
+
const wrapError = (error: Error, query: null | Query) => {
|
|
191
191
|
if (
|
|
192
192
|
error.message.toLowerCase().includes('connection terminated unexpectedly')
|
|
193
193
|
) {
|
|
@@ -238,6 +238,10 @@ const wrapError = (error: Error, query: Query | null) => {
|
|
|
238
238
|
return new UniqueIntegrityConstraintViolationError(error);
|
|
239
239
|
}
|
|
240
240
|
|
|
241
|
+
if (error.code === '23P01') {
|
|
242
|
+
return new CheckExclusionConstraintViolationError(error);
|
|
243
|
+
}
|
|
244
|
+
|
|
241
245
|
if (error.code === '23514') {
|
|
242
246
|
return new CheckIntegrityConstraintViolationError(error);
|
|
243
247
|
}
|
|
@@ -355,7 +359,6 @@ export const createPgDriverFactory = (): DriverFactory => {
|
|
|
355
359
|
return;
|
|
356
360
|
}
|
|
357
361
|
|
|
358
|
-
// eslint-disable-next-line @babel/no-invalid-this
|
|
359
362
|
this.push({
|
|
360
363
|
fields,
|
|
361
364
|
row: datum,
|
package/src/index.ts
CHANGED