From 4eca472eecf71c7967eb02bddb2fff9afbc4feec Mon Sep 17 00:00:00 2001 From: Anthony LC Date: Tue, 2 Jul 2024 14:59:33 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B(service-worker)=20networkFirst=20o?= =?UTF-8?q?n=20api=20request?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Some api requests were served by the cache first, which caused the data to be outdated. This change makes sure that the api requests are always served by the network first. --- src/frontend/apps/impress/src/features/service-worker/conf.ts | 2 ++ .../impress/src/features/service-worker/service-worker-api.ts | 4 ++-- .../impress/src/features/service-worker/service-worker.ts | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/frontend/apps/impress/src/features/service-worker/conf.ts b/src/frontend/apps/impress/src/features/service-worker/conf.ts index de6b240fe..dba09a181 100644 --- a/src/frontend/apps/impress/src/features/service-worker/conf.ts +++ b/src/frontend/apps/impress/src/features/service-worker/conf.ts @@ -3,3 +3,5 @@ export const SW_DEV_URL = [ 'https://impress.127.0.0.1.nip.io', 'https://impress-staging.beta.numerique.gouv.fr', ]; + +export const SW_DEV_API = 'http://localhost:8071'; diff --git a/src/frontend/apps/impress/src/features/service-worker/service-worker-api.ts b/src/frontend/apps/impress/src/features/service-worker/service-worker-api.ts index f531ec085..e1901f4ee 100644 --- a/src/frontend/apps/impress/src/features/service-worker/service-worker-api.ts +++ b/src/frontend/apps/impress/src/features/service-worker/service-worker-api.ts @@ -4,6 +4,7 @@ import { NetworkOnly } from 'workbox-strategies'; import { ApiPlugin } from './ApiPlugin'; import { DocsDB } from './DocsDB'; import { SyncManager } from './SyncManager'; +import { SW_DEV_API } from './conf'; declare const self: ServiceWorkerGlobalScope; @@ -14,10 +15,9 @@ self.addEventListener('activate', function (event) { }); export const isApiUrl = (href: string) => { - const devDomain = 'http://localhost:8071'; return ( href.includes(`${self.location.origin}/api/`) || - href.includes(`${devDomain}/api/`) + href.includes(`${SW_DEV_API}/api/`) ); }; diff --git a/src/frontend/apps/impress/src/features/service-worker/service-worker.ts b/src/frontend/apps/impress/src/features/service-worker/service-worker.ts index a806726ac..597167482 100644 --- a/src/frontend/apps/impress/src/features/service-worker/service-worker.ts +++ b/src/frontend/apps/impress/src/features/service-worker/service-worker.ts @@ -53,7 +53,7 @@ const getStrategy = ( ): NetworkFirst | CacheFirst => { return SW_DEV_URL.some((devDomain) => self.location.origin.includes(devDomain), - ) + ) || isApiUrl(self.location.href) ? new NetworkFirst(options) : new CacheFirst(options); };