UNPKG

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