$ gnpm install @wrote/read-dir-structure
@wrote/read-dir-structure is Node.JS package to a read directory structure.
yarn add @wrote/read-dir-structure
async readDirStructure(dirPath, opts=): DirectoryStructuregetFiles(content, path): !Array<string>There is a single default export function, import it with the following statement:
import readDirStructure from '@wrote/read-dir-structure'
The types and externs for Google Closure Compiler via Depack are defined in the _readDirStructure namespace.
The return type of the function is a DirectoryStructure. It is a recursive object, where items have either File, Directory or SymLink types specified in the type field, and if the item is a directory, it has the content property which is another DirectoryStructure.
Object<string, !DirectoryStructure> Content: The recursive content of the directory.
DirectoryStructure: A directory structure representation.
| Name | Type | Description | 
|---|---|---|
| type | string | The type of the item. | 
| content | !Content | The recursive content if the item is a directory. | 
async readDirStructure(dirPath: string,opts=: !ReadDirStructureOpts,): DirectoryStructureRead a directory, and return its structure as an object. Only Files, Directories and Symlinks are included!
string: Path to the directory.!ReadDirStructureOpts (optional): The options.Reads the structure of the directory.
/* yarn example/ */
import readDirStructure from '@wrote/read-dir-structure'
(async () => {
  const res = await readDirStructure('example/directory')
  console.log(JSON.stringify(res, null, 2))
})()
Output for the example/directory:
{
  "content": {
    "fileA-ln.txt": {
      "type": "SymbolicLink"
    },
    "fileA.txt": {
      "type": "File"
    },
    "fileB.txt": {
      "type": "File"
    },
    "test.json": {
      "type": "File"
    },
    "subdirectory": {
      "content": {
        "subdirFileA.txt": {
          "type": "File"
        },
        "subdirFileB.txt": {
          "type": "File"
        }
      },
      "type": "Directory"
    }
  },
  "type": "Directory"
}
getFiles(content: !Content,path: string,): !Array<string>After running the readDirStructure, this function can be used to flatten the content output and return the list of all files (not including symlinks).
!Content: The content from the readDirStructure result.string: The original path to the directory./* yarn example/ */
import readDirStructure, { getFiles } from '@wrote/read-dir-structure'
(async () => {
  const path = 'example/directory'
  const res = await readDirStructure(path)
  const files = getFiles(res.content, path)
  console.log(JSON.stringify(files, null, 2))
})()
[
  "example/directory/fileA.txt",
  "example/directory/fileB.txt",
  "example/directory/test.json",
  "example/directory/subdirectory/subdirFileA.txt",
  "example/directory/subdirectory/subdirFileB.txt"
]
The following errors can happen and have been context tested against:
| Happens when... | code | Message | 
|---|---|---|
| not passing any path | - | 
Please specify a path to the directory | 
| passing a path to a symbolic link | ENOTDIR | 
Path is not a directory | 
| passing a path to a file | ENOTDIR | 
Path is not a directory | 
| directory does not exist | ENOENT | 
ENOENT: no such file or directory, lstat '%DIRECTORY%' | 
      
         
      
     | 
    © Art Deco for Wrote 2019 | 
      
         | 
    
      
         
      
     | 
    Tech Nation Visa Sucks | 
|---|
Copyright 2013 - present © cnpmjs.org | Home |