Source code

Revision control

Copy as Markdown

Other Tools

'use strict';
import {forwardToDedicatedWorker, tryToCreateLock} from './bfcache-test-helpers.js';
export const createSAH = forwardToDedicatedWorker('createSAH');
export const releaseSAH = forwardToDedicatedWorker('releaseSAH');
export const createAndReleaseSAH =
forwardToDedicatedWorker('createAndReleaseSAH');
let openWFS;
export async function createWFS(mode, fileName) {
if (openWFS) {
throw new Error('Already have an open writable.');
}
openWFS = await tryToCreateLock(
fileName, fileHandle => fileHandle.createWritable({mode}));
return openWFS !== undefined;
}
export async function releaseWFS() {
if (!openWFS) {
throw new Error('No open writable.');
}
await openWFS.close();
openWFS = undefined;
}
export async function createAndReleaseWFS(mode, fileName) {
const wfsLock = await tryToCreateLock(
fileName, fileHandle => fileHandle.createWritable({mode}));
await wfsLock?.close();
return wfsLock !== undefined;
}