Prüft und fordert Berechtigungen für die File System API im Browser an.
Gibt sofort true zurück, wenn die aktuelle Berechtigung bereits erteilt wurde. Fordert die Berechtigung an, wenn sie noch nicht erteilt ist. Die Berechtigungsanfrage muss innerhalb eines Klick-Events des Nutzers aufgerufen werden.
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;}Wo es in der Praxis wirkt
Dieser Helper hilft, wenn die Abfolge aus queryPermission und requestPermission nicht überall neu geschrieben werden soll. Besonders in UIs mit wiederverwendeten Handles bleibt der Click-Code besser lesbar, wenn die Berechtigungslogik an einer Stelle sitzt.
Wichtig ist, dass die Anforderung weiterhin an ein user gesture gebunden ist und readonly sowie readwrite nicht unsauber vermischt werden. Vorabprüfungen können im Hintergrund laufen, die eigentliche Anfrage bleibt aber im Click-Handler sicherer.
Praxishinweis
Dieses Snippet passt gut, wenn dieselbe Operation oder Prüfung im Umfeld von typescript, browser, file-system-api nicht immer wieder neu geschrieben werden soll. Als kleine Hilfsfunktion bleibt aufrufender Code leichter lesbar.
Wenn jedoch Verzweigungen und Voraussetzungen zunehmen, sollte nicht alles in ein einziges Snippet gepackt werden. Getrennte Schritte und klar abgegrenzte Helfer bleiben auf Dauer wartbarer.
hsb.horse