Nose Picking Mechanisms

    dir-to-json
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.0 • Public • Published

    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"
    		}]
    	}]
    }

    Project Links

    Author

    Travis Wimer

    License

    MIT. Copyright © 2022 Travis Wimer

    Install

    npm i dir-to-json

    DownloadsWeekly Downloads

    73

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    39.6 kB

    Total Files

    18

    Last publish

    Collaborators

    • traviswimer