pg-tx
Version:
Transaction wrapper for node-postgres
122 lines • 3.55 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProxyClient = void 0;
/* eslint @typescript-eslint/ban-types: 0 */
/* eslint @typescript-eslint/no-explicit-any: 0 */
/* eslint node/no-unpublished-import: 0 */
/* eslint @typescript-eslint/explicit-module-boundary-types: 0 */
class ProxyClient {
constructor(client) {
this.client = client;
this.released = false;
}
releaseCheck() {
if (this.released) {
throw new Error(`Transaction client already released, see more: https://tinyurl.com/py2upfcw`);
}
}
// EventEmitter implementation
addListener(event, listener) {
this.releaseCheck();
return this.client.addListener(event, listener);
}
once(event, listener) {
this.releaseCheck();
return this.client.once(event, listener);
}
removeListener(event, listener) {
this.releaseCheck();
return this.client.removeListener(event, listener);
}
off(event, listener) {
this.releaseCheck();
return this.client.off(event, listener);
}
removeAllListeners(event) {
this.releaseCheck();
return this.client.removeAllListeners(event);
}
setMaxListeners(n) {
this.releaseCheck();
return this.client.setMaxListeners(n);
}
getMaxListeners() {
this.releaseCheck();
return this.client.getMaxListeners();
}
listeners(event) {
this.releaseCheck();
return this.client.listeners(event);
}
rawListeners(event) {
this.releaseCheck();
return this.client.rawListeners(event);
}
emit(event, ...args) {
this.releaseCheck();
return this.client.emit(event, args);
}
listenerCount(event) {
this.releaseCheck();
return this.client.listenerCount(event);
}
prependListener(event, listener) {
this.releaseCheck();
return this.client.prependListener(event, listener);
}
prependOnceListener(event, listener) {
this.releaseCheck();
return this.client.prependOnceListener(event, listener);
}
eventNames() {
this.releaseCheck();
return this.client.eventNames();
}
connect(_) {
throw new Error(`proxy client cannot connect`);
}
query(param1, param2, param3) {
// TODO check query texts to filter out transaction queries
this.releaseCheck();
return this.client.query(param1, param2, param3);
}
copyFrom(queryText) {
this.releaseCheck();
return this.client.copyFrom(queryText);
}
copyTo(queryText) {
this.releaseCheck();
return this.client.copyTo(queryText);
}
pauseDrain() {
this.releaseCheck();
return this.client.pauseDrain();
}
resumeDrain() {
this.releaseCheck();
return this.client.resumeDrain();
}
escapeIdentifier(str) {
this.releaseCheck();
return this.client.escapeIdentifier(str);
}
escapeLiteral(str) {
this.releaseCheck();
return this.client.escapeLiteral(str);
}
on(param1, param2) {
this.releaseCheck();
return this.client.on(param1, param2);
}
// PoolClient implementation
release(err) {
this.releaseCheck();
this.proxyRelease();
this.client.release(err);
}
proxyRelease() {
this.released = true;
}
}
exports.ProxyClient = ProxyClient;
//# sourceMappingURL=proxy_client.js.map