UNPKG

pg-tx

Version:

Transaction wrapper for node-postgres

122 lines 3.55 kB
"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