const cacheName = 'v1'

self.addEventListener('install', (event) => {
  event.waitUntil(
    caches
      .open(cacheName)
      .then(cache => cache.addAll([
        '.',
        './index.html',
        './index.js',
        './index.css',
        './instances.json'
      ]))
  )
})

self.addEventListener('activate', (_event) => {
})

self.addEventListener('fetch', async (event) => {
  const res = await fetch(event.request)
  if (!res.ok) {
    const cachedRes = await caches.match(event.request)
    if (cachedRes) {
      event.respondWith(cachedRes)
      return
    }
  }
  event.respondWith(res)
})