is-breaking-change.js 747 B

123456789101112131415161718192021222324252627282930
  1. "use strict";
  2. const semver = require("semver");
  3. module.exports.isBreakingChange = isBreakingChange;
  4. /**
  5. * @param {string} currentVersion
  6. * @param {string} nextVersion
  7. */
  8. function isBreakingChange(currentVersion, nextVersion) {
  9. const releaseType = semver.diff(currentVersion, nextVersion);
  10. let breaking;
  11. if (releaseType === "major") {
  12. // self-evidently
  13. breaking = true;
  14. } else if (releaseType === "minor") {
  15. // 0.1.9 => 0.2.0 is breaking
  16. breaking = semver.lt(currentVersion, "1.0.0");
  17. } else if (releaseType === "patch") {
  18. // 0.0.1 => 0.0.2 is breaking(?)
  19. breaking = semver.lt(currentVersion, "0.1.0");
  20. } else {
  21. // versions are equal, or any prerelease
  22. breaking = false;
  23. }
  24. return breaking;
  25. }