humpty
Version:
Makes sure your changelogs mention your breaking changes
40 lines (32 loc) • 1.09 kB
JavaScript
import { CHANGE_TYPE_GROUP_PROP } from "./changeTypes";
function propIsMentioned(commitMessages, propName) {
if (!commitMessages || commitMessages.length === 0) {
return false;
}
return commitMessages.some(msg => msg.includes(`${propName} propS`));
}
export default function findUnmentionedChanges(commitMessages, changedExports) {
let unmentionedChangeCount = 0;
const unmentionedChanges = changedExports
.map(changedExport => {
const unmentionedChangesInExport = changedExport.apiChanges
.map(apiChange => {
if (
CHANGE_TYPE_GROUP_PROP.includes(apiChange.changeType) &&
!propIsMentioned(commitMessages, apiChange.propName)
) {
unmentionedChangeCount += 1;
return apiChange;
}
return undefined;
})
.filter(Boolean);
changedExport.apiChanges = unmentionedChangesInExport;
return unmentionedChangesInExport.length ? changedExport : undefined;
})
.filter(Boolean);
return {
unmentionedChanges,
unmentionedChangeCount
};
}