All files / lib filesystem.ts

0% Statements 0/8
100% Branches 0/0
0% Functions 0/2
0% Lines 0/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20                                       
export async function writeToFilesystem(
	root: FileSystemDirectoryHandle,
	filepath: string,
	contents: string | Uint8Array
) {
	const [filename, ...directories] = filepath.split('/').filter(Boolean).toReversed();
 
	let cwd = root;
	for (const directory of directories.toReversed()) {
		cwd = await cwd.getDirectoryHandle(directory, { create: true });
	}
 
	const writable = await cwd
		.getFileHandle(filename, { create: true })
		.then((file) => file.createWritable());
 
	await writable.write(contents);
	await writable.close();
}