1.0.0 • Published 7 years ago
objectify-directory v1.0.0
objectify-directory
Maps directory and it's content to a tree of objects with inner navigation.
Typed for Typescript
Why?
Sometimes it might be usefull to map directory, it's subdirectories and their files to tree of JS objects.
Getting started
npm i --save objectify-directory
// ES6
import parseDirectory from 'objectify-directory';
// CommonJS
const parseDirectory = require('objectify-directory').default;
// then
parseDirectory(path.resolve(__dirname,'./folderToMap')).then(root => {
});
// await
let root = parseDirectory(path.resolve(__dirname,'./folderToMap'));When JSON.stringify() is called a simplified version of the tree is returned in order to deal with circular references.
Options
loadContent: booleanloads binary of the file as property of TreeFile objectcalculateSize: booleancalculates byte size of the file as property of TreeFile objectcontentInJson: booleanincludesBuffer.toString()in content of TreeFile whenJSON.strigify()is called,loadContentneeds to be settrue
Types
TreeElement
Common ancestor to TreeFolder and TreeFile. Holds methods available to both types.
Properties
name: stringname of the directory of file (without extension)parent: TreeElementreference to parent directory (always directory as only dirs can have children)children: Map<string, TreeElement>collection of children elements, should be accessed only via.gotomethod
Methods
fullPath(): stringreturns full path to the element from the root of the driverelativePath(): stringreturn relative path from rootgoto(path: string): TreeElementnavigates through the tree, accepts common path pattern (eg: "../siblingFolder", "./childFolder", "./child.file")
TreeFolder
Object representation of folder.
TreeFile
Object representation of file
Properties
extension: stringextension of the filesize: numberbyte size of the file if option set truecontent: Buffercontent of the file if option set true
Methods
getSize(): numbercalculates the byte size of the file or returns size proeprty if setgetContent(): Bufferreads content of the file, or return content property if set