humpty
Version:
Makes sure your changelogs mention your breaking changes
40 lines (29 loc) • 1.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = findApiChanges;
var _changeTypes = require("./changeTypes");
var changeTypes = _interopRequireWildcard(_changeTypes);
var _findReactApiChanges = require("./findReactApiChanges");
var _findReactApiChanges2 = _interopRequireDefault(_findReactApiChanges);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
// @flow
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(...(0, _findReactApiChanges2.default)(oldExport, newExport));
}
return exportResult.apiChanges.length ? exportResult : null;
}).filter(exportChange => !!exportChange);
}