@myfunc/prisma-transactional
Version:
Decorator that wraps all prisma queries along the whole call stack to a single transaction.
32 lines (31 loc) • 976 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Manager = void 0;
const console_logger_1 = require("./logger/console-logger");
const empty_logger_1 = require("./logger/empty-logger");
class PrismaTransactionalManager {
constructor() {
this._logger = new empty_logger_1.EmptyLogger();
}
setPrismaClient(prismaClient) {
this._prismaClient = prismaClient;
}
setConfig(config) {
if (config?.enableLogging) {
this._logger = config.customLogger ?? new console_logger_1.ConsoleLogger();
}
else {
this._logger = new empty_logger_1.EmptyLogger();
}
}
get prismaClient() {
if (!this._prismaClient) {
throw new Error('PrismaTransactionalManager: Prisma client not set');
}
return this._prismaClient;
}
get logger() {
return this._logger;
}
}
exports.Manager = new PrismaTransactionalManager();