@slonik/pg-driver 46.0.1 → 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 CHANGED
@@ -3,4 +3,43 @@
3
3
  ```ts
4
4
  import {
5
5
  createPgDriverFactory,
6
- } from '@slonik/pg-driver';
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;AAuPxB,eAAO,MAAM,qBAAqB,QAAO,aAgIxC,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,2CAawB;AAGxB,iDAA6C;AAC7C,6CAAwC;AACxC,iDAAiD;AACjD,2BAIY;AACZ,sEAA0C;AAC1C,uCAAgE;AAChE,mDAAqD;AAWrD,MAAM,mBAAmB,GAAG,KAAK,EAC/B,UAAkB,EAClB,WAAwC,EAChB,EAAE;IAC1B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QAC/C,OAAO,UAAU,CAAC,IAAI,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,CACpB,MAAM,UAAU,CAAC,KAAK,CACpB;;;;;;;OAOC,EACD,CAAC,SAAS,CAAC,CACZ,CACF,CAAC,IAAsB,CAAC;IAEzB,MAAM,OAAO,GAAG,EAAE,CAAC;IAEnB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,uBAAuB,EAAE,EAAE;YAClE,OAAO,uBAAuB,CAAC,OAAO,KAAK,UAAU,CAAC,IAAI,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE;YACpC,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC;QAEF,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC1B,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE;gBAC9C,OAAO,IAAA,sBAAU,EAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC1C,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;YACL,CAAC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,EAAE;QACrB,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,IAAA,wBAAmB,EAAC,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAChC,mBAAwC,EACL,EAAE;IACrC,MAAM,iBAAiB,GAAG,IAAA,oBAAQ,EAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAEtE,MAAM,iBAAiB,GAAsC;QAC3D,gBAAgB,EAAE,iBAAiB,CAAC,eAAe;QACnD,QAAQ,EAAE,iBAAiB,CAAC,YAAY;QACxC,IAAI,EAAE,iBAAiB,CAAC,IAAI;QAC5B,OAAO,EAAE,iBAAiB,CAAC,OAAO;QAClC,QAAQ,EAAE,iBAAiB,CAAC,QAAQ;QACpC,IAAI,EAAE,iBAAiB,CAAC,IAAI;QAC5B,uEAAuE;QACvE,SAAS,EAAE,UAAU;QACrB,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,iBAAiB,CAAC,QAAQ;KACjC,CAAC;IAEF,IAAI,mBAAmB,CAAC,GAAG,EAAE,CAAC;QAC5B,iBAAiB,CAAC,GAAG,GAAG,mBAAmB,CAAC,GAAG,CAAC;IAClD,CAAC;SAAM,IAAI,iBAAiB,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACnD,iBAAiB,CAAC,GAAG,GAAG,KAAK,CAAC;IAChC,CAAC;SAAM,IAAI,iBAAiB,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACnD,iBAAiB,CAAC,GAAG,GAAG,IAAI,CAAC;IAC/B,CAAC;SAAM,IAAI,iBAAiB,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;QACrD,iBAAiB,CAAC,GAAG,GAAG;YACtB,kBAAkB,EAAE,KAAK;SAC1B,CAAC;IACJ,CAAC;IAED,IAAI,mBAAmB,CAAC,iBAAiB,KAAK,iBAAiB,EAAE,CAAC;QAChE,IAAI,mBAAmB,CAAC,iBAAiB,KAAK,CAAC,EAAE,CAAC;YAChD,iBAAiB,CAAC,uBAAuB,GAAG,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,uBAAuB;gBACvC,mBAAmB,CAAC,iBAAiB,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,IAAI,mBAAmB,CAAC,gBAAgB,KAAK,iBAAiB,EAAE,CAAC;QAC/D,IAAI,mBAAmB,CAAC,gBAAgB,KAAK,CAAC,EAAE,CAAC;YAC/C,iBAAiB,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,iBAAiB;gBACjC,mBAAmB,CAAC,gBAAgB,CAAC;QACzC,CAAC;IACH,CAAC;IAED,IACE,mBAAmB,CAAC,+BAA+B,KAAK,iBAAiB,EACzE,CAAC;QACD,IAAI,mBAAmB,CAAC,+BAA+B,KAAK,CAAC,EAAE,CAAC;YAC9D,iBAAiB,CAAC,mCAAmC,GAAG,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,mCAAmC;gBACnD,mBAAmB,CAAC,+BAA+B,CAAC;QACxD,CAAC;IACH,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,KAAK,EAC9B,qBAAwD,EACxD,mBAAwC,EAChB,EAAE;IAC1B,MAAM,MAAM,GAAG,IAAI,WAAM,CAAC,qBAAqB,CAAC,CAAC;IAEjD,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IAEvB,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAC7C,MAAM,EACN,mBAAmB,CAAC,WAAW,CAChC,CAAC;IAEF,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IAEnB,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,KAAY,EAA0B,EAAE;IAC/D,OAAO,MAAM,IAAI,KAAK,CAAC;AACzB,CAAC,CAAC;AAEF,sDAAsD;AACtD,8DAA8D;AAC9D,oFAAoF;AACpF,kDAAkD;AAClD,MAAM,SAAS,GAAG,CAAC,KAAY,EAAE,KAAmB,EAAE,EAAE;IACtD,IACE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC,EAC1E,CAAC;QACD,OAAO,IAAI,2CAAkC,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAClE,OAAO,IAAI,+BAAsB,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,IAAI,0BAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,IAAI,oCAA2B,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,IAAI,+BAAsB,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,IACE,KAAK,CAAC,IAAI,KAAK,OAAO;QACtB,wGAAwG;QACxG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,yCAAyC,CAAC,EACjE,CAAC;QACD,OAAO,IAAI,gCAAuB,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,IAAI,8BAAqB,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,IAAI,iDAAwC,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,IAAI,oDAA2C,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,IAAI,gDAAuC,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,IAAI,+CAAsC,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,6BAAoB,CAAC,+BAA+B,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,IAAI,yBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEK,MAAM,qBAAqB,GAAG,GAAkB,EAAE;IACvD,OAAO,IAAA,4BAAmB,EAAC,KAAK,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE;QAC3D,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;QAE3E,kDAAkD;QAClD,mBAAmB,CAAC,KAAK,GAAG;YAC1B,aAAa,EAAE,MAAM,kBAAkB,CACrC,mBAAmB,EACnB,mBAAmB,CACpB;SACF,CAAC;QAEF,OAAO;YACL,gBAAgB,EAAE,KAAK,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE;gBACjD,MAAM,MAAM,GAAG,IAAI,WAAM,CAAC,mBAAmB,CAAC,CAAC;gBAE/C,qEAAqE;gBACrE,uFAAuF;gBACvF,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;oBACxB,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC3D,CAAC,CAAC;gBAEF,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE;oBAC1B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACnB,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE;4BAChC,OAAO,EAAE,MAAM,CAAC,OAAO;yBACxB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC,CAAC;gBAEF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC5B,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAE9B,OAAO;oBACL,OAAO,EAAE,KAAK,IAAI,EAAE;wBAClB,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;oBACzB,CAAC;oBACD,GAAG,EAAE,KAAK,IAAI,EAAE;wBACd,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;wBAEnB,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBACxC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAC5C,CAAC;oBACD,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;wBAC3B,IAAI,MAAM,CAAC;wBAEX,IAAI,CAAC;4BACH,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAmB,CAAC,CAAC;wBACxD,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,MAAM,SAAS,CAAC,KAAK,EAAE;gCACrB,GAAG;gCACH,MAAM,EAAE,MAA6C;6BACtD,CAAC,CAAC;wBACL,CAAC;wBAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;4BAC1B,MAAM,IAAI,0BAAiB,CACzB,qDAAqD,CACtD,CAAC;wBACJ,CAAC;wBAED,OAAO;4BACL,OAAO,EAAE,MAAM,CAAC,OAAwB;4BACxC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gCAClC,OAAO;oCACL,UAAU,EAAE,KAAK,CAAC,UAAU;oCAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;iCACjB,CAAC;4BACJ,CAAC,CAAC;4BACF,QAAQ,EAAE,MAAM,CAAC,QAAQ;4BACzB,IAAI,EAAE,MAAM,CAAC,IAAI;yBAClB,CAAC;oBACJ,CAAC;oBACD,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;wBACtB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CACzB,IAAI,yBAAW,CAAC,GAAG,EAAE,MAAmB,CAAC,CAC1C,CAAC;wBAEF,IAAI,MAAM,GAAqB,EAAE,CAAC;wBAElC,uEAAuE;wBACvE,8EAA8E;wBAC9E,oGAAoG;wBACpG,yEAAyE;wBACzE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,cAAc,EAAE,EAAE;4BAC1D,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gCAC3C,OAAO;oCACL,UAAU,EAAE,KAAK,CAAC,UAAU;oCAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;iCACjB,CAAC;4BACJ,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;wBAEH,MAAM,SAAS,GAAG,IAAI,uBAAS,CAAC;4BAC9B,UAAU,EAAE,IAAI;4BAChB,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ;gCAClC,IAAI,CAAC,MAAM,EAAE,CAAC;oCACZ,QAAQ,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;oCAE5C,OAAO;gCACT,CAAC;gCAED,kDAAkD;gCAClD,IAAI,CAAC,IAAI,CAAC;oCACR,MAAM;oCACN,GAAG,EAAE,KAAK;iCACX,CAAC,CAAC;gCAEH,QAAQ,EAAE,CAAC;4BACb,CAAC;yBACF,CAAC,CAAC;wBAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;4BAC3B,SAAS,CAAC,IAAI,CACZ,OAAO,EACP,SAAS,CAAC,KAAK,EAAE;gCACf,GAAG;gCACH,MAAM,EAAE,MAAoC;6BAC7C,CAAC,CACH,CAAC;wBACJ,CAAC,CAAC,CAAC;wBAEH,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAChC,CAAC;iBACF,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAhIW,QAAA,qBAAqB,yBAgIhC"}
1
+ {"version":3,"file":"createPgDriverFactory.js","sourceRoot":"","sources":["../../src/factories/createPgDriverFactory.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export { createPgDriverFactory } from './factories/createPgDriverFactory';
2
+ export { DatabaseError } from 'pg';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -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.0.1",
20
- "@slonik/errors": "^46.0.1",
21
- "@slonik/sql-tag": "^46.0.1",
22
- "@slonik/types": "^46.0.1",
23
- "@slonik/utilities": "^46.0.1",
24
- "pg": "^8.12.0",
25
- "pg-query-stream": "^4.6.0",
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": "^18.15.3",
32
- "@types/pg": "^8.11.6",
31
+ "@types/node": "^22.9.0",
32
+ "@types/pg": "^8.11.10",
33
33
  "ava": "^6.1.3",
34
- "cspell": "^8.6.0",
35
- "eslint": "^8.57.0",
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.4.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.0.1",
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: Query | null) => {
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
@@ -1 +1,2 @@
1
1
  export { createPgDriverFactory } from './factories/createPgDriverFactory';
2
+ export { DatabaseError } from 'pg';