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 sub-directory and file paths along with their stats.
Features
- Recursively traverses each sub-directory
- Asynchronous
- Filtering support based on CousteauStats properties
- Symlink support (Filtering in symlinks is applied based on the original target file/directory)
Install
$ npm install cousteauAPI
The function accepts three arguments
cousteau(path, [ignoreOptions], callback)
- path- The target directory path
- ingoreOptions- Optional filtering option
- callback- 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
    }The filterOption 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 filterOption = {
    dir: {
        path: (p) => !p.includes("zilla"),
    },
    file: {
        path: (p) => !(/.*\.png$/i).test(p),
        size: (s) => s <= 1500,
    },
};
cousteau("aPath", filterOption, (errors, result) => {
    console.log(errors, result);
});
Test
$ npm testNote that in order to run the tests you need NodeJs version >= 6
License
Copyright (c) 2017 Ioannis Tzanellis
Released under the MIT license