lucaconte 7cc26e831d presentations | 6 rokov pred | |
---|---|---|
.. | ||
test | 6 rokov pred | |
.jshintignore | 6 rokov pred | |
.npmignore | 6 rokov pred | |
.travis.yml | 6 rokov pred | |
license | 6 rokov pred | |
package.json | 6 rokov pred | |
readme.md | 6 rokov pred | |
test.sh | 6 rokov pred | |
walkdir.js | 6 rokov pred |
Find files. Walks a directory tree emitting events based on what it finds. Presents a familliar callback/emitter/sync interface. Walk a tree of any depth. This is a performant option any pull requests to make it more so will be talken into consderation..
var walk = require('walkdir');
//async with path callback
walk('../',function(path,stat){
console.log('found: ',path);
});
//use async emitter to capture more events
var emitter = walk('../');
emitter.on('file',function(filename,stat){
console.log('file from emitter: ', filename);
});
//sync with callback
walk.sync('../',function(path,stat){
console.log('found sync:',path);
});
//sync just need paths
var paths = walk.sync('../');
console.log('found paths sync: ',paths);
npm install walkdir
walkdir(path, [options], [callback]) walkdir.sync(path, [options], [callback]);
path
options. supported options are
{
"follow_symlinks":false, // default is off
"no_recurse":false, // only recurse one level deep
"max_depth":undefined // only recurse down to max_depth. if you need more than no_recurse
}
{
"return_object":false, // if true the sync return will be in {path:stat} format instead of [path,path,...]
"no_return":false, // if true null will be returned and no array or object will be created with found paths. useful for large listings
}
callback
callback(path,stat)
non error type events are emitted with (path,stat). stat is an instanceof fs.Stats
###path fired for everything
###file fired only for regular files
###directory fired only for directories
###link fired when a symbolic link is found
###end fired when the entire tree has been read and emitted.
###socket fired when a socket descriptor is found
###fifo fired when a fifo is found
###characterdevice fired when a character device is found
###blockdevice fired when a block device is found
###targetdirectory fired for the stat of the path you provided as the first argument. is is only fired if it is a directory.
###empty fired for empty directory
error type events are emitted with (path,error). error being the error object returned from an fs call or other opperation.
###error if the target path cannot be read an error event is emitted. this is the only failure case.
###fail when stat or read fails on a path somewhere in the walk and it is not your target path you get a fail event instead of error. This is handy if you want to find places you dont have access too.
the async emitter returned supports 3 methods
###end stop a walk in progress
###pause pause the walk. no more events will be emitted until resume
###resume resume the walk
//cancel a walk in progress within callback.
var walk = require('walkdir');
walk('../',function(path,stat){
this.end();
});
//cancel a walk in progress with emitter handle
var walk = require('walkdir');
var emitter = walk('../');
doSomethingAsync(function(){
emitter.end();
})
thanks to substack. the interface for this module is based off of node-findit