liquibase-linter
Version:
A liquibase linter in JS
27 lines (26 loc) • 1.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.check = void 0;
var breakingChanges = ["dropColumn", "dropTable", "renameColumn", "renameTable"];
var hasBreakingChange = function (changes) {
for (var _i = 0, breakingChanges_1 = breakingChanges; _i < breakingChanges_1.length; _i++) {
var breakingChange = breakingChanges_1[_i];
if (changes.has(breakingChange)) {
return true;
}
}
return false;
};
var getBreakingChanges = function (changes) {
return breakingChanges.filter(function (breakingChange) { return changes.has(breakingChange); });
};
var check = function (changeset, reporter) {
changeset.changes.forEach(function (change) {
var typeOfChanges = new Set(Object.keys(change));
if (hasBreakingChange(typeOfChanges)) {
var includedBreakingChanges = getBreakingChanges(typeOfChanges);
reporter.error("The changeset contains the following breaking changes " + includedBreakingChanges + "!", changeset.id);
}
});
};
exports.check = check;