Socket
Book a DemoInstallSign in
Socket

dir-to-json

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dir-to-json

Asynchronously convert directory tree structure into a javascript object.

latest
Source
npmnpm
Version
1.0.0
Version published
Maintainers
1
Created
Source

dir-to-json Tests

Asynchronously convert directory tree structure into a JavaScript object.

Getting Started

Install

Yarn:

yarn add dir-to-json

NPM:

npm install dir-to-json --save

Usage

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:

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 dir-to-json@0.0.3

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

{
	"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"
		}]
	}]
}
  • NPM
  • GitHub

Author

Travis Wimer

License

MIT. Copyright © 2022 Travis Wimer

Keywords

directory

FAQs

Package last updated on 04 Jul 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts