diff options
author | Anna Henningsen <anna@addaleax.net> | 2019-10-25 16:17:07 +0200 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2019-10-28 14:34:25 +0100 |
commit | b35181f877d5a92e8bb52eb071489f2a7d87494b (patch) | |
tree | c90e26cce8d93734912a03311c8ecbc68d93fded /lib/internal/fs/dir.js | |
parent | 5783ed7667d2aab87d30ffddbb5cd7c1c5099cb6 (diff) | |
download | android-node-v8-b35181f877d5a92e8bb52eb071489f2a7d87494b.tar.gz android-node-v8-b35181f877d5a92e8bb52eb071489f2a7d87494b.tar.bz2 android-node-v8-b35181f877d5a92e8bb52eb071489f2a7d87494b.zip |
fs: add `bufferSize` option to `fs.opendir()`
Add an option that controls the size of the internal
buffer.
Fixes: https://github.com/nodejs/node/issues/29941
PR-URL: https://github.com/nodejs/node/pull/30114
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'lib/internal/fs/dir.js')
-rw-r--r-- | lib/internal/fs/dir.js | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/internal/fs/dir.js b/lib/internal/fs/dir.js index fedd7ff8ed..90ab31fe5a 100644 --- a/lib/internal/fs/dir.js +++ b/lib/internal/fs/dir.js @@ -21,6 +21,9 @@ const { getValidatedPath, handleErrorFromBinding } = require('internal/fs/utils'); +const { + validateUint32 +} = require('internal/validators'); const kDirHandle = Symbol('kDirHandle'); const kDirPath = Symbol('kDirPath'); @@ -39,9 +42,14 @@ class Dir { this[kDirPath] = path; this[kDirClosed] = false; - this[kDirOptions] = getOptions(options, { - encoding: 'utf8' - }); + this[kDirOptions] = { + bufferSize: 32, + ...getOptions(options, { + encoding: 'utf8' + }) + }; + + validateUint32(this[kDirOptions].bufferSize, 'options.bufferSize', true); this[kDirReadPromisified] = internalUtil.promisify(this[kDirReadImpl]).bind(this, false); @@ -88,6 +96,7 @@ class Dir { this[kDirHandle].read( this[kDirOptions].encoding, + this[kDirOptions].bufferSize, req ); } @@ -105,6 +114,7 @@ class Dir { const ctx = { path: this[kDirPath] }; const result = this[kDirHandle].read( this[kDirOptions].encoding, + this[kDirOptions].bufferSize, undefined, ctx ); |