Skip to content

Commit

Permalink
fs: allow no-params fsPromises fileHandle read
Browse files Browse the repository at this point in the history
allow no-params read for fsPromises fileHandle read

PR-URL: #38287
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
  • Loading branch information
Linkgoron authored and targos committed Sep 4, 2021
1 parent 6350213 commit ef72490
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 1 deletion.
2 changes: 1 addition & 1 deletion doc/api/fs.md
Original file line number Diff line number Diff line change
Expand Up @@ -275,7 +275,7 @@ Reads data from the file and stores that in the given buffer.
If the file is not modified concurrently, the end-of-file is reached when the
number of bytes read is zero.
#### `filehandle.read(options)`
#### `filehandle.read([options])`
<!-- YAML
added:
- v13.11.0
Expand Down
3 changes: 3 additions & 0 deletions lib/internal/fs/promises.js
Original file line number Diff line number Diff line change
Expand Up @@ -388,6 +388,9 @@ async function open(path, flags, mode) {
async function read(handle, bufferOrOptions, offset, length, position) {
let buffer = bufferOrOptions;
if (!isArrayBufferView(buffer)) {
if (bufferOrOptions === undefined) {
bufferOrOptions = {};
}
if (bufferOrOptions.buffer) {
buffer = bufferOrOptions.buffer;
validateBuffer(buffer);
Expand Down
8 changes: 8 additions & 0 deletions test/parallel/test-fs-promises-file-handle-read.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,13 @@ async function validateLargeRead() {
assert.strictEqual(readHandle.bytesRead, 0);
}

async function validateReadNoParams() {
const filePath = fixtures.path('x.txt');
const fileHandle = await open(filePath, 'r');
// Should not throw
await fileHandle.read();
}

let useConf = false;

(async function() {
Expand All @@ -72,4 +79,5 @@ let useConf = false;
.then(validateLargeRead)
.then(common.mustCall());
}
await validateReadNoParams();
})().then(common.mustCall());

0 comments on commit ef72490

Please sign in to comment.