Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@wrote/read-dir-structure

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@wrote/read-dir-structure

Reads directory structure.

  • 1.3.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
52
decreased by-53.15%
Maintainers
1
Weekly downloads
 
Created
Source

@wrote/read-dir-structure

npm version

@wrote/read-dir-structure is Node.JS package to a read directory structure.

yarn add @wrote/read-dir-structure

Table Of Contents

API

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.

Types

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.

NameTypeDescription
typestringThe type of the item.
content!ContentThe recursive content if the item is a directory.

async readDirStructure(
  dirPath: string,
  opts=: !ReadDirStructureOpts,
): DirectoryStructure

Read a directory, and return its structure as an object. Only Files, Directories and Symlinks are included!

  • dirPath* string: Path to the directory.
  • opts !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

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.
/* 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"
]

Reasons for Errors

The following errors can happen and have been context tested against:

Happens when...codeMessage
not passing any path-Please specify a path to the directory
passing a path to a symbolic linkENOTDIRPath is not a directory
passing a path to a fileENOTDIRPath is not a directory
directory does not existENOENTENOENT: no such file or directory, lstat '%DIRECTORY%'

Art Deco © Art Deco for Wrote 2019 Wrote Tech Nation Visa Tech Nation Visa Sucks

Keywords

FAQs

Package last updated on 03 Feb 2020

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc