@slonik/driver 48.12.3 → 48.13.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
@@ -2,4 +2,4 @@
2
2
 
3
3
  Slonik driver is an abstraction layer that provides a consistent API for interacting using different PostgreSQL clients.
4
4
 
5
- This package is made available for developers who wish to create their own Slonik driver.
5
+ This package is made available for developers who wish to create their own Slonik driver.
package/dist/Logger.js CHANGED
@@ -1,5 +1,5 @@
1
- import { Roarr } from 'roarr';
1
+ import { Roarr } from "roarr";
2
2
  export const Logger = Roarr.child({
3
- package: '@slonik/driver',
3
+ package: "@slonik/driver",
4
4
  });
5
5
  //# sourceMappingURL=Logger.js.map
@@ -1,8 +1,8 @@
1
- import type { Field } from '@slonik/types';
2
- import EventEmitter from 'node:events';
3
- import type { Readable } from 'node:stream';
4
- import type { ConnectionOptions as TlsConnectionOptions } from 'node:tls';
5
- import type { StrictEventEmitter } from 'strict-event-emitter-types';
1
+ import type { Field } from "@slonik/types";
2
+ import EventEmitter from "node:events";
3
+ import type { Readable } from "node:stream";
4
+ import type { ConnectionOptions as TlsConnectionOptions } from "node:tls";
5
+ import type { StrictEventEmitter } from "strict-event-emitter-types";
6
6
  export type Driver = {
7
7
  createClient: () => Promise<DriverClient>;
8
8
  };
@@ -10,11 +10,11 @@ export type DriverClient = {
10
10
  acquire: () => void;
11
11
  destroy: () => Promise<void>;
12
12
  id: () => string;
13
- off: DriverClientEventEmitter['off'];
14
- on: DriverClientEventEmitter['on'];
13
+ off: DriverClientEventEmitter["off"];
14
+ on: DriverClientEventEmitter["on"];
15
15
  query: (query: string, values?: unknown[], queryOptions?: DriverQueryOptions) => Promise<DriverQueryResult>;
16
16
  release: () => Promise<void>;
17
- removeListener: DriverClientEventEmitter['removeListener'];
17
+ removeListener: DriverClientEventEmitter["removeListener"];
18
18
  state: () => DriverClientState;
19
19
  stream: (query: string, values?: unknown[]) => DriverStream<DriverStreamResult>;
20
20
  };
@@ -25,20 +25,20 @@ export type DriverClientEventEmitter = StrictEventEmitter<EventEmitter, {
25
25
  notice: (event: DriverNotice) => void;
26
26
  release: () => void;
27
27
  }>;
28
- export type DriverClientState = 'ACQUIRED' | 'DESTROYED' | 'IDLE' | 'PENDING_DESTROY' | 'PENDING_RELEASE';
29
- export type DriverCommand = 'COPY' | 'DELETE' | 'INSERT' | 'SELECT' | 'UPDATE';
28
+ export type DriverClientState = "ACQUIRED" | "DESTROYED" | "IDLE" | "PENDING_DESTROY" | "PENDING_RELEASE";
29
+ export type DriverCommand = "COPY" | "DELETE" | "INSERT" | "SELECT" | "UPDATE";
30
30
  export type DriverConfiguration = {
31
- readonly connectionTimeout: 'DISABLE_TIMEOUT' | number;
31
+ readonly connectionTimeout: "DISABLE_TIMEOUT" | number;
32
32
  readonly connectionUri: string;
33
33
  readonly gracefulTerminationTimeout?: number;
34
- readonly idleInTransactionSessionTimeout: 'DISABLE_TIMEOUT' | number;
35
- readonly idleTimeout?: 'DISABLE_TIMEOUT' | number;
36
- readonly maximumConnectionAge?: number;
34
+ readonly idleInTransactionSessionTimeout: "DISABLE_TIMEOUT" | number;
35
+ readonly idleTimeout?: "DISABLE_TIMEOUT" | number;
36
+ readonly maximumConnectionAge?: "DISABLE_TIMEOUT" | number;
37
37
  readonly maximumPoolSize?: number;
38
38
  readonly minimumPoolSize?: number;
39
39
  readonly resetConnection?: (connection: BasicConnection) => Promise<void>;
40
40
  readonly ssl?: TlsConnectionOptions;
41
- readonly statementTimeout: 'DISABLE_TIMEOUT' | number;
41
+ readonly statementTimeout: "DISABLE_TIMEOUT" | number;
42
42
  readonly typeParsers: readonly DriverTypeParser[];
43
43
  };
44
44
  export type DriverEventEmitter = StrictEventEmitter<EventEmitter, {
@@ -64,9 +64,9 @@ export type DriverQueryResult = {
64
64
  readonly rowCount: null | number;
65
65
  readonly rows: Array<Record<string, unknown>>;
66
66
  };
67
- export interface DriverStream<T> extends Omit<Readable, 'on' | typeof Symbol.asyncIterator> {
67
+ export interface DriverStream<T> extends Omit<Readable, "on" | typeof Symbol.asyncIterator> {
68
68
  [Symbol.asyncIterator]: () => AsyncIterableIterator<StreamDataEvent<T>>;
69
- on: ((event: 'data', listener: (chunk: StreamDataEvent<T>) => void) => this) & ((event: string | symbol, listener: (...args: any[]) => void) => this);
69
+ on: ((event: "data", listener: (chunk: StreamDataEvent<T>) => void) => this) & ((event: string | symbol, listener: (...args: any[]) => void) => this);
70
70
  }
71
71
  export type DriverStreamResult = {
72
72
  readonly fields: DriverField[];
@@ -1 +1 @@
1
- {"version":3,"file":"createDriverFactory.d.ts","sourceRoot":"","sources":["../../src/factories/createDriverFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createDriverFactory.d.ts","sourceRoot":"","sources":["../../src/factories/createDriverFactory.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  /* eslint-disable @typescript-eslint/consistent-type-definitions */
2
- import { Logger } from '../Logger.js';
3
- import { generateUid } from '@slonik/utilities';
4
- import EventEmitter from 'node:events';
5
- import { serializeError } from 'serialize-error';
2
+ import { Logger } from "../Logger.js";
3
+ import { generateUid } from "@slonik/utilities";
4
+ import EventEmitter from "node:events";
5
+ import { serializeError } from "serialize-error";
6
6
  const delay = (ms) => new Promise((resolve) => {
7
7
  const timer = setTimeout(resolve, ms);
8
8
  timer.unref();
@@ -30,10 +30,10 @@ export const createDriverFactory = (setup) => {
30
30
  }
31
31
  Logger.warn({
32
32
  error: serializeError(error),
33
- namespace: 'driverClient',
34
- }, 'unhandled driver client error');
33
+ namespace: "driverClient",
34
+ }, "unhandled driver client error");
35
35
  };
36
- clientEventEmitter.on('error', onError);
36
+ clientEventEmitter.on("error", onError);
37
37
  const { connect, end, query, stream } = await createPoolClient({
38
38
  clientEventEmitter,
39
39
  });
@@ -52,26 +52,26 @@ export const createDriverFactory = (setup) => {
52
52
  };
53
53
  const state = () => {
54
54
  if (destroyPromise) {
55
- return 'PENDING_DESTROY';
55
+ return "PENDING_DESTROY";
56
56
  }
57
57
  if (releasePromise) {
58
- return 'PENDING_RELEASE';
58
+ return "PENDING_RELEASE";
59
59
  }
60
60
  if (isDestroyed) {
61
- return 'DESTROYED';
61
+ return "DESTROYED";
62
62
  }
63
63
  if (isAcquired) {
64
- return 'ACQUIRED';
64
+ return "ACQUIRED";
65
65
  }
66
- return 'IDLE';
66
+ return "IDLE";
67
67
  };
68
68
  const internalDestroy = async () => {
69
69
  const currentState = state();
70
- if (currentState === 'PENDING_DESTROY') {
71
- throw new Error('Client is pending destroy.');
70
+ if (currentState === "PENDING_DESTROY") {
71
+ throw new Error("Client is pending destroy.");
72
72
  }
73
- if (currentState === 'DESTROYED') {
74
- throw new Error('Client is destroyed.');
73
+ if (currentState === "DESTROYED") {
74
+ throw new Error("Client is destroyed.");
75
75
  }
76
76
  clearIdleTimeout();
77
77
  // activeQueryPromise and releasePromise are mutually exclusive
@@ -87,17 +87,14 @@ export const createDriverFactory = (setup) => {
87
87
  ]);
88
88
  }
89
89
  isDestroyed = true;
90
- clientEventEmitter.emit('destroy');
90
+ clientEventEmitter.emit("destroy");
91
91
  // end() calls pg client.end() which sends a termination message and
92
92
  // waits for the TCP connection to close. On broken connections (half-open
93
93
  // TCP, network partition) this can hang indefinitely. Apply the same
94
94
  // graceful termination timeout to prevent leaked promises that block
95
95
  // pool.end() and callers awaiting connection.destroy().
96
- await Promise.race([
97
- end(),
98
- delay(driverConfiguration.gracefulTerminationTimeout),
99
- ]);
100
- clientEventEmitter.off('error', onError);
96
+ await Promise.race([end(), delay(driverConfiguration.gracefulTerminationTimeout)]);
97
+ clientEventEmitter.off("error", onError);
101
98
  };
102
99
  destroy = async () => {
103
100
  if (destroyPromise) {
@@ -108,17 +105,17 @@ export const createDriverFactory = (setup) => {
108
105
  };
109
106
  const internalRelease = async () => {
110
107
  const currentState = state();
111
- if (currentState === 'PENDING_DESTROY') {
112
- throw new Error('Client is pending destroy.');
108
+ if (currentState === "PENDING_DESTROY") {
109
+ throw new Error("Client is pending destroy.");
113
110
  }
114
- if (currentState === 'DESTROYED') {
115
- throw new Error('Client is destroyed.');
111
+ if (currentState === "DESTROYED") {
112
+ throw new Error("Client is destroyed.");
116
113
  }
117
- if (currentState !== 'ACQUIRED') {
118
- throw new Error('Client is not acquired.');
114
+ if (currentState !== "ACQUIRED") {
115
+ throw new Error("Client is not acquired.");
119
116
  }
120
117
  if (activeQueryPromise) {
121
- throw new Error('Client has an active query.');
118
+ throw new Error("Client has an active query.");
122
119
  }
123
120
  if (resetConnection) {
124
121
  await resetConnection({
@@ -127,7 +124,7 @@ export const createDriverFactory = (setup) => {
127
124
  },
128
125
  });
129
126
  }
130
- if (driverConfiguration.idleTimeout !== 'DISABLE_TIMEOUT') {
127
+ if (driverConfiguration.idleTimeout !== "DISABLE_TIMEOUT") {
131
128
  clearIdleTimeout();
132
129
  idleTimeout = setTimeout(() => {
133
130
  void destroy();
@@ -136,7 +133,7 @@ export const createDriverFactory = (setup) => {
136
133
  }
137
134
  isAcquired = false;
138
135
  releasePromise = null;
139
- clientEventEmitter.emit('release');
136
+ clientEventEmitter.emit("release");
140
137
  };
141
138
  const release = () => {
142
139
  if (destroyPromise) {
@@ -151,21 +148,21 @@ export const createDriverFactory = (setup) => {
151
148
  const client = {
152
149
  acquire: () => {
153
150
  const currentState = state();
154
- if (currentState === 'PENDING_DESTROY') {
155
- throw new Error('Client is pending destroy.');
151
+ if (currentState === "PENDING_DESTROY") {
152
+ throw new Error("Client is pending destroy.");
156
153
  }
157
- if (currentState === 'PENDING_RELEASE') {
158
- throw new Error('Client is pending release.');
154
+ if (currentState === "PENDING_RELEASE") {
155
+ throw new Error("Client is pending release.");
159
156
  }
160
- if (currentState === 'DESTROYED') {
161
- throw new Error('Client is destroyed.');
157
+ if (currentState === "DESTROYED") {
158
+ throw new Error("Client is destroyed.");
162
159
  }
163
- if (currentState === 'ACQUIRED') {
164
- throw new Error('Client is already acquired.');
160
+ if (currentState === "ACQUIRED") {
161
+ throw new Error("Client is already acquired.");
165
162
  }
166
163
  clearIdleTimeout();
167
164
  isAcquired = true;
168
- clientEventEmitter.emit('acquire');
165
+ clientEventEmitter.emit("acquire");
169
166
  },
170
167
  destroy,
171
168
  id: () => id,
@@ -177,23 +174,23 @@ export const createDriverFactory = (setup) => {
177
174
  },
178
175
  query: async (sql, values, queryOptions) => {
179
176
  const currentState = state();
180
- if (currentState === 'PENDING_DESTROY') {
181
- throw new Error('Client is pending destroy.');
177
+ if (currentState === "PENDING_DESTROY") {
178
+ throw new Error("Client is pending destroy.");
182
179
  }
183
- if (currentState === 'PENDING_RELEASE') {
184
- throw new Error('Client is pending release.');
180
+ if (currentState === "PENDING_RELEASE") {
181
+ throw new Error("Client is pending release.");
185
182
  }
186
- if (currentState === 'DESTROYED') {
187
- throw new Error('Client is destroyed.');
183
+ if (currentState === "DESTROYED") {
184
+ throw new Error("Client is destroyed.");
188
185
  }
189
- if (currentState !== 'ACQUIRED') {
190
- throw new Error('Client is not acquired.');
186
+ if (currentState !== "ACQUIRED") {
187
+ throw new Error("Client is not acquired.");
191
188
  }
192
189
  try {
193
190
  activeQueryPromise = query(sql, values, queryOptions);
194
191
  const result = await activeQueryPromise;
195
192
  if (!activeQueryPromise) {
196
- throw new Error('Expected `activeQueryPromise` to be set.');
193
+ throw new Error("Expected `activeQueryPromise` to be set.");
197
194
  }
198
195
  return result;
199
196
  }
@@ -208,17 +205,17 @@ export const createDriverFactory = (setup) => {
208
205
  state,
209
206
  stream: (sql, values) => {
210
207
  const currentState = state();
211
- if (currentState === 'PENDING_DESTROY') {
212
- throw new Error('Client is pending destroy.');
208
+ if (currentState === "PENDING_DESTROY") {
209
+ throw new Error("Client is pending destroy.");
213
210
  }
214
- if (currentState === 'PENDING_RELEASE') {
215
- throw new Error('Client is pending release.');
211
+ if (currentState === "PENDING_RELEASE") {
212
+ throw new Error("Client is pending release.");
216
213
  }
217
- if (currentState === 'DESTROYED') {
218
- throw new Error('Client is destroyed.');
214
+ if (currentState === "DESTROYED") {
215
+ throw new Error("Client is destroyed.");
219
216
  }
220
- if (currentState !== 'ACQUIRED') {
221
- throw new Error('Client is not acquired.');
217
+ if (currentState !== "ACQUIRED") {
218
+ throw new Error("Client is not acquired.");
222
219
  }
223
220
  // Note: Stream lifecycle management should be handled by the caller.
224
221
  // The client can be released while streaming, but the stream will continue to work.
@@ -229,7 +226,7 @@ export const createDriverFactory = (setup) => {
229
226
  await connect();
230
227
  }
231
228
  catch (error) {
232
- clientEventEmitter.off('error', onError);
229
+ clientEventEmitter.off("error", onError);
233
230
  throw error;
234
231
  }
235
232
  return client;
@@ -1 +1 @@
1
- {"version":3,"file":"createDriverFactory.js","sourceRoot":"","sources":["../../src/factories/createDriverFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createDriverFactory.js","sourceRoot":"","sources":["../../src/factories/createDriverFactory.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import test from 'ava';
2
- test('ok', (t) => {
1
+ import test from "ava";
2
+ test("ok", (t) => {
3
3
  t.pass();
4
4
  });
5
5
  //# sourceMappingURL=createDriverFactory.test.js.map
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { createDriverFactory, type Driver, type DriverClient, type DriverClientEventEmitter, type DriverClientState, type DriverCommand, type DriverConfiguration, type DriverEventEmitter, type DriverFactory, type DriverNotice, type DriverQueryOptions, type DriverQueryResult, type DriverStream, type DriverStreamResult, type DriverTypeParser, } from './factories/createDriverFactory.js';
1
+ export { createDriverFactory, type Driver, type DriverClient, type DriverClientEventEmitter, type DriverClientState, type DriverCommand, type DriverConfiguration, type DriverEventEmitter, type DriverFactory, type DriverNotice, type DriverQueryOptions, type DriverQueryResult, type DriverStream, type DriverStreamResult, type DriverTypeParser, } from "./factories/createDriverFactory.js";
2
2
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { createDriverFactory, } from './factories/createDriverFactory.js';
1
+ export { createDriverFactory, } from "./factories/createDriverFactory.js";
2
2
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,68 +1,64 @@
1
1
  {
2
+ "name": "@slonik/driver",
3
+ "version": "48.13.0",
4
+ "description": "A Node.js PostgreSQL client with strict types, detailed logging and assertions.",
5
+ "keywords": [
6
+ "postgresql",
7
+ "promise",
8
+ "types"
9
+ ],
10
+ "license": "BSD-3-Clause",
2
11
  "author": {
3
- "email": "gajus@gajus.com",
4
12
  "name": "Gajus Kuizinas",
13
+ "email": "gajus@gajus.com",
5
14
  "url": "http://gajus.com"
6
15
  },
7
- "ava": {
8
- "extensions": [
9
- "ts"
10
- ],
11
- "files": [
12
- "src/**/*.test.ts"
13
- ],
14
- "nodeArguments": [
15
- "--import=tsimp"
16
- ]
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "https://github.com/gajus/slonik"
17
19
  },
20
+ "files": [
21
+ "./src",
22
+ "./dist"
23
+ ],
24
+ "type": "module",
25
+ "main": "./dist/index.js",
26
+ "types": "./dist/index.d.ts",
18
27
  "dependencies": {
19
- "@slonik/types": "^48.12.3",
20
- "@slonik/utilities": "^48.12.3",
28
+ "@slonik/types": "^48.13.0",
29
+ "@slonik/utilities": "^48.13.0",
21
30
  "roarr": "^7.21.4",
22
31
  "serialize-error": "^12.0.0",
23
32
  "strict-event-emitter-types": "^2.0.0"
24
33
  },
25
- "description": "A Node.js PostgreSQL client with strict types, detailed logging and assertions.",
26
34
  "devDependencies": {
27
35
  "@types/node": "^24.10.13",
28
36
  "ava": "^6.4.1",
29
37
  "cspell": "^9.6.4",
30
- "eslint": "9.39.2",
31
38
  "tsimp": "^2.0.12",
32
- "typescript": "^5.9.3",
33
- "typescript-eslint": "^8.55.0",
34
- "@slonik/eslint-config": "^48.12.3"
35
- },
36
- "engines": {
37
- "node": ">=24"
39
+ "typescript": "^5.9.3"
38
40
  },
39
- "files": [
40
- "./src",
41
- "./dist"
42
- ],
43
- "keywords": [
44
- "postgresql",
45
- "promise",
46
- "types"
47
- ],
48
- "license": "BSD-3-Clause",
49
- "main": "./dist/index.js",
50
- "name": "@slonik/driver",
51
41
  "peerDependencies": {
52
42
  "zod": "^3.25 || ^4"
53
43
  },
54
- "repository": {
55
- "type": "git",
56
- "url": "https://github.com/gajus/slonik"
44
+ "ava": {
45
+ "extensions": [
46
+ "ts"
47
+ ],
48
+ "files": [
49
+ "src/**/*.test.ts"
50
+ ],
51
+ "nodeArguments": [
52
+ "--import=tsimp"
53
+ ]
54
+ },
55
+ "engines": {
56
+ "node": ">=24"
57
57
  },
58
- "type": "module",
59
- "types": "./dist/index.d.ts",
60
- "version": "48.12.3",
61
58
  "scripts": {
62
59
  "build": "rm -fr ./dist && tsc --project ./tsconfig.json",
63
- "lint": "npm run lint:cspell && npm run lint:eslint && npm run lint:tsc",
60
+ "lint": "npm run lint:cspell && npm run lint:tsc",
64
61
  "lint:cspell": "cspell . --no-progress --gitignore",
65
- "lint:eslint": "eslint --cache ./src",
66
62
  "lint:tsc": "tsc --noEmit",
67
63
  "test": "ava --verbose --serial"
68
64
  }
package/src/Logger.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { Roarr } from 'roarr';
1
+ import { Roarr } from "roarr";
2
2
 
3
3
  export const Logger = Roarr.child({
4
- package: '@slonik/driver',
4
+ package: "@slonik/driver",
5
5
  });
@@ -1,5 +1,5 @@
1
- import test from 'ava';
1
+ import test from "ava";
2
2
 
3
- test('ok', (t) => {
3
+ test("ok", (t) => {
4
4
  t.pass();
5
5
  });
@@ -1,12 +1,12 @@
1
1
  /* eslint-disable @typescript-eslint/consistent-type-definitions */
2
- import { Logger } from '../Logger.js';
3
- import type { Field } from '@slonik/types';
4
- import { generateUid } from '@slonik/utilities';
5
- import EventEmitter from 'node:events';
6
- import type { Readable } from 'node:stream';
7
- import type { ConnectionOptions as TlsConnectionOptions } from 'node:tls';
8
- import { serializeError } from 'serialize-error';
9
- import type { StrictEventEmitter } from 'strict-event-emitter-types';
2
+ import { Logger } from "../Logger.js";
3
+ import type { Field } from "@slonik/types";
4
+ import { generateUid } from "@slonik/utilities";
5
+ import EventEmitter from "node:events";
6
+ import type { Readable } from "node:stream";
7
+ import type { ConnectionOptions as TlsConnectionOptions } from "node:tls";
8
+ import { serializeError } from "serialize-error";
9
+ import type { StrictEventEmitter } from "strict-event-emitter-types";
10
10
 
11
11
  const delay = (ms: number | undefined) =>
12
12
  new Promise<void>((resolve) => {
@@ -22,20 +22,17 @@ export type DriverClient = {
22
22
  acquire: () => void;
23
23
  destroy: () => Promise<void>;
24
24
  id: () => string;
25
- off: DriverClientEventEmitter['off'];
26
- on: DriverClientEventEmitter['on'];
25
+ off: DriverClientEventEmitter["off"];
26
+ on: DriverClientEventEmitter["on"];
27
27
  query: (
28
28
  query: string,
29
29
  values?: unknown[],
30
30
  queryOptions?: DriverQueryOptions,
31
31
  ) => Promise<DriverQueryResult>;
32
32
  release: () => Promise<void>;
33
- removeListener: DriverClientEventEmitter['removeListener'];
33
+ removeListener: DriverClientEventEmitter["removeListener"];
34
34
  state: () => DriverClientState;
35
- stream: (
36
- query: string,
37
- values?: unknown[],
38
- ) => DriverStream<DriverStreamResult>;
35
+ stream: (query: string, values?: unknown[]) => DriverStream<DriverStreamResult>;
39
36
  };
40
37
 
41
38
  export type DriverClientEventEmitter = StrictEventEmitter<
@@ -50,26 +47,26 @@ export type DriverClientEventEmitter = StrictEventEmitter<
50
47
  >;
51
48
 
52
49
  export type DriverClientState =
53
- | 'ACQUIRED'
54
- | 'DESTROYED'
55
- | 'IDLE'
56
- | 'PENDING_DESTROY'
57
- | 'PENDING_RELEASE';
50
+ | "ACQUIRED"
51
+ | "DESTROYED"
52
+ | "IDLE"
53
+ | "PENDING_DESTROY"
54
+ | "PENDING_RELEASE";
58
55
 
59
- export type DriverCommand = 'COPY' | 'DELETE' | 'INSERT' | 'SELECT' | 'UPDATE';
56
+ export type DriverCommand = "COPY" | "DELETE" | "INSERT" | "SELECT" | "UPDATE";
60
57
 
61
58
  export type DriverConfiguration = {
62
- readonly connectionTimeout: 'DISABLE_TIMEOUT' | number;
59
+ readonly connectionTimeout: "DISABLE_TIMEOUT" | number;
63
60
  readonly connectionUri: string;
64
61
  readonly gracefulTerminationTimeout?: number;
65
- readonly idleInTransactionSessionTimeout: 'DISABLE_TIMEOUT' | number;
66
- readonly idleTimeout?: 'DISABLE_TIMEOUT' | number;
67
- readonly maximumConnectionAge?: number;
62
+ readonly idleInTransactionSessionTimeout: "DISABLE_TIMEOUT" | number;
63
+ readonly idleTimeout?: "DISABLE_TIMEOUT" | number;
64
+ readonly maximumConnectionAge?: "DISABLE_TIMEOUT" | number;
68
65
  readonly maximumPoolSize?: number;
69
66
  readonly minimumPoolSize?: number;
70
67
  readonly resetConnection?: (connection: BasicConnection) => Promise<void>;
71
68
  readonly ssl?: TlsConnectionOptions;
72
- readonly statementTimeout: 'DISABLE_TIMEOUT' | number;
69
+ readonly statementTimeout: "DISABLE_TIMEOUT" | number;
73
70
  readonly typeParsers: readonly DriverTypeParser[];
74
71
  };
75
72
 
@@ -106,12 +103,9 @@ export type DriverQueryResult = {
106
103
  readonly rows: Array<Record<string, unknown>>;
107
104
  };
108
105
 
109
- export interface DriverStream<T> extends Omit<
110
- Readable,
111
- 'on' | typeof Symbol.asyncIterator
112
- > {
106
+ export interface DriverStream<T> extends Omit<Readable, "on" | typeof Symbol.asyncIterator> {
113
107
  [Symbol.asyncIterator]: () => AsyncIterableIterator<StreamDataEvent<T>>;
114
- on: ((event: 'data', listener: (chunk: StreamDataEvent<T>) => void) => this) &
108
+ on: ((event: "data", listener: (chunk: StreamDataEvent<T>) => void) => this) &
115
109
  ((event: string | symbol, listener: (...args: any[]) => void) => this);
116
110
  }
117
111
 
@@ -158,10 +152,7 @@ type InternalPoolClient = {
158
152
  values?: unknown[],
159
153
  queryOptions?: DriverQueryOptions,
160
154
  ) => Promise<DriverQueryResult>;
161
- stream: (
162
- query: string,
163
- values?: unknown[],
164
- ) => DriverStream<DriverStreamResult>;
155
+ stream: (query: string, values?: unknown[]) => DriverStream<DriverStreamResult>;
165
156
  };
166
157
 
167
158
  type InternalPoolClientFactory = {
@@ -204,13 +195,13 @@ export const createDriverFactory = (setup: DriverSetup): DriverFactory => {
204
195
  Logger.warn(
205
196
  {
206
197
  error: serializeError(error),
207
- namespace: 'driverClient',
198
+ namespace: "driverClient",
208
199
  },
209
- 'unhandled driver client error',
200
+ "unhandled driver client error",
210
201
  );
211
202
  };
212
203
 
213
- clientEventEmitter.on('error', onError);
204
+ clientEventEmitter.on("error", onError);
214
205
 
215
206
  const { connect, end, query, stream } = await createPoolClient({
216
207
  clientEventEmitter,
@@ -236,33 +227,33 @@ export const createDriverFactory = (setup: DriverSetup): DriverFactory => {
236
227
 
237
228
  const state = () => {
238
229
  if (destroyPromise) {
239
- return 'PENDING_DESTROY';
230
+ return "PENDING_DESTROY";
240
231
  }
241
232
 
242
233
  if (releasePromise) {
243
- return 'PENDING_RELEASE';
234
+ return "PENDING_RELEASE";
244
235
  }
245
236
 
246
237
  if (isDestroyed) {
247
- return 'DESTROYED';
238
+ return "DESTROYED";
248
239
  }
249
240
 
250
241
  if (isAcquired) {
251
- return 'ACQUIRED';
242
+ return "ACQUIRED";
252
243
  }
253
244
 
254
- return 'IDLE';
245
+ return "IDLE";
255
246
  };
256
247
 
257
248
  const internalDestroy = async () => {
258
249
  const currentState = state();
259
250
 
260
- if (currentState === 'PENDING_DESTROY') {
261
- throw new Error('Client is pending destroy.');
251
+ if (currentState === "PENDING_DESTROY") {
252
+ throw new Error("Client is pending destroy.");
262
253
  }
263
254
 
264
- if (currentState === 'DESTROYED') {
265
- throw new Error('Client is destroyed.');
255
+ if (currentState === "DESTROYED") {
256
+ throw new Error("Client is destroyed.");
266
257
  }
267
258
 
268
259
  clearIdleTimeout();
@@ -283,19 +274,16 @@ export const createDriverFactory = (setup: DriverSetup): DriverFactory => {
283
274
 
284
275
  isDestroyed = true;
285
276
 
286
- clientEventEmitter.emit('destroy');
277
+ clientEventEmitter.emit("destroy");
287
278
 
288
279
  // end() calls pg client.end() which sends a termination message and
289
280
  // waits for the TCP connection to close. On broken connections (half-open
290
281
  // TCP, network partition) this can hang indefinitely. Apply the same
291
282
  // graceful termination timeout to prevent leaked promises that block
292
283
  // pool.end() and callers awaiting connection.destroy().
293
- await Promise.race([
294
- end(),
295
- delay(driverConfiguration.gracefulTerminationTimeout),
296
- ]);
284
+ await Promise.race([end(), delay(driverConfiguration.gracefulTerminationTimeout)]);
297
285
 
298
- clientEventEmitter.off('error', onError);
286
+ clientEventEmitter.off("error", onError);
299
287
  };
300
288
 
301
289
  destroy = async () => {
@@ -311,20 +299,20 @@ export const createDriverFactory = (setup: DriverSetup): DriverFactory => {
311
299
  const internalRelease = async () => {
312
300
  const currentState = state();
313
301
 
314
- if (currentState === 'PENDING_DESTROY') {
315
- throw new Error('Client is pending destroy.');
302
+ if (currentState === "PENDING_DESTROY") {
303
+ throw new Error("Client is pending destroy.");
316
304
  }
317
305
 
318
- if (currentState === 'DESTROYED') {
319
- throw new Error('Client is destroyed.');
306
+ if (currentState === "DESTROYED") {
307
+ throw new Error("Client is destroyed.");
320
308
  }
321
309
 
322
- if (currentState !== 'ACQUIRED') {
323
- throw new Error('Client is not acquired.');
310
+ if (currentState !== "ACQUIRED") {
311
+ throw new Error("Client is not acquired.");
324
312
  }
325
313
 
326
314
  if (activeQueryPromise) {
327
- throw new Error('Client has an active query.');
315
+ throw new Error("Client has an active query.");
328
316
  }
329
317
 
330
318
  if (resetConnection) {
@@ -335,7 +323,7 @@ export const createDriverFactory = (setup: DriverSetup): DriverFactory => {
335
323
  });
336
324
  }
337
325
 
338
- if (driverConfiguration.idleTimeout !== 'DISABLE_TIMEOUT') {
326
+ if (driverConfiguration.idleTimeout !== "DISABLE_TIMEOUT") {
339
327
  clearIdleTimeout();
340
328
 
341
329
  idleTimeout = setTimeout(() => {
@@ -349,7 +337,7 @@ export const createDriverFactory = (setup: DriverSetup): DriverFactory => {
349
337
 
350
338
  releasePromise = null;
351
339
 
352
- clientEventEmitter.emit('release');
340
+ clientEventEmitter.emit("release");
353
341
  };
354
342
 
355
343
  const release = () => {
@@ -370,27 +358,27 @@ export const createDriverFactory = (setup: DriverSetup): DriverFactory => {
370
358
  acquire: () => {
371
359
  const currentState = state();
372
360
 
373
- if (currentState === 'PENDING_DESTROY') {
374
- throw new Error('Client is pending destroy.');
361
+ if (currentState === "PENDING_DESTROY") {
362
+ throw new Error("Client is pending destroy.");
375
363
  }
376
364
 
377
- if (currentState === 'PENDING_RELEASE') {
378
- throw new Error('Client is pending release.');
365
+ if (currentState === "PENDING_RELEASE") {
366
+ throw new Error("Client is pending release.");
379
367
  }
380
368
 
381
- if (currentState === 'DESTROYED') {
382
- throw new Error('Client is destroyed.');
369
+ if (currentState === "DESTROYED") {
370
+ throw new Error("Client is destroyed.");
383
371
  }
384
372
 
385
- if (currentState === 'ACQUIRED') {
386
- throw new Error('Client is already acquired.');
373
+ if (currentState === "ACQUIRED") {
374
+ throw new Error("Client is already acquired.");
387
375
  }
388
376
 
389
377
  clearIdleTimeout();
390
378
 
391
379
  isAcquired = true;
392
380
 
393
- clientEventEmitter.emit('acquire');
381
+ clientEventEmitter.emit("acquire");
394
382
  },
395
383
  destroy,
396
384
  id: () => id,
@@ -403,20 +391,20 @@ export const createDriverFactory = (setup: DriverSetup): DriverFactory => {
403
391
  query: async (sql, values, queryOptions) => {
404
392
  const currentState = state();
405
393
 
406
- if (currentState === 'PENDING_DESTROY') {
407
- throw new Error('Client is pending destroy.');
394
+ if (currentState === "PENDING_DESTROY") {
395
+ throw new Error("Client is pending destroy.");
408
396
  }
409
397
 
410
- if (currentState === 'PENDING_RELEASE') {
411
- throw new Error('Client is pending release.');
398
+ if (currentState === "PENDING_RELEASE") {
399
+ throw new Error("Client is pending release.");
412
400
  }
413
401
 
414
- if (currentState === 'DESTROYED') {
415
- throw new Error('Client is destroyed.');
402
+ if (currentState === "DESTROYED") {
403
+ throw new Error("Client is destroyed.");
416
404
  }
417
405
 
418
- if (currentState !== 'ACQUIRED') {
419
- throw new Error('Client is not acquired.');
406
+ if (currentState !== "ACQUIRED") {
407
+ throw new Error("Client is not acquired.");
420
408
  }
421
409
 
422
410
  try {
@@ -425,7 +413,7 @@ export const createDriverFactory = (setup: DriverSetup): DriverFactory => {
425
413
  const result = await activeQueryPromise;
426
414
 
427
415
  if (!activeQueryPromise) {
428
- throw new Error('Expected `activeQueryPromise` to be set.');
416
+ throw new Error("Expected `activeQueryPromise` to be set.");
429
417
  }
430
418
 
431
419
  return result;
@@ -441,20 +429,20 @@ export const createDriverFactory = (setup: DriverSetup): DriverFactory => {
441
429
  stream: (sql, values) => {
442
430
  const currentState = state();
443
431
 
444
- if (currentState === 'PENDING_DESTROY') {
445
- throw new Error('Client is pending destroy.');
432
+ if (currentState === "PENDING_DESTROY") {
433
+ throw new Error("Client is pending destroy.");
446
434
  }
447
435
 
448
- if (currentState === 'PENDING_RELEASE') {
449
- throw new Error('Client is pending release.');
436
+ if (currentState === "PENDING_RELEASE") {
437
+ throw new Error("Client is pending release.");
450
438
  }
451
439
 
452
- if (currentState === 'DESTROYED') {
453
- throw new Error('Client is destroyed.');
440
+ if (currentState === "DESTROYED") {
441
+ throw new Error("Client is destroyed.");
454
442
  }
455
443
 
456
- if (currentState !== 'ACQUIRED') {
457
- throw new Error('Client is not acquired.');
444
+ if (currentState !== "ACQUIRED") {
445
+ throw new Error("Client is not acquired.");
458
446
  }
459
447
 
460
448
  // Note: Stream lifecycle management should be handled by the caller.
@@ -467,7 +455,7 @@ export const createDriverFactory = (setup: DriverSetup): DriverFactory => {
467
455
  try {
468
456
  await connect();
469
457
  } catch (error) {
470
- clientEventEmitter.off('error', onError);
458
+ clientEventEmitter.off("error", onError);
471
459
 
472
460
  throw error;
473
461
  }
package/src/index.ts CHANGED
@@ -14,4 +14,4 @@ export {
14
14
  type DriverStream,
15
15
  type DriverStreamResult,
16
16
  type DriverTypeParser,
17
- } from './factories/createDriverFactory.js';
17
+ } from "./factories/createDriverFactory.js";