From 8c9d1ba1d719c97daabe1adf77e30f746b4edf44 Mon Sep 17 00:00:00 2001 From: Marvin Hagemeister Date: Tue, 28 May 2024 14:30:31 +0200 Subject: fix(ext/node/fs): `position` argument not applied (#24009) We didn't honour the `position` options of `fd.read` and `fd.write` because we checked if the buffer is of type `Buffer` instead of just `Uint8Array`. Node does the latter. In doing so I noticed that the file handle id was written to a public property which it definitely shouldn't be. This was probably a typo. Fixes https://github.com/denoland/deno/issues/23707 --- ext/node/polyfills/internal/fs/handle.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'ext/node/polyfills/internal/fs') diff --git a/ext/node/polyfills/internal/fs/handle.ts b/ext/node/polyfills/internal/fs/handle.ts index ce218f24e..e422e2ba0 100644 --- a/ext/node/polyfills/internal/fs/handle.ts +++ b/ext/node/polyfills/internal/fs/handle.ts @@ -28,27 +28,27 @@ export class FileHandle extends EventEmitter { #rid: number; constructor(rid: number) { super(); - this.rid = rid; + this.#rid = rid; } get fd() { - return this.rid; + return this.#rid; } read( - buffer: Buffer, + buffer: Uint8Array, offset?: number, length?: number, position?: number | null, ): Promise; read(options?: ReadOptions): Promise; read( - bufferOrOpt: Buffer | ReadOptions, + bufferOrOpt: Uint8Array | ReadOptions, offset?: number, length?: number, position?: number | null, ): Promise { - if (bufferOrOpt instanceof Buffer) { + if (bufferOrOpt instanceof Uint8Array) { return new Promise((resolve, reject) => { read( this.fd, @@ -90,12 +90,12 @@ export class FileHandle extends EventEmitter { encoding: string, ): Promise; write( - bufferOrStr: Buffer | string, + bufferOrStr: Uint8Array | string, offsetOrPosition: number, lengthOrEncoding: number | string, position?: number, ): Promise { - if (bufferOrStr instanceof Buffer) { + if (bufferOrStr instanceof Uint8Array) { const buffer = bufferOrStr; const offset = offsetOrPosition; const length = lengthOrEncoding; -- cgit v1.2.3