UNPKG

@eggjs/dal-plugin

Version:
83 lines 8.66 kB
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); } }; import assert from 'node:assert'; import { AccessLevel, Inject, LoadUnitNameQualifierAttribute, MultiInstanceInfo, MultiInstanceProto, ObjectInitType, } from '@eggjs/core-decorator'; import { EggLoadUnitType } from '@eggjs/tegg-types'; import { LoaderFactory } from '@eggjs/tegg-loader'; import { ModuleConfigUtil } from '@eggjs/tegg-common-util'; import { DataSourceInjectName, DataSourceQualifierAttribute, TableInfoUtil, TableModel } from '@eggjs/dal-decorator'; import { DataSource } from '@eggjs/dal-runtime'; import { TableModelManager } from "./TableModelManager.js"; import { MysqlDataSourceManager } from "./MysqlDataSourceManager.js"; import { SqlMapManager } from "./SqlMapManager.js"; import { TransactionalAOP } from "./TransactionalAOP.js"; let DataSourceDelegate = class DataSourceDelegate extends DataSource { // @ts-expect-error ignore nerver use transactionalAOP; objInfo; constructor(transactionalAOP, objInfo) { const dataSourceQualifierValue = objInfo.qualifiers.find((t) => t.attribute === DataSourceQualifierAttribute)?.value; assert(dataSourceQualifierValue); const [moduleName, dataSource, clazzName] = dataSourceQualifierValue.split('.'); const tableModel = TableModelManager.instance.get(moduleName, clazzName); assert(tableModel, `not found table ${dataSourceQualifierValue}`); const mysqlDataSource = MysqlDataSourceManager.instance.get(moduleName, dataSource); assert(mysqlDataSource, `not found dataSource ${dataSource} in module ${moduleName}`); const sqlMap = SqlMapManager.instance.get(moduleName, clazzName); assert(sqlMap, `not found SqlMap ${clazzName} in module ${moduleName}`); super(tableModel, mysqlDataSource, sqlMap); this.transactionalAOP = transactionalAOP; this.objInfo = objInfo; } }; DataSourceDelegate = __decorate([ MultiInstanceProto({ accessLevel: AccessLevel.PUBLIC, initType: ObjectInitType.SINGLETON, async getObjects(ctx) { const config = ModuleConfigUtil.loadModuleConfigSync(ctx.unitPath); const dataSources = Object.keys(config?.dataSource || {}); const result = []; const loader = LoaderFactory.createLoader(ctx.unitPath, EggLoadUnitType.MODULE); const clazzList = await loader.load(); const tableClazzList = clazzList.filter((t) => { return TableInfoUtil.getIsTable(t); }); const dataSourceLength = dataSources.length; for (const dataSource of dataSources) { const moduleClazzList = tableClazzList.filter((clazz) => { const tableParams = TableInfoUtil.getTableParams(clazz); const dataSourceName = tableParams?.dataSourceName ?? 'default'; return dataSourceLength === 1 || dataSourceName === dataSource; }); for (const clazz of moduleClazzList) { result.push({ name: DataSourceInjectName, qualifiers: [ { attribute: DataSourceQualifierAttribute, value: `${ctx.moduleName}.${dataSource}.${clazz.name}`, }, ], }); } } return result; }, }), __param(0, Inject({ name: 'transactionalAOP' })), __param(1, MultiInstanceInfo([DataSourceQualifierAttribute, LoadUnitNameQualifierAttribute])), __metadata("design:paramtypes", [TransactionalAOP, Object]) ], DataSourceDelegate); export { DataSourceDelegate }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvRGF0YVNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFFakMsT0FBTyxFQUNMLFdBQVcsRUFDWCxNQUFNLEVBQ04sOEJBQThCLEVBQzlCLGlCQUFpQixFQUNqQixrQkFBa0IsRUFHbEIsY0FBYyxHQUNmLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsNEJBQTRCLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFvQ2xELElBQU0sa0JBQWtCLEdBQXhCLE1BQU0sa0JBQXNCLFNBQVEsVUFBYTtJQUN0RCxxQ0FBcUM7SUFDN0IsZ0JBQWdCLENBQW1CO0lBQzNDLE9BQU8sQ0FBYTtJQUVwQixZQUN3QyxnQkFBa0MsRUFFeEUsT0FBbUI7UUFFbkIsTUFBTSx3QkFBd0IsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDdEQsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMs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