postgrejs 2.20.0 → 2.21.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/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ # v2.21.0
2
+ [2024-09-14]
3
+
4
+ ### Changes
5
+
6
+ * Abort pending operations when the socket closes ([`705063a`](https://github.com/panates/postgrejs/commit/705063a4a15267b1ce634a32f2b997c55b6aff45))
7
+ * chore: fixed lint issues ([`f13dab2`](https://github.com/panates/postgrejs/commit/f13dab2858dac384de4c8b3c21f650995f66ff5e))
8
+ * Throw exception when trying to run query on a connection that is not yeat ready or closing/closed ([`96bd55b`](https://github.com/panates/postgrejs/commit/96bd55bc4e6bb941a2891c79f316653c8c03e1da))
9
+
1
10
  # v2.20.0
2
11
  [2024-09-14]
3
12
 
@@ -154,8 +154,14 @@ class PgSocket extends safe_event_emitter_js_1.SafeEventEmitter {
154
154
  this._send(this._frontend.getSyncMessage());
155
155
  }
156
156
  capture(callback) {
157
+ if (this._state === constants_js_1.ConnectionState.CLOSING || this._state === constants_js_1.ConnectionState.CLOSED) {
158
+ return Promise.reject(new Error('Connection closed'));
159
+ }
160
+ if (this._state !== constants_js_1.ConnectionState.READY)
161
+ return Promise.reject(new Error('Connection is not ready'));
157
162
  return new Promise((resolve, reject) => {
158
163
  const done = (err, result) => {
164
+ this.removeListener('close', closeHandler);
159
165
  this.removeListener('error', errorHandler);
160
166
  this.removeListener('message', msgHandler);
161
167
  if (err)
@@ -164,14 +170,21 @@ class PgSocket extends safe_event_emitter_js_1.SafeEventEmitter {
164
170
  resolve(result);
165
171
  };
166
172
  const errorHandler = (err) => {
173
+ this.removeListener('close', closeHandler);
167
174
  this.removeListener('message', msgHandler);
168
175
  reject(err);
169
176
  };
177
+ const closeHandler = () => {
178
+ this.removeListener('error', errorHandler);
179
+ this.removeListener('message', msgHandler);
180
+ reject(new Error('Connection closed'));
181
+ };
170
182
  const msgHandler = (code, msg) => {
171
183
  const x = callback(code, msg, done);
172
184
  if (putil_promisify_1.default.isPromise(x))
173
185
  x.catch(err => done(err));
174
186
  };
187
+ this.once('close', closeHandler);
175
188
  this.once('error', errorHandler);
176
189
  this.on('message', msgHandler);
177
190
  });
@@ -150,8 +150,14 @@ export class PgSocket extends SafeEventEmitter {
150
150
  this._send(this._frontend.getSyncMessage());
151
151
  }
152
152
  capture(callback) {
153
+ if (this._state === ConnectionState.CLOSING || this._state === ConnectionState.CLOSED) {
154
+ return Promise.reject(new Error('Connection closed'));
155
+ }
156
+ if (this._state !== ConnectionState.READY)
157
+ return Promise.reject(new Error('Connection is not ready'));
153
158
  return new Promise((resolve, reject) => {
154
159
  const done = (err, result) => {
160
+ this.removeListener('close', closeHandler);
155
161
  this.removeListener('error', errorHandler);
156
162
  this.removeListener('message', msgHandler);
157
163
  if (err)
@@ -160,14 +166,21 @@ export class PgSocket extends SafeEventEmitter {
160
166
  resolve(result);
161
167
  };
162
168
  const errorHandler = (err) => {
169
+ this.removeListener('close', closeHandler);
163
170
  this.removeListener('message', msgHandler);
164
171
  reject(err);
165
172
  };
173
+ const closeHandler = () => {
174
+ this.removeListener('error', errorHandler);
175
+ this.removeListener('message', msgHandler);
176
+ reject(new Error('Connection closed'));
177
+ };
166
178
  const msgHandler = (code, msg) => {
167
179
  const x = callback(code, msg, done);
168
180
  if (promisify.isPromise(x))
169
181
  x.catch(err => done(err));
170
182
  };
183
+ this.once('close', closeHandler);
171
184
  this.once('error', errorHandler);
172
185
  this.on('message', msgHandler);
173
186
  });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "postgrejs",
3
3
  "description": "Professional PostgreSQL client NodeJS",
4
- "version": "2.20.0",
4
+ "version": "2.21.0",
5
5
  "author": "Panates",
6
6
  "license": "MIT",
7
7
  "dependencies": {