UNPKG

@wbget/midway-ats

Version:

midwayjs ats module

73 lines (72 loc) 3.28 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ATSConfiguration = void 0; const core_1 = require("@midwayjs/core"); const typeorm = require("@midwayjs/typeorm"); const path_1 = require("path"); const uuid = require("@wbget/midway-uuid-int"); const koa = require("@midwayjs/koa"); const interface_transaction_1 = require("./transaction/interface.transaction"); const typeorm_1 = require("@midwayjs/typeorm"); const typeorm_2 = require("typeorm"); const ats_service_1 = require("./service/ats.service"); let ATSConfiguration = class ATSConfiguration { async onReady() { this.decoratorService.registerMethodHandler(interface_transaction_1.TRANSACTION_KEY, options => { return { around: async (joinPoint) => { return this.dataSource.manager.transaction(async (manager) => { const instance = joinPoint.target; const ctx = instance[core_1.REQUEST_OBJ_CTX_KEY]; const ats = await ctx.requestContext.getAsync(ats_service_1.ATSService); const old = ats.manager; ats.manager = manager; try { const result = await joinPoint.proceed(...joinPoint.args); return result; } catch (error) { throw error; } finally { ats.manager = old; } }); }, }; }); } }; __decorate([ (0, core_1.Inject)(), __metadata("design:type", core_1.MidwayDecoratorService) ], ATSConfiguration.prototype, "decoratorService", void 0); __decorate([ (0, typeorm_1.InjectDataSource)(), __metadata("design:type", typeorm_2.DataSource) ], ATSConfiguration.prototype, "dataSource", void 0); __decorate([ (0, core_1.Logger)(), __metadata("design:type", Object) ], ATSConfiguration.prototype, "logger", void 0); ATSConfiguration = __decorate([ (0, core_1.Configuration)({ namespace: 'ats', importConfigs: [ { importConfigs: [(0, path_1.join)(__dirname, './config')], }, ], imports: [koa, typeorm, uuid], }) ], ATSConfiguration); exports.ATSConfiguration = ATSConfiguration;