@eggjs/dal-decorator
Version:
tegg dal decorator
47 lines • 4.07 kB
JavaScript
;
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==