Skip to content

Commit 7d1607f

Browse files
committed
edit
1 parent dbab189 commit 7d1607f

File tree

1 file changed

+5
-25
lines changed

1 file changed

+5
-25
lines changed

worker.js

Lines changed: 5 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,44 +7,24 @@ function safeJsonParse(str, fallback) {
77
try { return JSON.parse(str || '[]'); } catch { return fallback; }
88
}
99

10-
// Cache for KV data
11-
const kvCache = {
12-
data: null,
13-
timestamp: 0,
14-
ttl: 300000 // Cache TTL in milliseconds (5 minutes)
15-
};
16-
17-
// Read maintenance and banner states from KV with caching
10+
// Read maintenance and banner states from KV
1811
async function getMaintenanceState(env, host) {
19-
const now = Date.now();
20-
21-
// Return cached data if valid
22-
if (kvCache.data && (now - kvCache.timestamp < kvCache.ttl)) {
23-
return kvCache.data;
24-
}
25-
26-
// Fetch fresh data from KV
2712
const globalMaintenance = await env.MAINTENANCE_KV.get('MAINTENANCE_GLOBAL');
2813
const subdomainsMaintenanceRaw = await env.MAINTENANCE_KV.get('MAINTENANCE_SUBDOMAINS');
14+
const subdomainsMaintenance = safeJsonParse(subdomainsMaintenanceRaw, []);
2915
const bannerSubdomainsRaw = await env.MAINTENANCE_KV.get('BANNER_SUBDOMAINS');
3016
const bannerMessage = await env.MAINTENANCE_KV.get('BANNER_MESSAGE');
31-
const is4gMode = await env.MAINTENANCE_KV.get('wan-is-4g');
32-
33-
const subdomainsMaintenance = safeJsonParse(subdomainsMaintenanceRaw, []);
3417
const bannerSubdomains = safeJsonParse(bannerSubdomainsRaw, []);
35-
36-
// Update cache
37-
kvCache.data = {
18+
const is4gMode = await env.MAINTENANCE_KV.get('wan-is-4g');
19+
20+
return {
3821
isGlobalMaintenance: globalMaintenance === 'true',
3922
subdomainsMaintenance,
4023
isSubdomainMaintenance: subdomainsMaintenance.includes(host),
4124
bannerSubdomains,
4225
bannerMessage: typeof bannerMessage === 'string' ? bannerMessage : '',
4326
is4gMode: is4gMode === 'true'
4427
};
45-
kvCache.timestamp = now;
46-
47-
return kvCache.data;
4828
}
4929

5030
// Inject banner into HTML response

0 commit comments

Comments
 (0)