@duskim/dir2json

0.0.1 • Public • Published

dir-to-json-2

Description

Recursively and asynchronously traverses a directory. Keys are set to directory names. see json example.

Usage

const { dirToJson } = require("./dir-to-json");

(async function () {
  const config = {
    dir: "F://js",
    whitelist: [".js", "*"],
    writeJsonToFile: "./out.json", //optional
    omitEmptyDirectories: true, //optional
    omitObjectsWithMaximumDepthOf: 2, //optional
  };

  <!-- JSON -->
  console.log(JSON.stringify(await dirToJson(config), null, 2));
})();


Configuration

  • dir: directory path to search
  • whitelist: file types to look for inside directories. Set to ['*'] to include all files
  • (optional) writeJsonToFile: output path for json file
  • (optional) omitEmptyDirectories: omit nested empty objects
const j = {
  a: { b: { c: { d: { e: { f: { g: {} } } } } } },
  b: { c: { js: ["js"], s: "string" } },
};
const actual = await omitNestedEmpty(j, { omitEmptyDirectories: true });
const expected = { b: { c: { js: ["js"], s: "string" } } };
assert.deepEqual(expected, actual);

-> true
  • (optional) omitObjectsWithMaximumDepthOf: omit nested objects with a depth > 'omitObjectsWithMaximumDepthOf',
const j = {
  a: { a: { a: { a: { a: { a: { a: {} } } } } }, b: ["p", "p"] },
};
const actual = await omitMaximumDepth(j, {
  omitObjectsWithMaximumDepthOf: 2,
});
const expected = {
  a: {
    a: {},
    b: ["p", "p"],
  },
};
assert.deepEqual(expected, actual);
-> true

JSON Example

{
  "*": [
    "test\\test.js"
  ],
  "test\\test2": {
    "*": [
      "test\\test2\\main.js"
    ]
  },
  "test\\test3": {
    "*": [
      "test\\test3\\package.json"
    ]
  },
  "test\\test4": {
    "*": [
      "test\\test4\\README.md"
    ]
  }
}

Readme

Keywords

Package Sidebar

Install

npm i @duskim/dir2json

Weekly Downloads

0

Version

0.0.1

License

MIT

Unpacked Size

9.38 kB

Total Files

6

Last publish

Collaborators

  • duskim2