From 3e11c09d2bdf9e2357b71f40b62fb5766d907623 Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Mon, 7 Sep 2026 19:24:27 +0200 Subject: [PATCH] i18n(fr): update `cache-provider-reference.mdx` See #14494 --- .../fr/reference/cache-provider-reference.mdx | 39 ++++++++++++++++++- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/src/content/docs/fr/reference/cache-provider-reference.mdx b/src/content/docs/fr/reference/cache-provider-reference.mdx index c532beaa8b4d9..fb2c3cb8103f6 100644 --- a/src/content/docs/fr/reference/cache-provider-reference.mdx +++ b/src/content/docs/fr/reference/cache-provider-reference.mdx @@ -371,10 +371,45 @@ La requête (`request`) entrante est transmise en tant que second argument, ce q

-**Type :** (context: \{ request: Request; url: URL; waitUntil?: (promise: Promise\) => void \}, next: MiddlewareNext) => Promise\ +**Type :** (context: \{ request: Request; url: URL; waitUntil?: (promise: Promise\) => void; logger: AstroRuntimeLogger \}, next: MiddlewareNext) => Promise\

-Intercepte les requêtes pour mettre en œuvre la mise en cache à l'exécution. L'objet `context` inclut une fonction `waitUntil()` (lorsqu'elle est disponible dans l'environnement d'exécution) pour les tâches en arrière-plan, telles que la stratégie « stale-while-revalidate ». +Un hook optionnel qui intercepte une requête avant qu'Astro ne génère la route correspondante. Il reçoit un objet `context` en tant que premier argument et une fonction de rappel pour appeler le prochain middleware (`next()`) dans la chaîne. + +- Le contexte (`context`) contient les propriétés suivantes : +- `request` : l'objet [`Request`](https://developer.mozilla.org/fr/docs/Web/API/Request) entrant. +- `url` : une [URL](https://developer.mozilla.org/fr/docs/Web/API/URL) normalisée dérivée de la requête. +- `waitUntil() `: lorsqu'elle est disponible dans l'environnement d'exécution, une fonction pour définir des tâches en arrière-plan, telles que la revalidation d'une entrée de cache obsolète. +- `logger` : depuis Astro v7.3.0, une instance du [journaliseur (`logger`)](/fr/reference/api-reference/#logger) qui respecte la [destination de journalisation configurée](/fr/reference/configuration-reference/#options-du-journaliseur) + +L'exemple suivant implémente un hook `onRequest()` minimal qui journalise chaque URL ajoutée au cache : + +```ts title="mon-fournisseur/runtime.ts" ins={7-17} +import type { CacheProviderFactory } from 'astro'; + +const factory: CacheProviderFactory = (config) => { + const cache = new Map(); + return { + name: 'mon-fournisseur-cache', + async onRequest({ request, url, waitUntil, logger }, next) { + if (request.method !== 'GET') return next(); + + const cached = cache.get(url); + if (cached) return cached; + + const response = await next(); + cache.set(url, response.clone()); + logger.info(`Réponse mise en cache pour ${url}.`); + return response; + }, + async invalidate() { + // ... + }, + }; +}; + +export default factory; +``` #### `CacheProvider.invalidate()`