ddl-manager
Version:
store postgres procedures and triggers in files
45 lines • 1.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Table = void 0;
const TableID_1 = require("./TableID");
class Table extends TableID_1.TableID {
constructor(schema, name, columns = [], triggers = [], indexes = []) {
super(schema, name);
this.columns = columns;
this.triggers = triggers;
this.indexes = indexes;
}
getColumn(name) {
return this.columns.find(column => column.equalName(name));
}
addColumn(column) {
this.columns.push(column);
}
addTrigger(trigger) {
this.triggers.push(trigger);
}
addIndex(index) {
this.indexes.push(index);
}
getTrigger(triggerName) {
return this.triggers.find(trigger => trigger.name === triggerName);
}
removeTrigger(dropTrigger) {
const triggerIndex = this.triggers.findIndex(existentTrigger => existentTrigger.equal(dropTrigger));
if (triggerIndex !== -1) {
this.triggers.splice(triggerIndex, 1);
}
}
removeColumn(dropColumn) {
const columnIndex = this.columns.findIndex(existentColumn => existentColumn.equalName(dropColumn));
if (columnIndex !== -1) {
this.columns.splice(columnIndex, 1);
}
}
clone() {
const clone = new Table(this.schema, this.name, this.columns.map(column => column.clone()));
return clone;
}
}
exports.Table = Table;
//# sourceMappingURL=Table.js.map