From 42b53d6adf24dd57eead90c0e9cf94e84552f91e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 6 Nov 2025 11:21:58 +0000 Subject: [PATCH 1/3] Initial plan From c0e6f52c9ca19a0389b6c846181d0cab84ef4fd5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 6 Nov 2025 11:26:09 +0000 Subject: [PATCH 2/3] Fix unused initial value in Writer/File.ts writeImplementation Co-authored-by: simonmika <1467077+simonmika@users.noreply.github.com> --- Writer/File.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Writer/File.ts b/Writer/File.ts index 312bab2..5c3c6e1 100644 --- a/Writer/File.ts +++ b/Writer/File.ts @@ -37,7 +37,7 @@ export class File extends Writer { return result } protected override async writeImplementation(buffer: Enumerator): Promise { - let result = true + let result: boolean const content = Buffer.from(buffer.reduce((r, item) => r + item, "")) try { const r = await fs.write(this.descriptor, content, 0, content.length) From 8c9ee43c7304cd401debf47ad08b9ef3fb2d7e41 Mon Sep 17 00:00:00 2001 From: Simon Mika Date: Thu, 6 Nov 2025 12:57:28 +0100 Subject: [PATCH 3/3] Fixed issues with fs.write signatures. --- Writer/File.ts | 2 +- fs.browser.ts | 41 ++++++++++++++++++++++++++++++++++++----- 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/Writer/File.ts b/Writer/File.ts index 93a6fe6..76db2f5 100644 --- a/Writer/File.ts +++ b/Writer/File.ts @@ -40,7 +40,7 @@ export class File extends Writer { let result: boolean const content = Buffer.from(buffer.reduce((r, item) => r + item, "")) try { - const r = await fs.write(this.descriptor, content, null, "utf8") + const r = await fs.write(this.descriptor, content) result = r.bytesWritten == content.length } catch { result = false diff --git a/fs.browser.ts b/fs.browser.ts index dc13d43..e7b4455 100644 --- a/fs.browser.ts +++ b/fs.browser.ts @@ -1,15 +1,46 @@ +import * as fs from "node:fs" + async function close(fd: number): Promise {} async function fsync(fd: number): Promise {} async function open(path: string, flags: string | number, mode?: string | number | undefined | null): Promise { return 0 } + +async function write>( + fd: number, + buffer?: TBuffer, + offset?: number, + length?: number, + position?: number | null +): Promise<{ + bytesWritten: number + buffer: TBuffer +}> +async function write( + fd: number, + buffer?: TBuffer, + options?: fs.WriteOptions +): Promise<{ + bytesWritten: number + buffer: TBuffer +}> +async function write( + fd: number, + string: string, + position?: number | null, + encoding?: BufferEncoding | null +): Promise<{ + bytesWritten: number + buffer: string +}> async function write( fd: number, - buffer: Buffer | string, - offset: number | undefined | null, - encoding: "utf8" -): Promise<{ bytesWritten: number }> { - return { bytesWritten: 0 } + buffer?: Buffer | string, + offset?: fs.WriteOptions | number | undefined | null, + length?: BufferEncoding | number | undefined | null, + position?: number | null +): Promise<{ bytesWritten: number; buffer: Buffer | string }> { + return { bytesWritten: 0, buffer: Buffer.alloc(0) } } function lstatSync(