|
|
@ -22,24 +22,24 @@ Walker.prototype.visit = function (item) { |
|
|
|
|
|
|
|
fs.lstat(item, function (err, stat) { |
|
|
|
if (err) { |
|
|
|
self.emit('error', err, item, stat) |
|
|
|
self.emit('error', err, {path: item, stat: stat}) |
|
|
|
return self.finishItem() |
|
|
|
} |
|
|
|
|
|
|
|
if (self.filter && !self.filter(item, stat)) return self.finishItem() |
|
|
|
if (self.filter && !self.filter({path: item, stat: stat})) return self.finishItem() |
|
|
|
|
|
|
|
if (!stat.isDirectory()) { |
|
|
|
self.emit('data', item, stat) |
|
|
|
self.emit('data', {path: item, stat: stat}) |
|
|
|
return self.finishItem() |
|
|
|
} |
|
|
|
|
|
|
|
fs.readdir(item, function (err, items) { |
|
|
|
if (err) { |
|
|
|
self.emit('error', err, item, stat) |
|
|
|
self.emit('error', err, {path: item, stat: stat}) |
|
|
|
return self.finishItem() |
|
|
|
} |
|
|
|
|
|
|
|
self.emit('data', item, stat) |
|
|
|
self.emit('data', {path: item, stat: stat}) |
|
|
|
items.forEach(function (part) { |
|
|
|
self.visit(path.join(item, part)) |
|
|
|
}) |
|
|
|