An open API service indexing awesome lists of open source software.

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

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
===============

[Build Status](https://travis-ci.org/tmpfs/fs-find)
[npm version](https://npmjs.org/package/fs-find)
[Coverage Status](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