v12.7
Refonte de coreFetch
coreFetch est désormais une instance de ky, qui est un wrapper autour du fetch natif du navigateur, et qui propose pas mal de fonctionnalités en plus, en particulier la gestion de hooks type beforeRequest ou beforeError.
Cela implique donc :
- Que
coreFetcha désormais une API compatible avecfetch(ce qui est un breaking change), au lieu d'une API custom, ce qui permet d'utiliser des générateurs de clients JS standard nativement avec Focus (la dernière version du générateur JS de TopModel peut donc aussi générer dufetchnatif) - Que vous pouvez utiliser les hooks de
kypour configurercoreFetchavec votre authentification par exemple, au lieu de rewrapper la méthode et de devoir gérer tout à la main (en créant une nouvelle instance decoreFetchvia coreFetch.extend())
Fonctionnellement, c'est identique, à part le fait que les requêtes en erreur (codes de réponse 4xx/5xx) renvoient désormais des HTTPError (c'est ky qui fait ça), et si elles sont interprétées par Focus, des HTTPDetailedError (qui étend HTTPError). HTTPDetailedError remplace l'objet HandledProblemDetails, qui n'était pas une erreur JS, et HTTPError remplace la réponse non traitée dans le cas où ce n'était pas interprétable.
Guide de migration :
- Mettez à jour votre générateur d'API (si applicable) pour générer du
fetchclassique (attention, la nouvelle version du générateur TopModel utilise un importdefaultpourfetch) - Transformez vos appels à
coreFetchen appelsfetchclassiques, et n'hésitez pas à utiliser les fonctionnalités dekypour simplifier les usages (en particulier le paramètrejsondans les options pour passer le bonbody, et la fonctionjson()directement exposée sur la promesse de retour pour éviter le doubleawait). - Mettez à jour votre
fetchcustom pour utiliserextend()au lieu de le wrapper.
Vous pouvez voir un exemple de migration ici : klee-contrib/dfta-starter-kit@1c81c16