Repository navigation
Expand file tree
/
Copy pathsw-dev.js
More file actions
85 lines (77 loc) · 2.11 KB
/
Copy pathsw-dev.js
File metadata and controls
85 lines (77 loc) · 2.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// Service Worker for Kernel Panic - Development Version
const VERSION = '0.3.6';
importScripts(`/sw-release.js?v=${VERSION}`);
importScripts(`/sw-core.js?v=${VERSION}-dev`);
if (!self.KernelPanicRelease) {
throw new Error('[KernelPanic] Development release metadata is missing');
}
const RELEASE_INFO = Object.freeze({ ...self.KernelPanicRelease, version: VERSION });
const cacheConfig = CacheConfig.create(VERSION);
const CACHE_VERSION = cacheConfig.version;
const CACHE_NAMES = cacheConfig;
const CACHE_PREFIX = cacheConfig.prefix;
const LOG_PREFIX = `[KernelPanic ${CACHE_VERSION} - Dev]`;
const coreResources = CacheConfig.getCoreResources();
const staticAssets = CacheConfig.getStaticAssets();
console.log(`${LOG_PREFIX} Configuration loaded:`, {
version: CACHE_VERSION,
versionedCache: CACHE_NAMES.name,
staticCache: CACHE_NAMES.staticName,
coreResources: coreResources.length,
staticAssets: staticAssets.length
});
self.addEventListener('install', event => {
event.waitUntil(
ServiceWorkerCore.handleInstall(
CACHE_NAMES,
coreResources,
staticAssets,
LOG_PREFIX,
false
)
);
});
self.addEventListener('activate', event => {
event.waitUntil(
ServiceWorkerCore.handleActivate(
CACHE_NAMES,
CACHE_PREFIX,
CACHE_VERSION,
RELEASE_INFO,
LOG_PREFIX
)
);
});
self.addEventListener('fetch', event => {
event.respondWith(
ServiceWorkerCore.handleFetch(event.request, CACHE_NAMES, LOG_PREFIX)
.catch(error => {
console.error(`${LOG_PREFIX} Fetch failed:`, error);
if (event.request.mode === 'navigate') {
return caches.match('/');
}
throw error;
})
);
});
self.addEventListener('message', event => {
if (event.data && event.data.type === 'SKIP_WAITING') {
event.waitUntil(
ServiceWorkerCore.handleMessage(
event,
CACHE_NAMES.name,
CACHE_VERSION,
RELEASE_INFO,
LOG_PREFIX
)
);
} else {
ServiceWorkerCore.handleMessage(
event,
CACHE_NAMES.name,
CACHE_VERSION,
RELEASE_INFO,
LOG_PREFIX
);
}
});