pg-tx
Version:
Transaction wrapper for node-postgres
32 lines • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.releaseClient = exports.getClient = exports.ClientMode = void 0;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
function isPoolClient(p) {
return typeof p['release'] === 'function';
}
/** Whether we got a ready client, or connected it ourselves */
var ClientMode;
(function (ClientMode) {
ClientMode[ClientMode["Provided"] = 0] = "Provided";
ClientMode[ClientMode["Connected"] = 1] = "Connected";
})(ClientMode = exports.ClientMode || (exports.ClientMode = {}));
async function getClient(pg) {
if (isPoolClient(pg)) {
return { client: pg, clientMode: ClientMode.Provided };
}
else {
return {
client: await pg.connect(),
clientMode: ClientMode.Connected
};
}
}
exports.getClient = getClient;
function releaseClient({ client, clientMode }) {
if (clientMode === ClientMode.Connected) {
client.release();
}
}
exports.releaseClient = releaseClient;
//# sourceMappingURL=client.js.map