From 87db9030d6dcdec3e6715725b904b0d9a7d9bc3e Mon Sep 17 00:00:00 2001 From: Jeffery Date: Fri, 26 Jun 2026 11:29:30 +0800 Subject: [PATCH] =?UTF-8?q?perf(release-cleanup):=20selectReleasesToDelete?= =?UTF-8?q?=20=E9=A0=90=E5=85=88=E8=A8=88=E7=AE=97=E6=99=82=E9=96=93?= =?UTF-8?q?=E6=88=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 排序前先一次性計算各 release 的 created_at 時間戳,避免在排序比較器中 重複呼叫 Date.parse;排序結果與原行為等價。 Co-Authored-By: Claude Opus 4.8 (1M context) --- app/releases.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/releases.js b/app/releases.js index 731add8..c975fe5 100644 --- a/app/releases.js +++ b/app/releases.js @@ -17,8 +17,12 @@ export function selectReleasesToDelete(releases, keepCount) { const time = Date.parse(release?.created_at) return Number.isNaN(time) ? 0 : time } - const sorted = [...releases].sort((a, b) => createdTime(b) - createdTime(a)) - return sorted.slice(keepCount) + // 先一次性計算每筆的時間戳,避免在排序比較中重複呼叫 Date.parse。 + return releases + .map((release) => ({ release, time: createdTime(release) })) + .sort((a, b) => b.time - a.time) + .map((entry) => entry.release) + .slice(keepCount) } /**