filemanagementsystemfornode

1.0.2 • Public • Published

📘 File Management System - TypeScript

A powerful, flexible, and chainable file management system for Node.js.

📘 File Management System - TypeScript

A powerful, flexible, and chainable file management system for Node.js.
This system provides an easy way to manage files and directories while supporting:

  • Custom error handling
  • Custom chainable methods
  • Advanced file operations like compression, metadata retrieval, and content manipulation.

📌 Key Features

🚀 File Operations

Rename, Move, Copy, and Delete files
Append content to files
Retrieve compressed file content (getInfo())
Retrieve file metadata (getMetaInfo())

📂 Directory Operations

Create, Delete, and List directories
Check if a file/folder exists (syncExist())

⚙ Customization & Error Handling

Custom error handling (e.g., auto-create missing files on error)
Add custom chainable methods (addMethod())
Invoke custom chain methods dynamically (invokeMethod())


📥 Installation

To install and use this package, run:

git clone https://github.com/Whitzzscott/FileManagement.git
cd FileManagement
npm install

🛠 Usage Example

This example demonstrates:

  • Error handling: Automatically creating a missing file if an error occurs.
  • Custom chainable methods: Adding a method that logs the file path.
  • File operations: Renaming, moving, copying, appending, and deleting a file.
import { FileWrapper } from "./wrappers/FileWrapper";

const file = new FileWrapper("./testFolder/sample.txt");

// ✅ Custom error handling: Auto-create missing files when they are not found
file.errorOnFound = (error) => {
    if (error.code === "ENOENT") {
        file.sync().writeFile("Default content");
        console.log(`📄 File created: ${file.getPath()}`);
    }
};

// ✅ Add a custom method (e.g., logging the file path)
file.addMethod("logPath", function () {
    console.log("File is at:", this.getPath());
    return this;
});

// ✅ Chainable file operations
(async () => {
    file
        .rename("renamed.txt")  // Renames file
        .invokeMethod("logPath") // Logs new file path
        .move("./testFolder/moved") // Moves file to a new folder
        .copy("./backup")  // Creates a copy in the backup folder
        .append("\nMore content added.") // Appends text to the file
        .delete();  // Deletes the file

    console.log("📄 Compressed File Content:", file.getInfo());
    console.log("📑 File Metadata:", file.getMetaInfo());
    console.log("📂 Files in directory:", file.list());
})();

📜 API Reference

This file management system offers multiple operations for handling files and folders.

📂 File Operations

Method Description Example
rename(newName: string) Renames the file file.rename("newName.txt")
move(destination: string) Moves the file to a new directory file.move("./newFolder")
copy(destination: string) Copies the file to a new location file.copy("./backup")
delete() Deletes the file permanently file.delete()
writeFile(content: string) Writes new content to the file (overwrites existing content) file.writeFile("Hello, world!")
append(content: string) Appends new content to the file file.append("\nNew content")

📁 Directory Operations

Method Description Example
syncExist() Checks if a file or folder exists if (file.syncExist()) {...}
sync() Ensures the directory exists (creates it if missing) file.sync()
list() Lists all files in the directory console.log(file.list())

📊 File Info & Metadata

Method Description Example
getInfo() Reads and compresses the entire file content console.log(file.getInfo())
getMetaInfo() Retrieves metadata such as size, creation date, and modification date console.log(file.getMetaInfo())

⚙ Customization & Error Handling

Method Description Example
errorOnFound = (error) => {...} Custom error handling (e.g., auto-create files) file.errorOnFound = (err) => {...}
addMethod(name, method) Adds a custom chainable method file.addMethod("customMethod", function () {...})
invokeMethod(name, ...args) Calls a custom method dynamically file.invokeMethod("customMethod")

🔧 How to Use This Project

  1. Install the package
    npm install filemanagementsystemfornode
  2. Run the script
    npm run start
  3. Modify settings
    • Change file paths in src/main.ts to test different operations.
    • Modify core functionality in src/Wrapper if necessary.

📜 License

This project is open-source and free to use.


💡 Future Enhancements

We plan to add:

  • 🔹 File encryption support (AES, RSA encryption for file security)
  • 🔹 File versioning (track changes over time)
  • 🔹 Logging & monitoring system (track operations in a log file)

🚀 Enjoy simplified file management with powerful chaining!
Feel free to suggest new features or improvements! 🎯


👨‍💻 Author

WhitzScott - Developer of the File Management System.
If you have questions or ideas, feel free to reach out!

Readme

Keywords

Package Sidebar

Install

npm i filemanagementsystemfornode

Weekly Downloads

11

Version

1.0.2

License

ISC

Unpacked Size

39.1 kB

Total Files

13

Last publish

Collaborators

  • whitzscott