https://github.com/tmpfs/fs-find
Filesystem recursive asynchronous find
https://github.com/tmpfs/fs-find
Last synced: 10 months ago
JSON representation
Filesystem recursive asynchronous find
- Host: GitHub
- URL: https://github.com/tmpfs/fs-find
- Owner: tmpfs
- License: other
- Created: 2015-07-16T04:14:50.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2016-01-18T11:42:14.000Z (over 10 years ago)
- Last Synced: 2025-02-05T10:16:11.873Z (about 1 year ago)
- Language: JavaScript
- Size: 31.3 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Table of Contents
=================
* [Filesystem Find](#filesystem-find)
* [Install](#install)
* [Usage](#usage)
* [Arguments](#arguments)
* [Options](#options)
* [Filter](#filter)
* [Info](#info)
* [Developer](#developer)
* [Test](#test)
* [Cover](#cover)
* [Lint](#lint)
* [Docs](#docs)
* [Readme](#readme)
* [License](#license)
Filesystem Find
===============
[
](https://travis-ci.org/tmpfs/fs-find)
[
](https://npmjs.org/package/fs-find)
[
](https://coveralls.io/github/tmpfs/fs-find?branch=master).
Zero-dependency, asynchronous filesystem walk.
Requires [node](http://nodejs.org) and [npm](http://www.npmjs.org).
## Install
```
npm i fs-find --save
```
## Usage
```javascript
find(path, [opts], cb)
```
```javascript
var find = require('fs-find')
, path = process.cwd();
find(path, function(err, results) {
if(err) {
return console.error(err);
}
console.dir(results);
}
```
### Arguments
* `path`: String or array of strings referencing directories and/or files.
* `opts`: Processing options, see below.
* `cb`: Callback function with signature `function(err, results)` where results
is an array of `info` objects.
### Options
* `dirs`: Include directories in results array (default: `false`).
* `exclude`: Do not include the `path` argument values in the `results`.
* `filter`: Generic filter function before `stat` is called.
* `file`: Filter function for files.
* `folder`: Filter function for directories.
* `fullpath`: Use full file path for matching.
* `followLinks`: Follow symbolic links (`stat` rather than `lstat`).
* `depth`: Maximum folder depth to recurse.
* `absolute`: Make all file paths absolute.
* `dedupe`: Remove duplicate entries, possible if the `path` array contains
overlapping folders, best used with `absolute` enabled.
### Filter
Filter functions have the signature `function filter(path, info)` and should
return a `boolean`. The `info` object may be modified in place and will be
included in the results array.
### Info
The `info` object contains the fields:
* `file`: The full file path.
* `name`: The basename of the file.
* `folder`: The parent folder.
* `matcher`: Either the file path or name depending upon the `fullpath` option.
* `stat`: An `fs.Stats` object when available.
* `base`: Base directory for the file.
* `relative`: Path relative to `base`.
## Developer
### Test
To run the test suite:
```
npm test
```
### Cover
To generate code coverage:
```
npm run cover
```
### Lint
Run the source tree through [jshint](http://jshint.com) and [jscs](http://jscs.info):
```
npm run lint
```
### Docs
To build all documentation:
```
npm run docs
```
### Readme
To build the readme file from the partial definitions (requires [mdp](https://github.com/tmpfs/mdp)):
```
npm run readme
```
## License
Everything is [MIT](http://en.wikipedia.org/wiki/MIT_License). Read the [license](https://github.com/tmpfs/fs-find/blob/master/LICENSE) if you feel inclined.
Generated by [mdp(1)](https://github.com/tmpfs/mdp).
[node]: http://nodejs.org
[npm]: http://www.npmjs.org
[mdp]: https://github.com/tmpfs/mdp
[jshint]: http://jshint.com
[jscs]: http://jscs.info