Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/traviswimer/dir-to-json
Asynchronously convert directory tree structure into a javascript object.
https://github.com/traviswimer/dir-to-json
directory javascript json nodejs npm npm-package
Last synced: 2 months ago
JSON representation
Asynchronously convert directory tree structure into a javascript object.
- Host: GitHub
- URL: https://github.com/traviswimer/dir-to-json
- Owner: traviswimer
- License: mit
- Created: 2014-10-02T00:27:43.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2022-07-04T13:08:12.000Z (over 2 years ago)
- Last Synced: 2024-08-09T09:32:28.495Z (3 months ago)
- Topics: directory, javascript, json, nodejs, npm, npm-package
- Language: TypeScript
- Homepage:
- Size: 164 KB
- Stars: 20
- Watchers: 3
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# dir-to-json ![Tests](https://github.com/traviswimer/dir-to-json/actions/workflows/node.js.yml/badge.svg)
> Asynchronously convert directory tree structure into a JavaScript object.
## Getting Started
### Install
**Yarn:**
```shell
yarn add dir-to-json
```**NPM:**
```shell
npm install dir-to-json --save
```### Usage
```javascript
import dirToJson from "dir-to-json";dirToJson("./path/to/my/dir", { sortType: true })
.then(function (dirTree) {
console.log(dirTree);
})
.catch(function (err) {
throw err;
});
```#### Callback syntax
The callback syntax has been split into another module in version `1.0.0`. If you would still like to use it, just change your import to `dir-to-json/callback`:
```javascript
import dirToJson from "dir-to-json/callback";dirToJson("./path/to/my/dir", function (err, dirTree) {
if (err) {
throw err;
} else {
console.log(dirTree);
}
});
```### Requirements
- NodeJS version 14 or higher
> Since Version 1.0.0 of `dir-to-json`, the lowest supported version of NodeJS is `14`. If you are using an older version of Node, try installing `[email protected]`
## API
`dirToJson( path [, options ] [, callback ] )`
### path
- type: string
- description: Path to the directory you would like to obtain a tree object from.### options _(optional)_
- type: object
- description: Allows output to be customized.
- Accepted properties:
- **sortType** _boolean_ (Default: `true`) - If `true`, directories will be listed before files in all `children` arrays. If `false`, array contents will be listed in the order which they are returned from `fs.readdir()`.### callback( err, directoryTree ) _(optional)_
- type: function
- description: Callback function
- err - Error object on fail. `null` on success.
- directoryTree - Object containing heirarchical directory data.## Structure of output
```javascript
{
"parent": "..",
"path": "",
"name": "coverage",
"type": "directory",
"children": [{
"parent": "",
"path": "coverage-final.json",
"name": "coverage-final.json",
"type": "file"
}, {
"parent": "",
"path": "index.html",
"name": "index.html",
"type": "file"
}, {
"parent": "",
"path": "lcov-report",
"name": "lcov-report",
"type": "directory",
"children": [{
"parent": "lcov-report",
"path": "lcov-report/index.html",
"name": "index.html",
"type": "file"
}, {
"parent": "lcov-report",
"path": "lcov-report/prettify.css",
"name": "prettify.css",
"type": "file"
}, {
"parent": "lcov-report",
"path": "lcov-report/prettify.js",
"name": "prettify.js",
"type": "file"
}, {
"parent": "lcov-report",
"path": "lcov-report/src",
"name": "src",
"type": "directory",
"children": [{
"parent": "lcov-report/src",
"path": "lcov-report/src/createDirectoryObject.js.html",
"name": "createDirectoryObject.js.html",
"type": "file"
}, {
"parent": "lcov-report/src",
"path": "lcov-report/src/index.html",
"name": "index.html",
"type": "file"
}, {
"parent": "lcov-report/src",
"path": "lcov-report/src/main.js.html",
"name": "main.js.html",
"type": "file"
}]
}]
}, {
"parent": "",
"path": "lcov.info",
"name": "lcov.info",
"type": "file"
}, {
"parent": "",
"path": "prettify.css",
"name": "prettify.css",
"type": "file"
}, {
"parent": "",
"path": "prettify.js",
"name": "prettify.js",
"type": "file"
}, {
"parent": "",
"path": "src",
"name": "src",
"type": "directory",
"children": [{
"parent": "src",
"path": "src/createDirectoryObject.js.html",
"name": "createDirectoryObject.js.html",
"type": "file"
}, {
"parent": "src",
"path": "src/index.html",
"name": "index.html",
"type": "file"
}, {
"parent": "src",
"path": "src/main.js.html",
"name": "main.js.html",
"type": "file"
}]
}]
}
```## Project Links
- [NPM](https://www.npmjs.com/package/dir-to-json)
- [GitHub](https://github.com/traviswimer/dir-to-json)## Author
#### Travis Wimer
- Developer Portfolio
- My Blog
- Dir-To-Json Portfolio Page## License
MIT. Copyright © 2022 Travis Wimer