@tsrt/typeorm-transactions
Version:
TypeORM convenient transactions management
34 lines • 1.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseRepository = exports.patchTypeOrmRepository = void 0;
const typeorm_1 = require("typeorm");
const utils_1 = require("./utils");
/**
* Patches provided class prototype `manager` property to try to use EntityManager form Cls Namespace, and fallback to default.
*
* @param repository - Repository class to be patched. @default require('typeorm').Repository. @example Repository || Repository.prototype.
* @param options - Optional options to be used for getting manager connection. Mostly you won't need it.
*/
function patchTypeOrmRepository(
/* eslint-disable-next-line */
repository = require('typeorm').Repository, options = {}) {
var _a;
const prototype = (_a = repository.prototype) !== null && _a !== void 0 ? _a : repository;
Object.defineProperty(prototype, 'manager', {
get() {
var _a, _b, _c, _d, _e;
const connectionName = (_c = (_b = (_a = this._originalManager) === null || _a === void 0 ? void 0 : _a.connection) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : (_d = utils_1.getConnection(options.connection, options.connectionName)) === null || _d === void 0 ? void 0 : _d.name;
const manager = utils_1.getManagerFromNs(connectionName);
return (_e = manager !== null && manager !== void 0 ? manager : this._originalManager) !== null && _e !== void 0 ? _e : typeorm_1.getManager(connectionName);
},
set(manager) {
this._originalManager = manager;
},
});
}
exports.patchTypeOrmRepository = patchTypeOrmRepository;
class BaseRepository extends typeorm_1.Repository {
}
exports.BaseRepository = BaseRepository;
patchTypeOrmRepository(BaseRepository);
//# sourceMappingURL=BaseRepository.js.map