Package Exports
- cousteau
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (cousteau) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
cousteau
Recursive directory walker that retrieves all dir/file paths along with their stats and follows symlinks.
Features
- Traverses recursively and asynchronously all sub-directories.
- Can ignore artifacts via filtering mechanism based on CousteauStats properties.
- Properly resolves and follows symlinks. (filtering in symlinks is applied based on the original target artifact)
- Reports broken symlinks.
Install
$ npm install cousteau
API
The function accepts three arguments
cousteau(path, [ignoreOptions], callback)
path
- The target directory pathingoreOptions
- Optional filtering optioncallback
- The callback gets two arguments(errors, result)
where result is an object with below structure
// Result object
{
dirs: [CousteauStats],
files: [CousteauStats],
brokenSymlinks: [String],
}
CousteauStats
Is an fs.Stats instance extended with the path
property.
For example:
{
path string
dev number
mode number
nlink number
uid number
gid number
rdev number
blksize number
ino number
size number
blocks number
atime Date object
mtime Date object
ctime Date object
isFile function
isDirectory function
isBlockDevice function
isCharacterDevice function
isSymbolicLink function
isFIFO function
isSocket function
}
The ignoreOptions
can be applied to one or more of the CousteauStats properties either on the directories and/or the files.
Example
const cousteau = require("cousteau");
// Without filtering
cousteau("aPath", (errors, result) => {
console.log(errors, result);
});
// Find all directories that contain the "zilla" substring
// and all png files that their size is more than 1500 bytes
const ignoreOptions = {
dir: {
path: (p) => !p.includes("zilla"),
},
file: {
path: (p) => !(/.*\.png$/i).test(p),
size: (s) => s <= 1500,
},
};
cousteau("aPath", ignoreOptions, (errors, result) => {
console.log(errors, result);
});
Test
$ npm test
Note that in order to run the tests you need NodeJS version >= 6
License
Copyright (c) 2017 Ioannis Tzanellis
Released under the MIT license