@slonik/driver 46.2.0 → 46.4.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.
@@ -3,25 +3,30 @@ import EventEmitter from 'node:events';
3
3
  import { type Readable } from 'node:stream';
4
4
  import { type ConnectionOptions as TlsConnectionOptions } from 'node:tls';
5
5
  import { type StrictEventEmitter } from 'strict-event-emitter-types';
6
- type StreamDataEvent<T> = {
7
- data: T;
8
- fields: readonly Field[];
9
- };
10
- export interface DriverStream<T> extends Readable {
11
- [Symbol.asyncIterator]: () => AsyncIterableIterator<StreamDataEvent<T>>;
12
- on(event: 'data', listener: (chunk: StreamDataEvent<T>) => void): this;
13
- on(event: string | symbol, listener: (...args: any[]) => void): this;
14
- }
15
- type BasicConnection = {
16
- readonly query: (query: string) => Promise<void>;
6
+ export type Driver = {
7
+ createClient: () => Promise<DriverClient>;
17
8
  };
18
- /**
19
- * @property name Value of "pg_type"."typname" (e.g. "int8", "timestamp", "timestamptz").
20
- */
21
- export type DriverTypeParser<T = unknown> = {
22
- readonly name: string;
23
- readonly parse: (value: string) => T;
9
+ export type DriverClient = {
10
+ acquire: () => void;
11
+ destroy: () => Promise<void>;
12
+ id: () => string;
13
+ off: DriverClientEventEmitter['off'];
14
+ on: DriverClientEventEmitter['on'];
15
+ query: (query: string, values?: unknown[]) => Promise<DriverQueryResult>;
16
+ release: () => Promise<void>;
17
+ removeListener: DriverClientEventEmitter['removeListener'];
18
+ state: () => DriverClientState;
19
+ stream: (query: string, values?: unknown[]) => DriverStream<DriverStreamResult>;
24
20
  };
21
+ export type DriverClientEventEmitter = StrictEventEmitter<EventEmitter, {
22
+ acquire: () => void;
23
+ destroy: () => void;
24
+ error: (error: Error) => void;
25
+ notice: (event: DriverNotice) => void;
26
+ release: () => void;
27
+ }>;
28
+ export type DriverClientState = 'ACQUIRED' | 'DESTROYED' | 'IDLE' | 'PENDING_DESTROY' | 'PENDING_RELEASE';
29
+ export type DriverCommand = 'COPY' | 'DELETE' | 'INSERT' | 'SELECT' | 'UPDATE';
25
30
  export type DriverConfiguration = {
26
31
  readonly connectionTimeout: 'DISABLE_TIMEOUT' | number;
27
32
  readonly connectionUri: string;
@@ -35,53 +40,44 @@ export type DriverConfiguration = {
35
40
  readonly statementTimeout: 'DISABLE_TIMEOUT' | number;
36
41
  readonly typeParsers: readonly DriverTypeParser[];
37
42
  };
38
- export type DriverNotice = {
39
- message: string;
40
- };
41
43
  export type DriverEventEmitter = StrictEventEmitter<EventEmitter, {
42
44
  error: (error: Error) => void;
43
45
  }>;
44
- export type DriverClientEventEmitter = StrictEventEmitter<EventEmitter, {
45
- acquire: () => void;
46
- destroy: () => void;
47
- error: (error: Error) => void;
48
- notice: (event: DriverNotice) => void;
49
- release: () => void;
50
- }>;
51
- export type DriverClientState = 'ACQUIRED' | 'DESTROYED' | 'IDLE' | 'PENDING_DESTROY' | 'PENDING_RELEASE';
52
- export type DriverClient = {
53
- acquire: () => void;
54
- destroy: () => Promise<void>;
55
- id: () => string;
56
- off: DriverClientEventEmitter['off'];
57
- on: DriverClientEventEmitter['on'];
58
- query: (query: string, values?: unknown[]) => Promise<DriverQueryResult>;
59
- release: () => Promise<void>;
60
- removeListener: DriverClientEventEmitter['removeListener'];
61
- state: () => DriverClientState;
62
- stream: (query: string, values?: unknown[]) => DriverStream<DriverStreamResult>;
63
- };
64
- export type Driver = {
65
- createClient: () => Promise<DriverClient>;
66
- };
67
46
  export type DriverFactory = ({ driverConfiguration, }: {
68
47
  driverConfiguration: DriverConfiguration;
69
48
  }) => Promise<Driver>;
70
- type DriverField = {
71
- dataTypeId: number;
72
- name: string;
49
+ export type DriverNotice = {
50
+ message: string;
73
51
  };
74
- export type DriverCommand = 'COPY' | 'DELETE' | 'INSERT' | 'SELECT' | 'UPDATE';
75
52
  export type DriverQueryResult = {
76
53
  readonly command: DriverCommand;
77
54
  readonly fields: DriverField[];
78
55
  readonly rowCount: null | number;
79
56
  readonly rows: Array<Record<string, unknown>>;
80
57
  };
58
+ export interface DriverStream<T> extends Readable {
59
+ [Symbol.asyncIterator]: () => AsyncIterableIterator<StreamDataEvent<T>>;
60
+ on(event: 'data', listener: (chunk: StreamDataEvent<T>) => void): this;
61
+ on(event: string | symbol, listener: (...args: any[]) => void): this;
62
+ }
81
63
  export type DriverStreamResult = {
82
64
  readonly fields: DriverField[];
83
65
  readonly row: Record<string, unknown>;
84
66
  };
67
+ /**
68
+ * @property name Value of "pg_type"."typname" (e.g. "int8", "timestamp", "timestamptz").
69
+ */
70
+ export type DriverTypeParser<T = unknown> = {
71
+ readonly name: string;
72
+ readonly parse: (value: string) => T;
73
+ };
74
+ type BasicConnection = {
75
+ readonly query: (query: string) => Promise<void>;
76
+ };
77
+ type DriverField = {
78
+ dataTypeId: number;
79
+ name: string;
80
+ };
85
81
  type DriverSetup = ({ driverConfiguration, driverEventEmitter, }: {
86
82
  driverConfiguration: DriverConfiguration;
87
83
  driverEventEmitter: DriverEventEmitter;
@@ -102,6 +98,10 @@ type InternalPoolClientFactory = {
102
98
  clientEventEmitter: DriverClientEventEmitter;
103
99
  }) => Promise<InternalPoolClient>;
104
100
  };
101
+ type StreamDataEvent<T> = {
102
+ data: T;
103
+ fields: readonly Field[];
104
+ };
105
105
  export declare const createDriverFactory: (setup: DriverSetup) => DriverFactory;
106
106
  export {};
107
107
  //# sourceMappingURL=createDriverFactory.d.ts.map
@@ -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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"}
package/package.json CHANGED
@@ -16,8 +16,8 @@
16
16
  ]
17
17
  },
18
18
  "dependencies": {
19
- "@slonik/types": "^46.2.0",
20
- "@slonik/utilities": "^46.2.0",
19
+ "@slonik/types": "^46.4.0",
20
+ "@slonik/utilities": "^46.4.0",
21
21
  "roarr": "^7.21.1",
22
22
  "serialize-error": "^8.0.0",
23
23
  "strict-event-emitter-types": "^2.0.0"
@@ -27,11 +27,11 @@
27
27
  "@types/node": "^22.9.0",
28
28
  "ava": "^6.1.3",
29
29
  "cspell": "^8.16.0",
30
- "eslint": "^9.14.0",
30
+ "eslint": "^9.16.0",
31
31
  "nyc": "^15.1.0",
32
32
  "ts-node": "^10.9.1",
33
33
  "typescript": "^5.6.3",
34
- "@slonik/eslint-config": "^46.2.0"
34
+ "@slonik/eslint-config": "^46.4.0"
35
35
  },
36
36
  "engines": {
37
37
  "node": ">=18"
@@ -74,7 +74,7 @@
74
74
  "url": "https://github.com/gajus/slonik"
75
75
  },
76
76
  "types": "./dist/index.d.ts",
77
- "version": "46.2.0",
77
+ "version": "46.4.0",
78
78
  "scripts": {
79
79
  "build": "rm -fr ./dist && tsc --project ./tsconfig.json",
80
80
  "lint": "npm run lint:cspell && npm run lint:eslint && npm run lint:tsc",
@@ -10,29 +10,45 @@ import { type ConnectionOptions as TlsConnectionOptions } from 'node:tls';
10
10
  import { serializeError } from 'serialize-error';
11
11
  import { type StrictEventEmitter } from 'strict-event-emitter-types';
12
12
 
13
- type StreamDataEvent<T> = { data: T; fields: readonly Field[] };
13
+ export type Driver = {
14
+ createClient: () => Promise<DriverClient>;
15
+ };
14
16
 
15
- // @ts-expect-error - TODO figure out how to fix this
16
- export interface DriverStream<T> extends Readable {
17
- [Symbol.asyncIterator]: () => AsyncIterableIterator<StreamDataEvent<T>>;
18
- // eslint-disable-next-line @typescript-eslint/method-signature-style
19
- on(event: 'data', listener: (chunk: StreamDataEvent<T>) => void): this;
17
+ export type DriverClient = {
18
+ acquire: () => void;
19
+ destroy: () => Promise<void>;
20
+ id: () => string;
21
+ off: DriverClientEventEmitter['off'];
22
+ on: DriverClientEventEmitter['on'];
23
+ query: (query: string, values?: unknown[]) => Promise<DriverQueryResult>;
24
+ release: () => Promise<void>;
25
+ removeListener: DriverClientEventEmitter['removeListener'];
26
+ state: () => DriverClientState;
27
+ stream: (
28
+ query: string,
29
+ values?: unknown[],
30
+ ) => DriverStream<DriverStreamResult>;
31
+ };
20
32
 
21
- // eslint-disable-next-line @typescript-eslint/method-signature-style
22
- on(event: string | symbol, listener: (...args: any[]) => void): this;
23
- }
33
+ export type DriverClientEventEmitter = StrictEventEmitter<
34
+ EventEmitter,
35
+ {
36
+ acquire: () => void;
37
+ destroy: () => void;
38
+ error: (error: Error) => void;
39
+ notice: (event: DriverNotice) => void;
40
+ release: () => void;
41
+ }
42
+ >;
24
43
 
25
- type BasicConnection = {
26
- readonly query: (query: string) => Promise<void>;
27
- };
44
+ export type DriverClientState =
45
+ | 'ACQUIRED'
46
+ | 'DESTROYED'
47
+ | 'IDLE'
48
+ | 'PENDING_DESTROY'
49
+ | 'PENDING_RELEASE';
28
50
 
29
- /**
30
- * @property name Value of "pg_type"."typname" (e.g. "int8", "timestamp", "timestamptz").
31
- */
32
- export type DriverTypeParser<T = unknown> = {
33
- readonly name: string;
34
- readonly parse: (value: string) => T;
35
- };
51
+ export type DriverCommand = 'COPY' | 'DELETE' | 'INSERT' | 'SELECT' | 'UPDATE';
36
52
 
37
53
  export type DriverConfiguration = {
38
54
  readonly connectionTimeout: 'DISABLE_TIMEOUT' | number;
@@ -48,10 +64,6 @@ export type DriverConfiguration = {
48
64
  readonly typeParsers: readonly DriverTypeParser[];
49
65
  };
50
66
 
51
- export type DriverNotice = {
52
- message: string;
53
- };
54
-
55
67
  export type DriverEventEmitter = StrictEventEmitter<
56
68
  EventEmitter,
57
69
  {
@@ -59,57 +71,16 @@ export type DriverEventEmitter = StrictEventEmitter<
59
71
  }
60
72
  >;
61
73
 
62
- export type DriverClientEventEmitter = StrictEventEmitter<
63
- EventEmitter,
64
- {
65
- acquire: () => void;
66
- destroy: () => void;
67
- error: (error: Error) => void;
68
- notice: (event: DriverNotice) => void;
69
- release: () => void;
70
- }
71
- >;
72
-
73
- export type DriverClientState =
74
- | 'ACQUIRED'
75
- | 'DESTROYED'
76
- | 'IDLE'
77
- | 'PENDING_DESTROY'
78
- | 'PENDING_RELEASE';
79
-
80
- export type DriverClient = {
81
- acquire: () => void;
82
- destroy: () => Promise<void>;
83
- id: () => string;
84
- off: DriverClientEventEmitter['off'];
85
- on: DriverClientEventEmitter['on'];
86
- query: (query: string, values?: unknown[]) => Promise<DriverQueryResult>;
87
- release: () => Promise<void>;
88
- removeListener: DriverClientEventEmitter['removeListener'];
89
- state: () => DriverClientState;
90
- stream: (
91
- query: string,
92
- values?: unknown[],
93
- ) => DriverStream<DriverStreamResult>;
94
- };
95
-
96
- export type Driver = {
97
- createClient: () => Promise<DriverClient>;
98
- };
99
-
100
74
  export type DriverFactory = ({
101
75
  driverConfiguration,
102
76
  }: {
103
77
  driverConfiguration: DriverConfiguration;
104
78
  }) => Promise<Driver>;
105
79
 
106
- type DriverField = {
107
- dataTypeId: number;
108
- name: string;
80
+ export type DriverNotice = {
81
+ message: string;
109
82
  };
110
83
 
111
- export type DriverCommand = 'COPY' | 'DELETE' | 'INSERT' | 'SELECT' | 'UPDATE';
112
-
113
84
  export type DriverQueryResult = {
114
85
  readonly command: DriverCommand;
115
86
  readonly fields: DriverField[];
@@ -117,11 +88,38 @@ export type DriverQueryResult = {
117
88
  readonly rows: Array<Record<string, unknown>>;
118
89
  };
119
90
 
91
+ // @ts-expect-error - TODO figure out how to fix this
92
+ export interface DriverStream<T> extends Readable {
93
+ [Symbol.asyncIterator]: () => AsyncIterableIterator<StreamDataEvent<T>>;
94
+ // eslint-disable-next-line @typescript-eslint/method-signature-style
95
+ on(event: 'data', listener: (chunk: StreamDataEvent<T>) => void): this;
96
+
97
+ // eslint-disable-next-line @typescript-eslint/method-signature-style
98
+ on(event: string | symbol, listener: (...args: any[]) => void): this;
99
+ }
100
+
120
101
  export type DriverStreamResult = {
121
102
  readonly fields: DriverField[];
122
103
  readonly row: Record<string, unknown>;
123
104
  };
124
105
 
106
+ /**
107
+ * @property name Value of "pg_type"."typname" (e.g. "int8", "timestamp", "timestamptz").
108
+ */
109
+ export type DriverTypeParser<T = unknown> = {
110
+ readonly name: string;
111
+ readonly parse: (value: string) => T;
112
+ };
113
+
114
+ type BasicConnection = {
115
+ readonly query: (query: string) => Promise<void>;
116
+ };
117
+
118
+ type DriverField = {
119
+ dataTypeId: number;
120
+ name: string;
121
+ };
122
+
125
123
  type DriverSetup = ({
126
124
  driverConfiguration,
127
125
  driverEventEmitter,
@@ -153,6 +151,8 @@ type InternalPoolClientFactory = {
153
151
  }) => Promise<InternalPoolClient>;
154
152
  };
155
153
 
154
+ type StreamDataEvent<T> = { data: T; fields: readonly Field[] };
155
+
156
156
  export const createDriverFactory = (setup: DriverSetup): DriverFactory => {
157
157
  return async ({ driverConfiguration }): Promise<Driver> => {
158
158
  const { resetConnection } = driverConfiguration;