From 9cd4ff7235c7c5c9f10a3edc8f3332e1e72701c3 Mon Sep 17 00:00:00 2001 From: Thiago Date: Mon, 18 Dec 2017 16:15:15 -0200 Subject: [PATCH] Added readStreamOptions --- lib/filewalker.js | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/lib/filewalker.js b/lib/filewalker.js index 0a21c89..ee2a376 100644 --- a/lib/filewalker.js +++ b/lib/filewalker.js @@ -12,7 +12,7 @@ if (global.setImmediate !== undefined) { var lstat = process.platform === 'win32' ? 'stat' : 'lstat'; -function Filewalker(root, options) { +function Filewalker(root, options, readStreamOptions) { if(!(this instanceof Filewalker)) return new Filewalker(root, options); FunctionQueue.call(this, options); @@ -20,10 +20,23 @@ function Filewalker(root, options) { var self = this; this.matchRegExp = null; - + this.recursive = true; - options = options || {}; + this.readStreamOptions = { + flags: 'r', + encoding: null, + fd: null, + mode: 0666, + autoClose: true, + highWaterMark: 64 * 1024 + }; + + for ( var i in readStreamOptions ) { + this.readStreamOptions[ i ] = readStreamOptions[ i ]; + } + + options = options || {}; Object.keys(options).forEach(function(k) { if(self.hasOwnProperty(k)) { self[k] = options[k]; @@ -85,7 +98,7 @@ Filewalker.prototype._emitStream = function(p, s, fullPath) { this.open += 1; - var rs = fs.ReadStream(fullPath); + var rs = fs.ReadStream(fullPath, this.readStreamOptions); // retry on any error rs.on('error', function(err) {