humpty
Version:
Makes sure your changelogs mention your breaking changes
31 lines (26 loc) • 843 B
JavaScript
// @flow
import * as changeTypes from "./changeTypes";
import findReactApiChanges from "./findReactApiChanges";
export default function findApiChanges({ oldExports, newExports }) {
return oldExports
.map(oldExport => {
const exportResult = {
isDefaultExport: oldExport.isDefaultExport,
apiChanges: []
};
const newExport = newExports.find(
({ isDefaultExport }) => isDefaultExport === oldExport.isDefaultExport
);
if (!newExport) {
exportResult.apiChanges.push({
changeType: changeTypes.EXPORT_REMOVED
});
} else {
exportResult.apiChanges.push(
...findReactApiChanges(oldExport, newExport)
);
}
return exportResult.apiChanges.length ? exportResult : null;
})
.filter(exportChange => !!exportChange);
}