Skip to content

Commit e97f513

Browse files
fix(FileSystemAccessApiFsClient): attempt to fix writeFile for safari
1 parent 74ddb20 commit e97f513

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

src/clients/fs/FileSystemAccessApiFsClient.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,9 @@ const textEncoder = new TextEncoder();
276276
async function writeFile(fileHandle: FileSystemFileHandle, data: ArrayBuffer | string, useSyncAccessHandle: boolean) {
277277
if (useSyncAccessHandle) {
278278
const accessHandle = await fileHandle.createSyncAccessHandle()
279-
accessHandle.write(typeof data === 'string' ? textEncoder.encode(data) : data, { at: 0 })
279+
const content = typeof data === 'string' ? textEncoder.encode(data) : data;
280+
accessHandle.write(content, { at: 0 })
281+
await accessHandle.truncate(content.byteLength);
280282
await accessHandle.flush()
281283
await accessHandle.close()
282284
} else {

src/types/FileSystemAccessApi.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ declare interface FileSystemReadWriteOptions {
2121
declare interface FileSystemSyncAccessHandle {
2222
read(buffer: ArrayBuffer, options?: FileSystemReadWriteOptions): number
2323
write(buffer: ArrayBuffer, options?: FileSystemReadWriteOptions): number
24+
truncate(newSize: number): Promise<void>
2425
flush(): Promise<void>
2526
close(): Promise<void>
2627
}

0 commit comments

Comments
 (0)