Bruno Predot

Mise en place du plugin oFetch pour personnaliser la gestion des requêtes.

Nettoyage nuxt.config.
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",
  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 +});