UNPKG

@tsrt/typeorm-transactions

Version:
34 lines 1.83 kB
"use strict"; 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