@entergreat/file-utils
v1.0.0
Published
File utilities for reading, writing, converting and managing files
Downloads
110
Readme
@entergreat/file-utils
File utilities for reading, writing, converting and managing files.
Installation
npm install @entergreat/file-utilsUsage
import FileUtils from "@entergreat/file-utils";
const fu = new FileUtils("/path/to/base/directory");API
Constructor
new FileUtils(baseDir)Creates a new FileUtils instance. All relative paths will be resolved from baseDir. Defaults to process.cwd().
Methods
getFileNamesFromFolder(folderPath)
Returns an array of file names in the specified folder.
const files = await fu.getFileNamesFromFolder("data");
// ["file1.json", "file2.json"]saveNewFile(text, filename, folderPath)
Saves text content to a file. Creates the folder if it doesn't exist.
const filePath = await fu.saveNewFile("Hello world", "greeting.txt", "output");getFileContent(filename, folderPath)
Reads and returns the content of a file.
const content = await fu.getFileContent("config.json", "settings");deleteFile(fileName, folderPath)
Deletes a single file.
await fu.deleteFile("temp.txt", "cache");deleteDirectory(folderPath)
Recursively deletes a directory and all its contents. Returns 1 if deleted, 0 if the directory didn't exist.
await fu.deleteDirectory("temp");convertJsonToCsv(folderPath, outputFolder)
Converts all JSON files in a folder to CSV format. Handles nested objects by flattening them with dot notation.
const csvFiles = await fu.convertJsonToCsv("json-data", "csv-output");
// ["/path/to/csv-output/file1.csv", "/path/to/csv-output/file2.csv"]zipFolder(folderPath, zipFileName, outputFolder)
Compresses a folder into a ZIP file with maximum compression.
const zipPath = await fu.zipFolder("data", "backup.zip", "archives");combineJsonFiles(folderPath)
Combines all JSON files in a folder into a single array. Each item gets a _sourceFile property indicating which file it came from.
const combined = await fu.combineJsonFiles("json-data");
// [{ name: "item1", _sourceFile: "file1" }, { name: "item2", _sourceFile: "file2" }]saveAsJsonAndCsv(data, fileName, folderPath)
Saves an array of objects as both JSON and CSV files.
const data = [{ name: "Alice", age: 30 }, { name: "Bob", age: 25 }];
const { jsonPath, csvPath } = await fu.saveAsJsonAndCsv(data, "users", "output");Static Methods
FileUtils.extractMainDomainName(url)
Extracts the main domain name from a URL.
const domain = await FileUtils.extractMainDomainName("https://www.example.com/page");
// "example"License
UNLICENSED - Private package for EnterGreat internal use.
