Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lqmanh/directory-stat
Composable directory statistics fetcher where "fs" is insufficient
https://github.com/lqmanh/directory-stat
dir directory stat statistics
Last synced: 3 months ago
JSON representation
Composable directory statistics fetcher where "fs" is insufficient
- Host: GitHub
- URL: https://github.com/lqmanh/directory-stat
- Owner: lqmanh
- License: mit
- Created: 2018-11-27T15:03:23.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-03-01T00:57:04.000Z (almost 2 years ago)
- Last Synced: 2024-01-24T05:01:44.432Z (about 1 year ago)
- Topics: dir, directory, stat, statistics
- Language: JavaScript
- Homepage:
- Size: 540 KB
- Stars: 2
- Watchers: 2
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[![](https://img.shields.io/github/license/lqmanh/directory-stat.svg?style=flat-square)](https://github.com/lqmanh/directory-stat)
[![](https://img.shields.io/npm/v/directory-stat.svg?style=flat-square)](https://www.npmjs.com/package/directory-stat)# directory-stat
> Composable directory statistics fetcher where "fs" is insufficient
## INSTALLATION
### Requirements
- Node.js >= v8.0.0
### Instructions
_Notice:_
- To use **directory-stat** as a standalone CLI app, you should install the package globally.
- To take advantages of all advanced features like custom statistics collectors, you need to use **directory-stat** as a library.#### With `npm`
```
$ npm install directory-stat
```or
```
$ npm install -g directory-stat
```#### With `yarn`
```
$ yarn add directory-stat
```or
```
$ yarn global add directory-stat
```## USAGE
### As a Standalone CLI App
Use `-h, --help` flag to see more:
```bash
$ directory-stat --help
Composable directory statistics fetcher where "fs" is insufficientUSAGE
$ directory-stat DIRARGUMENTS
DIR directoryOPTIONS
-d, --depth=depth [default: -1] how deep in directory tree statistics
should be fetched. Unlimited if < 0-h, --help show CLI help
-m, --[no-]minified minify output
-o, --output=output [default: .dirstat] name of the output file
-v, --version show CLI version
-x, --exclude=exclude [default: ] ignore any children matching this glob
--[no-]size include size (in bytes)
--[no-]timestamp include timestamp
--[no-]type include type
DESCRIPTION
Fetch directory statistics then save to a JSON file in that directory
```### As a Library
Example:
```javascript
const fs = require('fs').promises // Node.js >= 10.0.0
const path = require('path')const { StatWriter } = require('directory-stat')
const { StatCollector } = require('directory-stat/stat-collectors')class FileContentCollector extends StatCollector {
constructor() {
super('content')
}async collect(pathStr, stat) {
if (!stat.isFile()) return undefined
return fs.readFile(pathStr, { encoding: 'utf8' })
}
}const statWriter = new StatWriter(path.join(__dirname, 'example'), {
depth: 1,
exclude: ['.dirstat', 'dirstat.json'],
output: 'dirstat.json',
statCollectors: [new FileContentCollector()]
})
statWriter.export().then(() => console.log('Done'))
```## CHANGELOG
Read more [here](https://github.com/lqmanh/directory-stat/blob/master/CHANGELOG.md).
## TODO
Read more [here](https://github.com/lqmanh/directory-stat/blob/master/TODO.md).