openapi-diff
Version:
A CLI tool to identify differences between Swagger/OpenAPI specs.
42 lines (41 loc) • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DiffClassifier = void 0;
const result_type_finder_1 = require("./result-type-finder");
const isBreakingDiffResult = (diffResult) => {
return diffResult.type === 'breaking';
};
const isNonBreakingDiffResult = (diffResult) => {
return diffResult.type === 'non-breaking';
};
const isUnclassifiedDiffResult = (diffResult) => {
return diffResult.type === 'unclassified';
};
class DiffClassifier {
static classifyDifferences(differences) {
const classifiedDiffResults = {
breakingDifferences: [],
nonBreakingDifferences: [],
unclassifiedDifferences: []
};
differences
.map(DiffClassifier.differenceToDiffResult)
.forEach((diffResult) => {
if (isBreakingDiffResult(diffResult)) {
classifiedDiffResults.breakingDifferences.push(diffResult);
}
else if (isNonBreakingDiffResult(diffResult)) {
classifiedDiffResults.nonBreakingDifferences.push(diffResult);
}
else if (isUnclassifiedDiffResult(diffResult)) {
classifiedDiffResults.unclassifiedDifferences.push(diffResult);
}
});
return classifiedDiffResults;
}
static differenceToDiffResult(difference) {
const type = result_type_finder_1.resultTypeFinder.lookup(difference.code);
return Object.assign({ type }, difference);
}
}
exports.DiffClassifier = DiffClassifier;