Verifica e solicita permissões da File System API no navegador.
Retorna true imediatamente se a permissão atual já estiver concedida. Solicita a permissão se ela ainda não estiver concedida. A solicitação de permissão precisa ser chamada dentro de um evento de clique do usuário.
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;}Onde isso rende na prática
Este helper é útil quando eu não quero repetir em todo lugar o fluxo de queryPermission para requestPermission. Ele ajuda especialmente em interfaces que reutilizam o mesmo handle, porque o código de clique fica mais legível quando a lógica de permissão fica concentrada.
Os dois cuidados principais são que a solicitação continua dependente de user gesture e que os fluxos readonly e readwrite não devem ser misturados sem critério. A pré-checagem pode rodar antes, mas o pedido em si fica mais seguro dentro do click handler.
Nota prática
Este snippet funciona bem quando você não quer reescrever a mesma operação ou a mesma verificação em rotinas ligadas a typescript, browser, file-system-api. Mantido como um apoio pequeno, ele deixa a intenção mais clara para quem chama.
Se as ramificações e as pré-condições começarem a crescer, é melhor não concentrar tudo em um único snippet. Separar o passo a passo, o helper e as responsabilidades costuma ser mais fácil de manter.
hsb.horse