Skip to content

Commit

Permalink
Normalizing API and updating README
Browse files Browse the repository at this point in the history
  • Loading branch information
natecavanaugh committed Aug 31, 2016
1 parent 661c782 commit 934a680
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 27 deletions.
74 changes: 51 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,52 +18,80 @@ $ npm install --save file-filter
```js
var fileFilter = require('file-filter');

fileFilter('belgian');
//=> BEST BEER EVAR!
fileFilter(['file-filter', 'file1.txt', 'duplicateFile1.txt', 'file2.txt']).then(results => {
// results => {strict: {...}, loose: {...}, unprocessed: {...}}
});
```

## CLI

```
$ npm install --global file-filter
```

```
$ file-filter --help
Usage
file-filter [input]
Example
file-filter
BEER!
Filter a list of files to only the unique files, based on content
file-filter belgian
BEST BEER EVAR!
Usage
$ file-filter [input]
$ [input] | file-filter
Options
--foo Lorem ipsum. Default: false
-i Invert the results so that it shows you only the duplicates. Default: false
-s Append the summary about the number of unique files and duplicates. Default: false
-S Show only the summary about the number of unique files and duplicates. Default: false
-W By default, the comparisons ignore whitespace. This makes it so that it respects whitespace differences. Default: false
Examples
$ file-filter file1.txt duplicateFile1.txt file2.txt
file1.txt
file2.txt
# Assuming we're in a directory that has the same files as above
$ ls | file-filter
file1.txt
file2.txt
```


## API

### fileFilter(input, [options])

#### input

*Required*
Type: `string`
### fileFilter(input)

Lorem ipsum.
Returns a Promise that resolves to an object of objects, containing the results of the comparisons.

#### options
The object returned is structured like so:
```js
{
// Strict contains the result of a strict comparison
strict: {
uniques: [...], // Array of strings of the unique filenames
duplicates: [...], // Array of strings of the duplicate filenames
files: [{name, hash, content}, ...] // Array of objects containing file name, the file hash and content used for the comparison
},

// Loose contains the result, but it ignores all whitespace in the comparison
loose: {
uniques: [...],
duplicates: [...],
files: [...]
},

// Unprocessed contains two arrays, one for any directories and one for anything else that was passed in but can't be read for whatever reason.
unprocessed: {
dirs: [...],
misc: [...]
}
}
```

##### foo
#### input

Type: `boolean`
Default: `false`
*Required*
Type: `string|Array`

Lorem ipsum.
This is the list of files to filter. It can be an array of files, or a newline separated string.


## License
Expand Down
9 changes: 5 additions & 4 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,8 @@ FileFilter.prototype = {

ALL_FILES.push(
{
fileName: fileName,
fileHash: fileHash,
name: fileName,
hash: fileHash,
content: item
}
);
Expand All @@ -94,8 +94,9 @@ FileFilter.prototype = {

ALL_FILES_ALT.push(
{
fileName: fileName,
altFileHash: altFileHash
name: fileName,
hash: altFileHash,
content: item
}
);
}
Expand Down

0 comments on commit 934a680

Please sign in to comment.