ddl-manager
Version:
store postgres procedures and triggers in files
33 lines • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.UniversalTriggerBuilder = void 0;
const buildUniversalBody_1 = require("./body/buildUniversalBody");
const AbstractTriggerBuilder_1 = require("./AbstractTriggerBuilder");
const buildFrom_1 = require("../processor/buildFrom");
const buildUniversalWhere_1 = require("../processor/buildUniversalWhere");
class UniversalTriggerBuilder extends AbstractTriggerBuilder_1.AbstractTriggerBuilder {
createTriggers() {
return [{
trigger: this.createDatabaseTriggerOnDIU(),
procedure: this.createDatabaseFunction(this.createBody())
}];
}
createBody() {
const from = buildFrom_1.buildFrom(this.context);
const where = buildUniversalWhere_1.buildUniversalWhere(this.context);
const select = this.context.createSelectForUpdate();
const universalBody = buildUniversalBody_1.buildUniversalBody({
triggerTable: this.context.triggerTable,
forTable: this.context.cache.for.toString(),
updateColumns: select.columns
.map(col => col.name),
select,
from,
where,
triggerTableColumns: this.context.triggerTableColumns
});
return universalBody;
}
}
exports.UniversalTriggerBuilder = UniversalTriggerBuilder;
//# sourceMappingURL=UniversalTriggerBuilder.js.map