UNPKG

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
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