{"id":15365516,"url":"https://github.com/tunnckocore/fs-readdir","last_synced_at":"2025-04-15T09:39:21.355Z","repository":{"id":25309273,"uuid":"28735915","full_name":"tunnckoCore/fs-readdir","owner":"tunnckoCore","description":"fs.readdir done right! Support sync, async and stream API, recursiveness and filters/globs.","archived":false,"fork":false,"pushed_at":"2017-07-26T20:09:41.000Z","size":130,"stargazers_count":5,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-13T06:03:23.643Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://github.com/tunnckoCore","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tunnckoCore.png","metadata":{"files":{"readme":"readme.md","changelog":"history.md","contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-03T05:29:11.000Z","updated_at":"2019-07-16T07:46:15.000Z","dependencies_parsed_at":"2022-07-25T12:32:08.401Z","dependency_job_id":null,"html_url":"https://github.com/tunnckoCore/fs-readdir","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tunnckoCore%2Ffs-readdir","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tunnckoCore%2Ffs-readdir/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tunnckoCore%2Ffs-readdir/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tunnckoCore%2Ffs-readdir/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tunnckoCore","download_url":"https://codeload.github.com/tunnckoCore/fs-readdir/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249044801,"owners_count":21203743,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-01T13:14:57.915Z","updated_at":"2025-04-15T09:39:21.332Z","avatar_url":"https://github.com/tunnckoCore.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## [![npm][npmjs-img]][npmjs-url] [![mit license][license-img]][license-url] [![build status][travis-img]][travis-url] [![coverage status][coveralls-img]][coveralls-url] [![deps status][daviddm-img]][daviddm-url]\n\n\u003e fs.readdir done right! Support sync, async and stream API, recursiveness and filters.\n\n## Install, Test \u0026 Benchmark\n```\nnpm i --save fs-readdir\nnode benchmark\n```\n\n\n## Usage\n\u003e For more use-cases see the [tests](./test.js)\n\n```js\nvar fsReaddir = require('fs-readdir');\nvar through2 = require('through2');\n\n// callback api\nfsReaddir('../gitclone-cli', function _cb(err, filepaths) {\n  // as usual\n  console.log('callback err:', err)\n  console.log('callback res:', filepaths)\n});\n\n\n// as stream\nvar stream = fsReaddir('../gitclone-cli')\n.on('error', function(err) {\n  console.log('error:', err);\n})\n.on('finish', function(obj) {\n  console.log('finish:', obj);\n})\n.on('data', function(obj) {\n  console.log('data:', obj);\n})\n.on('folder', function(folder) {\n  console.log('folder:', folder);\n})\n.on('file', function(file) {\n  console.log('file:', file);\n})\n.pipe(through2.obj(function(objArray, enc, next) {\n  objArray = objArray.map(function(fp) {\n    return path.basename(fp);\n  })\n  console.log('pipe1:', objArray);\n  this.push(objArray)\n  next();\n})).pipe(through2.obj(function(modified, enc, next) {\n  console.log('pipe2:', modified);\n  this.push(modified)\n  next();\n}))\n```\n\n\n## Benchmark\n\n```\ncharlike@node:~/dev/fs-readdir$ node benchmark\n#1: simple.js \n  fs-readdir-builtin-emitter.js x 46,994 ops/sec ±13.86% (48 runs sampled)\n  fs-readdir-callback-api.js x 54,294 ops/sec ±6.17% (59 runs sampled)\n  fs-readdir-dual-emitter.js x 19,177 ops/sec ±8.48% (51 runs sampled)\n  fs-readdir-eventemitter2.js x 75,735 ops/sec ±36.43% (51 runs sampled)\n  fs-readdir-stream-api.js x 18,181 ops/sec ±7.42% (65 runs sampled)\n  glob-stream.js x 505 ops/sec ±5.54% (72 runs sampled)\n  readdirp-callback-api.js x 17,271 ops/sec ±19.92% (39 runs sampled)\n  readdirp-stream-api.js x 3,458 ops/sec ±6.40% (56 runs sampled)\n  recursive-readdir.js x 36,467 ops/sec ±8.17% (51 runs sampled)\n\n  fastest is fs-readdir-callback-api.js\ncharlike@node:~/dev/fs-readdir$ node benchmark\n#1: simple.js \n  fs-readdir-builtin-emitter.js x 61,303 ops/sec ±13.48% (53 runs sampled)\n  fs-readdir-callback-api.js x 104,814 ops/sec ±8.41% (59 runs sampled)\n  fs-readdir-dual-emitter.js x 29,277 ops/sec ±15.30% (50 runs sampled)\n  fs-readdir-eventemitter2.js x 43,540 ops/sec ±31.92% (55 runs sampled)\n  fs-readdir-stream-api.js x 37,138 ops/sec ±8.37% (60 runs sampled)\n  glob-stream.js x 432 ops/sec ±27.02% (52 runs sampled)\n  readdirp-callback-api.js x 6,506 ops/sec ±7.89% (57 runs sampled)\n  readdirp-stream-api.js x 4,579 ops/sec ±59.87% (4 runs sampled)\n  recursive-readdir.js x 32,405 ops/sec ±12.46% (25 runs sampled)\n\n  fastest is fs-readdir-callback-api.js\ncharlike@node:~/dev/fs-readdir$ node benchmark\n#1: simple.js \n  fs-readdir-builtin-emitter.js x 35,380 ops/sec ±16.06% (46 runs sampled)\n  fs-readdir-callback-api.js x 55,063 ops/sec ±17.40% (45 runs sampled)\n  fs-readdir-dual-emitter.js x 22,400 ops/sec ±7.50% (71 runs sampled)\n  fs-readdir-eventemitter2.js x 34,917 ops/sec ±9.39% (49 runs sampled)\n  fs-readdir-stream-api.js x 66,513 ops/sec ±24.33% (42 runs sampled)\n  glob-stream.js x 500 ops/sec ±7.51% (72 runs sampled)\n  readdirp-callback-api.js x 11,054 ops/sec ±10.86% (47 runs sampled)\n  readdirp-stream-api.js x 2,277 ops/sec ±5.37% (68 runs sampled)\n  recursive-readdir.js x 12,956 ops/sec ±55.23% (50 runs sampled)\n\n  fastest is fs-readdir-callback-api.js\ncharlike@node:~/dev/fs-readdir$ node benchmark\n#1: simple.js \n  fs-readdir-builtin-emitter.js x 71,767 ops/sec ±12.90% (55 runs sampled)\n  fs-readdir-callback-api.js x 55,266 ops/sec ±8.16% (60 runs sampled)\n  fs-readdir-dual-emitter.js x 19,824 ops/sec ±9.25% (49 runs sampled)\n  fs-readdir-eventemitter2.js x 40,454 ops/sec ±30.43% (54 runs sampled)\n  fs-readdir-stream-api.js x 33,384 ops/sec ±8.23% (65 runs sampled)\n  glob-stream.js x 584 ops/sec ±5.70% (70 runs sampled)\n  readdirp-callback-api.js x 17,492 ops/sec ±20.65% (42 runs sampled)\n  readdirp-stream-api.js x 2,375 ops/sec ±6.73% (46 runs sampled)\n  recursive-readdir.js x 47,471 ops/sec ±35.03% (53 runs sampled)\n  \n  fastest is fs-readdir-callback-api.js\n```\n\n\n## Author\n**Charlike Mike Reagent**\n+ [gratipay/tunnckoCore][author-gratipay]\n+ [twitter/tunnckoCore][author-twitter]\n+ [github/tunnckoCore][author-github]\n+ [npmjs/tunnckoCore][author-npmjs]\n+ [more ...][contrib-more]\n\n\n## License [![MIT license][license-img]][license-url]\nCopyright (c) 2014-2015 [Charlike Mike Reagent][contrib-more], [contributors][contrib-graf].  \nReleased under the [`MIT`][license-url] license.\n\n\n[npmjs-url]: http://npm.im/fs-readdir\n[npmjs-img]: https://img.shields.io/npm/v/fs-readdir.svg?style=flat\u0026label=fs-readdir\n\n[coveralls-url]: https://coveralls.io/r/tunnckoCore/fs-readdir?branch=master\n[coveralls-img]: https://img.shields.io/coveralls/tunnckoCore/fs-readdir.svg?style=flat\n\n[license-url]: https://github.com/tunnckoCore/fs-readdir/blob/master/license.md\n[license-img]: https://img.shields.io/badge/license-MIT-blue.svg?style=flat\n\n[travis-url]: https://travis-ci.org/tunnckoCore/fs-readdir\n[travis-img]: https://img.shields.io/travis/tunnckoCore/fs-readdir.svg?style=flat\n\n[daviddm-url]: https://david-dm.org/tunnckoCore/fs-readdir\n[daviddm-img]: https://img.shields.io/david/tunnckoCore/fs-readdir.svg?style=flat\n\n[author-gratipay]: https://gratipay.com/tunnckoCore\n[author-twitter]: https://twitter.com/tunnckoCore\n[author-github]: https://github.com/tunnckoCore\n[author-npmjs]: https://npmjs.org/~tunnckocore\n\n[contrib-more]: http://j.mp/1stW47C\n[contrib-graf]: https://github.com/tunnckoCore/fs-readdir/graphs/contributors\n\n***\n\n_Powered and automated by [kdf](https://github.com/tunnckoCore), February 13, 2015_","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftunnckocore%2Ffs-readdir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftunnckocore%2Ffs-readdir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftunnckocore%2Ffs-readdir/lists"}