logo hsb.horse
← Retour à l’index des snippets

Snippets

Vérification des permissions de la File System API

Fonction pour vérifier et demander les permissions de la File System API du navigateur. Prend en charge les modes lecture seule et lecture/écriture.

Publié: Mis à jour:

Vérifie et demande les permissions de la File System API du navigateur.

Retourne immédiatement true si la permission actuelle est déjà accordée. Demande la permission si elle n’est pas accordée. La demande de permission doit être appelée dans un événement de clic utilisateur.

async function verifyPermission(handle: FileSystemHandle, readWrite: boolean) {
const options = {};
if (readWrite) {
options.mode = 'readwrite';
}
// 1. Check current permission
if ((await handle.queryPermission(options)) === 'granted') {
return true;
}
// 2. Request permission if not granted
if ((await handle.requestPermission(options)) === 'granted') {
return true;
}
return false;
}

Là où cela paie en pratique

Ce helper est utile quand on ne veut pas réécrire partout la séquence queryPermission puis requestPermission. Il aide surtout dans les interfaces qui réutilisent le même handle, car le code de clic reste plus lisible quand la logique de permission est centralisée.

Les deux points sensibles sont que la demande de permission dépend toujours d’un user gesture et qu’il ne faut pas mélanger sans réfléchir les chemins readonly et readwrite. Le pré-contrôle peut vivre en arrière-plan, mais la vraie demande reste plus sûre dans le click handler.

Note pratique

Ce snippet convient bien quand on ne veut pas réécrire la même opération ou la même vérification autour de typescript, browser, file-system-api. Le garder sous la forme d’un petit utilitaire rend l’intention plus lisible côté appelant.

En revanche, si les branches et les préconditions s’accumulent, mieux vaut ne pas tout tasser dans un seul snippet. Séparer la procédure, le helper et les responsabilités rend l’ensemble plus simple à maintenir.