feat(版號解析): parse 接受小寫 v 前綴,只取 v 之後的版本號
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
ea75d1adcd
commit
9f6c2a2556
+7
-5
@@ -1,7 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
// 版號格式:X.Y.Z 或 X.Y.Z-beta.N(不帶前綴)
|
||||
const VERSION_PATTERN = /^(\d+)\.(\d+)\.(\d+)(?:-beta\.(\d+))?$/;
|
||||
// 版號格式:X.Y.Z 或 X.Y.Z-beta.N(可帶小寫 v 前綴,如 v1.2.3;解析時忽略前綴)
|
||||
const VERSION_PATTERN = /^v?(\d+)\.(\d+)\.(\d+)(?:-beta\.(\d+))?$/;
|
||||
|
||||
// major / minor / patch 各位數上限;beta 號碼無上限
|
||||
const MAX_DIGIT = 9;
|
||||
@@ -9,17 +9,19 @@ const MAX_DIGIT = 9;
|
||||
/**
|
||||
* 解析版號字串為版號物件。
|
||||
*
|
||||
* 支援正式版(X.Y.Z)與 beta 版(X.Y.Z-beta.N)兩種格式;
|
||||
* 支援正式版(X.Y.Z)與 beta 版(X.Y.Z-beta.N)兩種格式,
|
||||
* 皆可帶小寫 v 前綴(如 v1.2.3),解析時忽略前綴、只取 v 之後的版本號;
|
||||
* 用於逐一解析 git tag,把 tag 字串轉成可比較、可計算的結構化物件。
|
||||
* 不符合格式(含 null、非字串轉出的值)一律回傳 null,不拋出例外。
|
||||
*
|
||||
* @param {string} text - 待解析的版號字串,格式為 X.Y.Z 或 X.Y.Z-beta.N
|
||||
* @param {string} text - 待解析的版號字串,格式為 X.Y.Z 或 X.Y.Z-beta.N(可帶 v 前綴)
|
||||
* @returns {?{major: number, minor: number, patch: number, beta: ?number}}
|
||||
* 版號物件;beta 為 null 表示正式版,為數字表示 beta 序號。
|
||||
* 輸入不符合版號格式時回傳 null。
|
||||
* 輸入不符合版號格式時回傳 null。前綴 v 不會出現在回傳物件中。
|
||||
*
|
||||
* @example
|
||||
* parse('1.2.3'); // => { major: 1, minor: 2, patch: 3, beta: null }
|
||||
* parse('v1.2.3'); // => { major: 1, minor: 2, patch: 3, beta: null }(忽略 v 前綴)
|
||||
* parse('1.2.3-beta.5'); // => { major: 1, minor: 2, patch: 3, beta: 5 }
|
||||
* parse('v1.2'); // => null(不符合格式)
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user