https://github.com/whitzzscott/filemanagement
A file management system for node.js application making managements of files easier, all in one code, you can delete, move, etc, files all in one code, making ability to manage a system e.g. a application requiring transferring of files in folders easier
https://github.com/whitzzscott/filemanagement
easy error-handling fast file-utilities file-wrapper filemanagement nice-filemanagement nodejs system typescript
Last synced: 3 months ago
JSON representation
A file management system for node.js application making managements of files easier, all in one code, you can delete, move, etc, files all in one code, making ability to manage a system e.g. a application requiring transferring of files in folders easier
- Host: GitHub
- URL: https://github.com/whitzzscott/filemanagement
- Owner: Whitzzscott
- Created: 2025-03-02T08:55:09.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-03-02T09:08:01.000Z (11 months ago)
- Last Synced: 2025-06-19T07:51:43.184Z (7 months ago)
- Topics: easy, error-handling, fast, file-utilities, file-wrapper, filemanagement, nice-filemanagement, nodejs, system, typescript
- Language: TypeScript
- Homepage:
- Size: 20.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
---
📘 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:
```sh
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.
```ts
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**
```sh
npm install filemanagementsystemfornode
```
2. **Run the script**
```sh
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!