Skip to content

Commit ddf2662

Browse files
authored
feat: filter add dir as param (#8)
1 parent 538e912 commit ddf2662

File tree

5 files changed

+27
-8
lines changed

5 files changed

+27
-8
lines changed

.travis.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,8 @@ node_js:
66
- "2"
77
- "3"
88
- "4"
9+
- "6"
10+
- "8"
11+
- "9"
912
script: "npm run-script test-travis"
1013
after_script: "npm install coveralls@2 && cat ./coverage/lcov.info | coveralls"

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@ read(__dirname) === [
3333

3434
### read(root [, filter])
3535

36-
`root` is the directory you wish to scan. `filter` is an optional filter for the files. By default, filter is:
36+
`root` is the directory you wish to scan. `filter` is an optional filter for the files with three params(name, index, dir). By default, filter is:
3737

3838
```js
39-
function (x) {
40-
return x[0] !== '.'
39+
function (name) {
40+
return name[0] !== '.'
4141
}
4242
```
4343

index.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ function read(root, filter, files, prefix) {
1212
if (!fs.existsSync(dir)) return files
1313
if (fs.statSync(dir).isDirectory())
1414
fs.readdirSync(dir)
15-
.filter(filter)
15+
.filter(function (name, index) {
16+
return filter(name, index, dir)
17+
})
1618
.forEach(function (name) {
1719
read(root, filter, files, path.join(prefix, name))
1820
})
@@ -25,4 +27,3 @@ function read(root, filter, files, prefix) {
2527
function noDotFiles(x) {
2628
return x[0] !== '.'
2729
}
28-

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
},
1010
"devDependencies": {
1111
"istanbul": "0",
12-
"mocha": "*",
12+
"mocha": "3",
1313
"should": "*"
1414
},
1515
"author": {

test/test.js

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ describe('fs.readdirSyncRecursive()', function () {
1515

1616
it('should work at the root with a filter', function () {
1717
var files = read(path.join(__dirname, '..'), function (name) {
18-
return name[0] !== '.' && name !== 'node_modules' && name !== 'coverage'
18+
return name[0] !== '.' && name !== 'node_modules' && name !== 'coverage' && name !== 'package-lock.json'
1919
})
2020

2121
files.length.should.equal(5)
@@ -29,6 +29,21 @@ describe('fs.readdirSyncRecursive()', function () {
2929

3030
})
3131

32+
it('should filter pass dir', function () {
33+
var files = read(path.join(__dirname, '..'), function (name, index, dir) {
34+
return name[0] !== '.' && name !== 'node_modules' && name !== 'coverage' && dir !== __dirname && name !== 'package-lock.json'
35+
})
36+
37+
files.length.should.equal(4)
38+
files.sort().should.eql([
39+
'index.js',
40+
'LICENSE',
41+
'package.json',
42+
'README.md'
43+
].sort())
44+
45+
})
46+
3247
it('should work with the symlinked file', function () {
3348
try {
3449
var linkname = __filename + '-link'
@@ -69,7 +84,7 @@ describe('fs.readdirSyncRecursive()', function () {
6984
fs.symlinkSync(path.join(__dirname, '..'), linkname, 'dir')
7085

7186
var files = read(linkname, function (name) {
72-
return name[0] !== '.' && name !== 'node_modules' && name !== 'coverage'
87+
return name[0] !== '.' && name !== 'node_modules' && name !== 'coverage' && name !== 'package-lock.json'
7388
})
7489

7590
files.length.should.equal(5)

0 commit comments

Comments
 (0)