UNPKG

@eggjs/dal-decorator

Version:
47 lines 4.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IndexModel = void 0; const tegg_types_1 = require("@eggjs/tegg-types"); class IndexModel { constructor(params) { this.name = params.name; this.keys = params.keys; this.type = params.type; this.storeType = params.storeType; this.comment = params.comment; this.engineAttribute = params.engineAttribute; this.secondaryEngineAttribute = params.secondaryEngineAttribute; this.parser = params.parser; } static buildIndexName(keys, type) { const prefix = type === tegg_types_1.IndexType.UNIQUE ? 'uk_' : 'idx_'; return prefix + keys.join('_'); } static build(params, columns, clazz) { var _a, _b; const type = (_a = params.type) !== null && _a !== void 0 ? _a : tegg_types_1.IndexType.INDEX; const keys = params.keys.map(t => { const column = columns.find(c => c.propertyName === t); if (!column) { throw new Error(`Table ${clazz.name} index configuration error: has no property named "${t}"`); } return { propertyName: column.propertyName, columnName: column.columnName, }; }); const name = (_b = params.name) !== null && _b !== void 0 ? _b : IndexModel.buildIndexName(keys.map(t => t.columnName), type); return new IndexModel({ name, keys, type, storeType: params.storeType, comment: params.comment, engineAttribute: params.engineAttribute, secondaryEngineAttribute: params.secondaryEngineAttribute, parser: params.parser, }); } } exports.IndexModel = IndexModel; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5kZXhNb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9JbmRleE1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGtEQUFpRTtBQVNqRSxNQUFhLFVBQVU7SUFXckIsWUFBWSxNQVNYO1FBQ0MsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUM7UUFDOUMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQztRQUNoRSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDOUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBYyxFQUFFLElBQWU7UUFDbkQsTUFBTSxNQUFNLEdBQUcsSUFBSSxLQUFLLHNCQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUMxRCxPQUFPLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQW1CLEVBQUUsT0FBc0IsRUFBRSxLQUFpQzs7UUFDekYsTUFBTSxJQUFJLEdBQUcsTUFBQSxNQUFNLENBQUMsSUFBSSxtQ0FBSSxzQkFBUyxDQUFDLEtBQUssQ0FBQztRQUM1QyxNQUFNLElBQUksR0FBb0IsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsU0FBUyxLQUFLLENBQUMsSUFBSSxzREFBc0QsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqRyxDQUFDO1lBQ0QsT0FBTztnQkFDTCxZQUFZLEVBQUUsTUFBTyxDQUFDLFlBQVk7Z0JBQ2xDLFVBQVUsRUFBRSxNQUFPLENBQUMsVUFBVTthQUMvQixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLElBQUksR0FBRyxNQUFBLE1BQU0sQ0FBQyxJQUFJLG1DQUFJLFVBQVUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN6RixPQUFPLElBQUksVUFBVSxDQUFDO1lBQ3BCLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztZQUMzQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87WUFDdkIsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlO1lBQ3ZDLHdCQUF3QixFQUFFLE1BQU0sQ0FBQyx3QkFBd0I7WUFDekQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTVERCxnQ0E0REMifQ==