Reads directory structure.
npm install @wrote/read-dir-structure
@wrote/read-dir-structure is Node.JS package to a read directory structure.
``sh`
yarn add @wrote/read-dir-structure
- Table Of Contents
- API
- Types
- async readDirStructure(dirPath, opts=): DirectoryStructure
- getFiles(content, path): !Array
- Reasons for Errors
- Copyright
There is a single default export function, import it with the following statement:
`js`
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(
opts=: !ReadDirStructureOpts,
): DirectoryStructure, Directories and Symlinks are included! - dirPath*
string: Path to the directory.
- opts !ReadDirStructureOpts (optional): The options.Reads the structure of the directory.
`js
/ yarn example/ /
import readDirStructure from '@wrote/read-dir-structure'(async () => {
const res = await readDirStructure('example/directory')
console.log(JSON.stringify(res, null, 2))
})()
`example/directory:`json
{
"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
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* !Content: The content from the
readDirStructure result.
- path* string: The original path to the directory.`js
/ 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))
})()
`
`json
[
"example/directory/fileA.txt",
"example/directory/fileB.txt",
"example/directory/test.json",
"example/directory/subdirectory/subdirFileA.txt",
"example/directory/subdirectory/subdirFileB.txt"
]
`Reasons for Errors
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%' | alt="Art Deco"> | © Art Deco for Wrote 2019 | alt="Tech Nation Visa"> | Tech Nation Visa Sucks |
|---|