Cache emojis in service worker

This commit is contained in:
Tusooa Zhu 2021-08-15 10:51:49 -04:00 committed by Sam Therapy
parent c048011b07
commit 7c9823e079
Signed by: sam
GPG key ID: 4D8B07C18F31ACBD

View file

@ -52,6 +52,16 @@ const maybeShowNotification = async (event) => {
const shouldCache = process.env.NODE_ENV === 'production'
const cacheKey = 'pleroma-fe'
const cacheFiles = self.serviceWorkerOption.assets
const emojiCacheKey = 'pleroma-fe-emoji'
const isEmoji = req => {
console.log('req.method=', req.method)
if (req.method !== 'GET') {
return false
}
const url = new URL(req.url)
console.log('pathname=', url.pathname)
return url.pathname.startsWith('/emoji/')
}
self.addEventListener('install', async (event) => {
if (shouldCache) {
@ -105,7 +115,13 @@ self.addEventListener('fetch', async (event) => {
if (r) {
return r
}
const response = await fetch(event.request)
if (response.ok && isEmoji(event.request)) {
console.log(`[Service Worker] Caching emoji ${event.request.url}`)
const cache = await caches.open(emojiCacheKey)
await cache.put(event.request.clone(), response.clone())
}
return response
})())
}