UNPKG

@eggjs/dal-decorator

Version:
102 lines 10.7 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TableModel = void 0; const node_assert_1 = __importDefault(require("node:assert")); const pluralize_1 = __importDefault(require("pluralize")); const lodash_snakecase_1 = __importDefault(require("lodash.snakecase")); const tegg_types_1 = require("@eggjs/tegg-types"); const ColumnModel_1 = require("./ColumnModel"); const IndexModel_1 = require("./IndexModel"); const TableInfoUtil_1 = require("../util/TableInfoUtil"); const ColumnInfoUtil_1 = require("../util/ColumnInfoUtil"); const IndexInfoUtil_1 = require("../util/IndexInfoUtil"); class TableModel { constructor(params) { this.clazz = params.clazz; this.name = params.name; this.dataSourceName = params.dataSourceName; this.columns = params.columns; this.indices = params.indices; this.comment = params.comment; this.autoExtendSize = params.autoExtendSize; this.autoIncrement = params.autoIncrement; this.avgRowLength = params.avgRowLength; this.characterSet = params.characterSet; this.collate = params.collate; this.compression = params.compression; this.encryption = params.encryption; this.engine = params.engine; this.engineAttribute = params.engineAttribute; this.insertMethod = params.insertMethod; this.keyBlockSize = params.keyBlockSize; this.maxRows = params.maxRows; this.minRows = params.minRows; this.rowFormat = params.rowFormat; this.secondaryEngineAttribute = params.secondaryEngineAttribute; } getPrimary() { const index = this.indices.find(t => t.type === tegg_types_1.IndexType.PRIMARY); if (index) { return index; } const primaryColumn = this.columns.filter(t => t.primaryKey === true); return new IndexModel_1.IndexModel({ name: 'PRIMARY', type: tegg_types_1.IndexType.PRIMARY, keys: primaryColumn.map(t => { return { columnName: t.columnName, propertyName: t.propertyName, }; }), }); } static build(clazz) { var _a, _b; const params = TableInfoUtil_1.TableInfoUtil.getTableParams(clazz); const name = (_a = params === null || params === void 0 ? void 0 : params.name) !== null && _a !== void 0 ? _a : (0, lodash_snakecase_1.default)((0, pluralize_1.default)(clazz.name)); const columnInfoMap = ColumnInfoUtil_1.ColumnInfoUtil.getColumnInfoMap(clazz); const columnTypeMap = ColumnInfoUtil_1.ColumnInfoUtil.getColumnTypeMap(clazz); const dataSourceName = (_b = params === null || params === void 0 ? void 0 : params.dataSourceName) !== null && _b !== void 0 ? _b : 'default'; (0, node_assert_1.default)(TableInfoUtil_1.TableInfoUtil.getIsTable(clazz), `${name} is not Table`); (0, node_assert_1.default)(columnTypeMap, `${name} has no columns`); const columns = []; const indices = []; for (const [property, columnType] of columnTypeMap === null || columnTypeMap === void 0 ? void 0 : columnTypeMap.entries()) { const columnParam = columnInfoMap === null || columnInfoMap === void 0 ? void 0 : columnInfoMap.get(property); columns.push(ColumnModel_1.ColumnModel.build(property, columnType, columnParam)); } const indexList = IndexInfoUtil_1.IndexInfoUtil.getIndexList(clazz); for (const index of indexList) { indices.push(IndexModel_1.IndexModel.build(index, columns, clazz)); } return new TableModel({ clazz, name, columns, indices, dataSourceName, comment: params === null || params === void 0 ? void 0 : params.comment, autoExtendSize: params === null || params === void 0 ? void 0 : params.autoExtendSize, autoIncrement: params === null || params === void 0 ? void 0 : params.autoIncrement, avgRowLength: params === null || params === void 0 ? void 0 : params.avgRowLength, characterSet: params === null || params === void 0 ? void 0 : params.characterSet, collate: params === null || params === void 0 ? void 0 : params.collate, compression: params === null || params === void 0 ? void 0 : params.compression, encryption: params === null || params === void 0 ? void 0 : params.encryption, engine: params === null || params === void 0 ? void 0 : params.engine, engineAttribute: params === null || params === void 0 ? void 0 : params.engineAttribute, insertMethod: params === null || params === void 0 ? void 0 : params.insertMethod, keyBlockSize: params === null || params === void 0 ? void 0 : params.keyBlockSize, maxRows: params === null || params === void 0 ? void 0 : params.maxRows, minRows: params === null || params === void 0 ? void 0 : params.minRows, rowFormat: params === null || params === void 0 ? void 0 : params.rowFormat, secondaryEngineAttribute: params === null || params === void 0 ? void 0 : params.secondaryEngineAttribute, }); } } exports.TableModel = TableModel; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVNb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9UYWJsZU1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhEQUFpQztBQUNqQywwREFBa0M7QUFDbEMsd0VBQXlDO0FBQ3pDLGtEQUE4QztBQUU5QywrQ0FBNEM7QUFDNUMsNkNBQTBDO0FBQzFDLHlEQUFzRDtBQUN0RCwyREFBd0Q7QUFDeEQseURBQXNEO0FBRXRELE1BQWEsVUFBVTtJQXVCckIsWUFBWSxNQXNCWDtRQUNDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDO1FBQzVDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQztRQUM1QyxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7UUFDMUMsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUNwQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDO1FBQzlDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDbEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQztJQUNsRSxDQUFDO0lBRUQsVUFBVTtRQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxzQkFBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDdEUsT0FBTyxJQUFJLHVCQUFVLENBQUM7WUFDcEIsSUFBSSxFQUFFLFNBQVM7WUFDZixJQUFJLEVBQUUsc0JBQVMsQ0FBQyxPQUFPO1lBQ3ZCLElBQUksRUFBRSxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUMxQixPQUFPO29CQUNMLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVTtvQkFDeEIsWUFBWSxFQUFFLENBQUMsQ0FBQyxZQUFZO2lCQUM3QixDQUFDO1lBQ0osQ0FBQyxDQUFDO1NBQ0gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUksS0FBMkI7O1FBQ3pDLE1BQU0sTUFBTSxHQUFHLDZCQUFhLENBQUMsY0FBYyxDQUFDLEtBQTBCLENBQUMsQ0FBQztRQUN4RSxNQUFNLElBQUksR0FBRyxNQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxJQUFJLG1DQUFJLElBQUEsMEJBQVMsRUFBQyxJQUFBLG1CQUFTLEVBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDOUQsTUFBTSxhQUFhLEdBQUcsK0JBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUEwQixDQUFDLENBQUM7UUFDbEYsTUFBTSxhQUFhLEdBQUcsK0JBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUEwQixDQUFDLENBQUM7UUFDbEYsTUFBTSxjQUFjLEdBQUcsTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsY0FBYyxtQ0FBSSxTQUFTLENBQUM7UUFDM0QsSUFBQSxxQkFBTSxFQUFDLDZCQUFhLENBQUMsVUFBVSxDQUFDLEtBQTBCLENBQUMsRUFBRSxHQUFHLElBQUksZUFBZSxDQUFDLENBQUM7UUFDckYsSUFBQSxxQkFBTSxFQUFDLGFBQWEsRUFBRSxHQUFHLElBQUksaUJBQWlCLENBQUMsQ0FBQztRQUNoRCxNQUFNLE9BQU8sR0FBdUIsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sT0FBTyxHQUFzQixFQUFFLENBQUM7UUFDdEMsS0FBSyxNQUFNLENBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBRSxJQUFJLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ2hFLE1BQU0sV0FBVyxHQUFHLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDakQsT0FBTyxDQUFDLElBQUksQ0FBQyx5QkFBVyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLDZCQUFhLENBQUMsWUFBWSxDQUFDLEtBQTBCLENBQUMsQ0FBQztRQUN6RSxLQUFLLE1BQU0sS0FBSyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sQ0FBQyxJQUFJLENBQUMsdUJBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFFRCxPQUFPLElBQUksVUFBVSxDQUFDO1lBQ3BCLEtBQUs7WUFDTCxJQUFJO1lBQ0osT0FBTztZQUNQLE9BQU87WUFDUCxjQUFjO1lBRWQsT0FBTyxFQUFFLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxPQUFPO1lBQ3hCLGNBQWMsRUFBRSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsY0FBYztZQUN0QyxhQUFhLEVBQUUsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLGFBQWE7WUFDcEMsWUFBWSxFQUFFLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxZQUFZO1lBQ2xDLFlBQVksRUFBRSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsWUFBWTtZQUNsQyxPQUFPLEVBQUUsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE9BQU87WUFDeEIsV0FBVyxFQUFFLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxXQUFXO1lBQ2hDLFVBQVUsRUFBRSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsVUFBVTtZQUM5QixNQUFNLEVBQUUsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE1BQU07WUFDdEIsZUFBZSxFQUFFLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxlQUFlO1lBQ3hDLFlBQVksRUFBRSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsWUFBWTtZQUNsQyxZQUFZLEVBQUUsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFlBQVk7WUFDbEMsT0FBTyxFQUFFLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxPQUFPO1lBQ3hCLE9BQU8sRUFBRSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsT0FBTztZQUN4QixTQUFTLEVBQUUsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFNBQVM7WUFDNUIsd0JBQXdCLEVBQUUsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLHdCQUF3QjtTQUMzRCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFwSUQsZ0NBb0lDIn0=