@eggjs/tegg-dal-plugin
Version:
dal plugin for egg
85 lines • 8.6 kB
JavaScript
;
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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