Mise en place du plugin oFetch pour personnaliser la gestion des requêtes.
Nettoyage nuxt.config.
Showing
3 changed files
with
60 additions
and
7 deletions
1 | 0.5.0: | 1 | 0.5.0: |
2 | -- M | 2 | +- Mise en place du plugin oFetch pour personnaliser la gestion des requêtes. |
3 | 3 | ||
4 | 0.4.0: | 4 | 0.4.0: |
5 | - Modification de la config eslint avec la suppression de tout ce qui concerne prettier, suppression du module @nuxt/eslint, contenant le module eslint/recommanded, et remplacement par le module @antfu/eslint-config, plus complet et simple. | 5 | - Modification de la config eslint avec la suppression de tout ce qui concerne prettier, suppression du module @nuxt/eslint, contenant le module eslint/recommanded, et remplacement par le module @antfu/eslint-config, plus complet et simple. |
@@ -23,12 +23,6 @@ export default defineNuxtConfig({ | @@ -23,12 +23,6 @@ export default defineNuxtConfig({ | ||
23 | 23 | ||
24 | // css: ['~/assets/css/main.scss'], | 24 | // css: ['~/assets/css/main.scss'], |
25 | 25 | ||
26 | - eslint: { | ||
27 | - config: { | ||
28 | - stylistic: true, | ||
29 | - }, | ||
30 | - }, | ||
31 | - | ||
32 | modules: [ | 26 | modules: [ |
33 | "@nuxt/icon", | 27 | "@nuxt/icon", |
34 | "@nuxt/image", | 28 | "@nuxt/image", |
plugins/oFetch.ts
0 → 100644
1 | +import type { $Fetch } from "nitropack"; | ||
2 | +import type { RuntimeConfig } from "nuxt/schema"; | ||
3 | +import { ofetch } from "ofetch"; | ||
4 | + | ||
5 | +/** | ||
6 | + * Ce plugin est essentiel ! | ||
7 | + * Il sert à paramétrer 'ofetch' qui est d'office utilisé par Nuxt à l'initialisation de notre app. | ||
8 | + * (Sert par exemple pour toutes les méthodes liées au provider d'authentification). | ||
9 | + */ | ||
10 | +export default defineNuxtPlugin(async (_nuxtApp) => { | ||
11 | + // Récupération des variables d'environnement (hydratées dans le nuxt.config.ts). | ||
12 | + const runtimeConfig: RuntimeConfig = useRuntimeConfig(); | ||
13 | + // On rend la configuration que l'on crée globale grâce à 'globalThis.$fetch'. | ||
14 | + globalThis.$fetch = ofetch.create({ | ||
15 | + // Base url example : https://nom-de-domaine/api. | ||
16 | + baseURL: runtimeConfig.public.apiTMDBUrl, | ||
17 | + /** | ||
18 | + * Request interceptor. | ||
19 | + */ | ||
20 | + onRequest({ request, options }) { | ||
21 | + if (request) { /** empty */ } | ||
22 | + // Set the request headers | ||
23 | + // note that this relies on ofetch >= 1.4.0 - you may need to refresh your lockfile | ||
24 | + options.headers.set("Authorization", "..."); | ||
25 | + }, | ||
26 | + /** | ||
27 | + * Request error interceptor. | ||
28 | + */ | ||
29 | + onRequestError({ request, options, error }) { | ||
30 | + // Handle the request errors | ||
31 | + // Do something before request error sent. | ||
32 | + if (request) { /** empty */ } | ||
33 | + if (options) { /** empty */ } | ||
34 | + if (error) { /** empty */ } | ||
35 | + }, | ||
36 | + /** | ||
37 | + * Response interceptor. | ||
38 | + */ | ||
39 | + onResponse({ request, response, options }) { | ||
40 | + // Process the response data | ||
41 | + if (request) { /** empty */ } | ||
42 | + if (response) { /** empty */ } | ||
43 | + // If response return 401 code. | ||
44 | + // if ( | ||
45 | + // (response && response.code && response.code === 401) | ||
46 | + // || (response && response.status && response.status === 401) | ||
47 | + // ) { | ||
48 | + // // Do something if 401. | ||
49 | + // } | ||
50 | + if (options) { /** empty */ } | ||
51 | + }, | ||
52 | + onResponseError({ request, response, options }) { | ||
53 | + // Handle the response errors | ||
54 | + if (request) { /** empty */ } | ||
55 | + if (response) { /** empty */ } | ||
56 | + if (options) { /** empty */ } | ||
57 | + }, | ||
58 | + }) as unknown as $Fetch; | ||
59 | +}); |
-
Please register or login to post a comment