Skip to content

SvetozarMateev/fs-assistant

Repository files navigation

fs-assistant

fs-assistant is a simple library that gives you recursive folder copying, simplified file overrides and promisified fs functions.

replaceStringInFile (pathToFile: string, stringPattern: RegExp | string, newString: string) => Promise<void>

Replaces a string in a file that matches the pattern with the new given string.

copyDir (pathToDir: string, pathToNewDir: string) => Promise<void>

Recursively copies all files from a directory to another.

readFile (fileLocation: string) => Promise<string>

Promisified version of fs readFile.

writeFile (newFileLocation: string, contents:any) => Promise<void>

Promisified version of fs writeFile.

copyFile (from: string, to: string) => Promise<void>

Promisified version of fs copyFile.

makeDir (location: string) => Promise<void>

Promisified version of fs makeDir.

deleteFile (location: string) => Promise<void>

Deletes the specified file.

renameFile (fileLocation: string, newFileName: string) => Promise<void>

Renames the specified file

isPath (stringToCheck: string) => boolean

Checks if the given string is a valid path. You can check all covered cases here.

flattenDir (dirLocation: string, newLocation: string) => Promise<void>

Moves all files from a directory (recursively) to a new directory. For example if you have the directory ./myFiles with a file ./myFiles/myFile.txt and a nested directory ./myFiles/nestedFiles which contains ./myFiles/nestedFiles/nestedFile.txt the flattenDir function will move both files to the same level in a new output directory.

getFilesInDir(dirLocation: string) => Promise<FileDetails[]>

Returns an array with all file names and locations in a directory (recursively). Note that the location property in FileDetails represents the path + the name of the file.

readDir(dir: string) => Promise<string[]>

The promisified version of fs.readdir.

getDirsInDir(dirLocation: string) => Promise<FileDetails[]>

Returns an array with all sub directories of a directory.

getFilesInDir(dirLocation: string) => Promise<DirectoryDetails[]>

Returns an array with all items represented either as FileDetails or as DirectoryDetails.

getFileSizeInBytes: (location: string) => Promise<number>;

Returns the file size in bytes.

getDirSizeInBytes: (location: string) => Promise<number>;

Returns the directory size in bytes.

delDir: (location: string) => Promise<void>;

Deletes the directory recursively.

existsSync: (location: string) => boolean;

Equivalent to fs.existsSync().