useDownloadFromRoute.ts 704 B

12345678910111213141516171819202122
  1. import FileSaver from 'file-saver'
  2. import { useAp2iRequestService } from '~/composables/data/useAp2iRequestService'
  3. /**
  4. * Permet de télécharger un fichier fourni par la route donnée
  5. * @param route
  6. * @param filename
  7. */
  8. export const useDownloadFromRoute = async (route: string, filename: string) => {
  9. const { apiRequestService } = useAp2iRequestService()
  10. // @ts-expect-error La méthode get renvoie bien un blob dans ce cas là
  11. const response = (await apiRequestService.get(route)) as Blob
  12. if (!response || response.size === 0) {
  13. console.error('Error: no file found at ' + route)
  14. }
  15. const blob = new Blob([response], { type: response.type })
  16. FileSaver.saveAs(blob, filename)
  17. }