feat: 版本检测工具 (#3201)

This commit is contained in:
躁动的氨气
2026-05-10 11:34:03 +08:00
committed by GitHub
parent a9b03a11df
commit c5b12e2e21

View File

@@ -498,6 +498,37 @@ async function openBag() {
await sleep(50);
}
/**
* 语义化版本比对,判断当前版本是否满足最低要求
* 支持带预发布标识的版本号(如 0.60.2-alpha.2
* 规则:前缀相同时,有预发布标识的版本 < 无预发布标识的版本
*
* @param {string} version - 当前版本号
* @param {string} minVersion - 最低要求版本号
* @returns {boolean} 当前版本是否 >= 最低要求版本
*/
function checkVersion(version, minVersion) {
const re = /^(\d+)\.(\d+)\.(\d+)(?:[-.](.+))?$/
const pick = (/** @type {string} */ v, /** @type {number} */ i) => Number(v.match(re)?.[i] ?? 0)
const pre = (/** @type {string} */ v) => v.match(re)?.[4] ?? null
for (const i of [1, 2, 3]) {
if (pick(version, i) > pick(minVersion, i)) return true
if (pick(version, i) < pick(minVersion, i)) return false
}
const a = pre(version), b = pre(minVersion)
if (a === null && b === null) return true
if (a === null) return true
if (b === null) return false
return a >= b
}
export { checkVersion }
// /**
// * 修改分辨率为1080p(会导致截图器重启,任务全部清空,暂时无法使用,仅供参考)
// * @return {Promise<void>}