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 de6b240f..dba09a18 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 f531ec08..e1901f4e 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 a806726a..59716748 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); };