UNPKG

@eggjs/tegg-dal-plugin

Version:
85 lines 8.6 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); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DataSourceDelegate = void 0; const node_assert_1 = __importDefault(require("node:assert")); const tegg_1 = require("@eggjs/tegg"); const helper_1 = require("@eggjs/tegg/helper"); const dal_1 = require("@eggjs/tegg/dal"); const dal_runtime_1 = require("@eggjs/dal-runtime"); const TableModelManager_1 = require("./TableModelManager"); const MysqlDataSourceManager_1 = require("./MysqlDataSourceManager"); const SqlMapManager_1 = require("./SqlMapManager"); const TransactionalAOP_1 = require("./TransactionalAOP"); let DataSourceDelegate = class DataSourceDelegate extends dal_runtime_1.DataSource { constructor(transactionalAOP, objInfo) { var _a; const dataSourceQualifierValue = (_a = objInfo.qualifiers.find(t => t.attribute === dal_1.DataSourceQualifierAttribute)) === null || _a === void 0 ? void 0 : _a.value; (0, node_assert_1.default)(dataSourceQualifierValue); // eslint-disable-next-line @typescript-eslint/no-unused-vars const [moduleName, dataSource, clazzName] = dataSourceQualifierValue.split('.'); const tableModel = TableModelManager_1.TableModelManager.instance.get(moduleName, clazzName); (0, node_assert_1.default)(tableModel, `not found table ${dataSourceQualifierValue}`); const mysqlDataSource = MysqlDataSourceManager_1.MysqlDataSourceManager.instance.get(moduleName, dataSource); (0, node_assert_1.default)(mysqlDataSource, `not found dataSource ${dataSource} in module ${moduleName}`); const sqlMap = SqlMapManager_1.SqlMapManager.instance.get(moduleName, clazzName); (0, node_assert_1.default)(sqlMap, `not found SqlMap ${clazzName} in module ${moduleName}`); super(tableModel, mysqlDataSource, sqlMap); this.transactionalAOP = transactionalAOP; this.objInfo = objInfo; } }; exports.DataSourceDelegate = DataSourceDelegate; exports.DataSourceDelegate = DataSourceDelegate = __decorate([ (0, tegg_1.MultiInstanceProto)({ accessLevel: tegg_1.AccessLevel.PUBLIC, initType: tegg_1.ObjectInitType.SINGLETON, getObjects(ctx) { const config = helper_1.ModuleConfigUtil.loadModuleConfigSync(ctx.unitPath); const dataSources = Object.keys((config === null || config === void 0 ? void 0 : config.dataSource) || {}); const result = []; const loader = helper_1.LoaderFactory.createLoader(ctx.unitPath, helper_1.EggLoadUnitType.MODULE); const clazzList = loader.load(); const tableClazzList = clazzList.filter(t => { return dal_1.TableInfoUtil.getIsTable(t); }); const dataSourceLength = dataSources.length; for (const dataSource of dataSources) { const moduleClazzList = tableClazzList.filter(clazz => { var _a; const tableParams = dal_1.TableInfoUtil.getTableParams(clazz); const dataSourceName = (_a = tableParams === null || tableParams === void 0 ? void 0 : tableParams.dataSourceName) !== null && _a !== void 0 ? _a : 'default'; return dataSourceLength === 1 || dataSourceName === dataSource; }); for (const clazz of moduleClazzList) { result.push({ name: dal_1.DataSourceInjectName, qualifiers: [{ attribute: dal_1.DataSourceQualifierAttribute, value: `${ctx.moduleName}.${dataSource}.${clazz.name}`, }], }); } } return result; }, }), __param(0, (0, tegg_1.Inject)({ name: 'transactionalAOP' })), __param(1, (0, tegg_1.MultiInstanceInfo)([dal_1.DataSourceQualifierAttribute, tegg_1.LoadUnitNameQualifierAttribute])), __metadata("design:paramtypes", [TransactionalAOP_1.TransactionalAOP, Object]) ], DataSourceDelegate); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkRhdGFTb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOERBQWlDO0FBQ2pDLHNDQU9xQjtBQUNyQiwrQ0FJNEI7QUFDNUIseUNBS3lCO0FBQ3pCLG9EQUFnRDtBQUNoRCwyREFBd0Q7QUFDeEQscUVBQWtFO0FBQ2xFLG1EQUFnRDtBQUNoRCx5REFBc0Q7QUFrQy9DLElBQU0sa0JBQWtCLEdBQXhCLE1BQU0sa0JBQXNCLFNBQVEsd0JBQWE7SUFNdEQsWUFDd0MsZ0JBQWtDLEVBQ2EsT0FBbUI7O1FBQ3hHLE1BQU0sd0JBQXdCLEdBQUcsTUFBQSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssa0NBQTRCLENBQUMsMENBQUUsS0FBSyxDQUFDO1FBQ25ILElBQUEscUJBQU0sRUFBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ2pDLDZEQUE2RDtRQUM3RCxNQUFNLENBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUUsR0FBSSx3QkFBbUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUYsTUFBTSxVQUFVLEdBQUcscUNBQWlCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDekUsSUFBQSxxQkFBTSxFQUFDLFVBQVUsRUFBRSxtQkFBbUIsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sZUFBZSxHQUFHLCtDQUFzQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3BGLElBQUEscUJBQU0sRUFBQyxlQUFlLEVBQUUsd0JBQXdCLFVBQVUsY0FBYyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3RGLE1BQU0sTUFBTSxHQUFHLDZCQUFhLENBQUMs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