igir
Version:
🕹 A zero-setup ROM collection manager that sorts, filters, extracts or archives, patches, and reports on collections of any size on any OS.
64 lines (63 loc) • 2.49 kB
JavaScript
import semver from "semver";
import { logger } from "../console/logger.js";
class EndOfLifeChecker {
static END_OF_SECURITY_SUPPORT_DATES = [
[4, /* @__PURE__ */ new Date("2018-04-30")],
[5, /* @__PURE__ */ new Date("2016-06-30")],
[6, /* @__PURE__ */ new Date("2019-04-30")],
[7, /* @__PURE__ */ new Date("2017-06-30")],
[8, /* @__PURE__ */ new Date("2019-01-31")],
[9, /* @__PURE__ */ new Date("2018-06-30")],
[10, /* @__PURE__ */ new Date("2021-04-30")],
[11, /* @__PURE__ */ new Date("2019-06-30")],
[12, /* @__PURE__ */ new Date("2022-04-30")],
[13, /* @__PURE__ */ new Date("2020-06-01")],
[14, /* @__PURE__ */ new Date("2023-04-30")],
[15, /* @__PURE__ */ new Date("2021-06-01")],
[16, /* @__PURE__ */ new Date("2023-09-11")],
[17, /* @__PURE__ */ new Date("2022-06-01")],
[18, /* @__PURE__ */ new Date("2025-04-30")],
[19, /* @__PURE__ */ new Date("2023-06-01")],
[20, /* @__PURE__ */ new Date("2026-04-30")],
[21, /* @__PURE__ */ new Date("2024-06-01")],
[22, /* @__PURE__ */ new Date("2027-04-30")],
[23, /* @__PURE__ */ new Date("2025-06-01")],
[24, /* @__PURE__ */ new Date("2028-04-30")],
[25, /* @__PURE__ */ new Date("2026-06-01")],
[26, /* @__PURE__ */ new Date("2029-04-30")]
// exact day not confirmed yet
];
/**
* Check the current Node.js version.
*/
check(nodejsVersion, now = /* @__PURE__ */ new Date()) {
for (const [majorVersion, endOfLifeDate] of EndOfLifeChecker.END_OF_SECURITY_SUPPORT_DATES) {
if (!semver.satisfies(nodejsVersion, `^${majorVersion}`)) {
continue;
}
if (now > endOfLifeDate) {
logger.warn(
`Node.js v${majorVersion} reached end-of-life on ${endOfLifeDate.toDateString()}, you should update to an actively maintained LTS version`
);
return;
}
if (majorVersion % 2 === 1) {
logger.warn(
`Node.js v${majorVersion} has a very short support window (ending on ${endOfLifeDate.toDateString()}), you should consider using an LTS version`
);
return;
}
break;
}
const coercedVersion = semver.coerce(nodejsVersion);
if (coercedVersion && coercedVersion.major % 2 === 1) {
logger.warn(
`Node.js v${coercedVersion.major} has a very short support window, you should consider using an LTS version`
);
}
}
}
export {
EndOfLifeChecker as default
};
//# sourceMappingURL=endOfLifeChecker.js.map