use bowser

This commit is contained in:
Georges-Antoine Assi
2026-05-16 19:17:38 -04:00
parent 5c82044bdb
commit d72e645049
3 changed files with 12 additions and 12 deletions

View File

@@ -12,6 +12,7 @@
"@mdi/font": "7.4.47",
"@vueuse/core": "^13.7.0",
"axios": "^1.16.0",
"bowser": "^2.14.1",
"cronstrue": "^2.57.0",
"date-fns": "^4.1.0",
"js-cookie": "^3.0.5",
@@ -4772,6 +4773,12 @@
"dev": true,
"license": "ISC"
},
"node_modules/bowser": {
"version": "2.14.1",
"resolved": "https://registry.npmjs.org/bowser/-/bowser-2.14.1.tgz",
"integrity": "sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==",
"license": "MIT"
},
"node_modules/brace-expansion": {
"version": "5.0.5",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz",

View File

@@ -31,6 +31,7 @@
"@mdi/font": "7.4.47",
"@vueuse/core": "^13.7.0",
"axios": "^1.16.0",
"bowser": "^2.14.1",
"cronstrue": "^2.57.0",
"date-fns": "^4.1.0",
"js-cookie": "^3.0.5",

View File

@@ -1,4 +1,5 @@
import type { AxiosProgressEvent } from "axios";
import Bowser from "bowser";
import type {
Body_delete_roms_api_roms_delete_post as DeleteRomsInput,
Body_update_rom_api_roms__id__put as UpdateRomInput,
@@ -27,18 +28,10 @@ type SearchRom = SearchRomSchema;
const DOWNLOAD_CLEANUP_DELAY = 100;
const UPLOAD_CHUNK_SIZE = 10 * 1024 * 1024; // 10MB per chunk
const MAX_CHUNK_RETRIES = 3;
const WEBKIT_USER_AGENT_RE = /AppleWebKit/i;
const CHROMIUM_BROWSER_RE = /Chrome|Chromium|CriOS|Edg|OPR/i;
function shouldTrackChunkUploadProgress(): boolean {
if (typeof navigator === "undefined") return true;
const userAgent = navigator.userAgent;
return !(
WEBKIT_USER_AGENT_RE.test(userAgent) &&
!CHROMIUM_BROWSER_RE.test(userAgent)
);
}
const browser = Bowser.getParser(window.navigator.userAgent);
const engineName = browser.getEngineName();
const trackChunkUploadProgress = engineName !== "WebKit";
async function uploadRomChunked({
platformId,
@@ -49,7 +42,6 @@ async function uploadRomChunked({
}): Promise<void> {
const uploadStore = storeUpload();
const totalChunks = Math.ceil(file.size / UPLOAD_CHUNK_SIZE);
const trackChunkUploadProgress = shouldTrackChunkUploadProgress();
const { data: startData } = await api.post("/roms/upload/start", null, {
headers: {