fileManage and fileManager.
File Management Architecture
Loopar has two distinct file management systems:- fileManage (
packages/loopar/core/file-manage.js) - Server-side file operations - fileManager (
packages/loopar/core/global/file-manager.js) - File metadata and UI helpers
Server-Side File Operations
Creating Files
Create files programmatically:file-manage.js
The
makeFile method automatically skips existing files for certain extensions like ‘jsx’, ‘tsx’, ‘js’, and ‘sqlite’ unless replace is true.Creating Directories
Checking File Existence
Importing Classes Dynamically
Creating Class Files
Generate class files with proper structure:customer-controller.js
Configuration Files
Reading Configuration
Writing Configuration
File Naming Utilities
Convert between naming conventions:Client-Side File Manager
ThefileManager utility provides file type detection and metadata management.
File Type Detection
file-manager.js
Supported File Types
Loopar recognizes these file categories:File Icons
Get icons for file types:File Size Formatting
Mapping Files
Prepare files for display:Get Image Helper
File Uploads in Controllers
Serving Private Files
core-controller.js
URL Detection
File Management in Documents
Use file management in your document classes:my-document.js
Working with Installer Files
Access installer configuration:installer.js
Best Practices
// Good
const exists = await fileManage.existFile('path/to/file');
// Avoid (use only when necessary)
const existsSync = fileManage.existFileSync('path/to/file');
try {
const MyClass = await fileManage.importClass(
'apps/my-app/missing.js',
(error) => {
console.error('Import failed:', error);
return null;
}
);
if (MyClass) {
// Use class
}
} catch (error) {
console.error('Unexpected error:', error);
}
const file = this.data.upload;
const type = fileManager.getFileType(file);
const allowedTypes = ['image', 'pdf', 'word'];
if (!allowedTypes.includes(type)) {
return this.error('Invalid file type. Only images, PDFs, and Word documents are allowed.');
}
File Storage Paths
Loopar uses these standard paths:- Public files:
/assets/public/images/ - Thumbnails:
/assets/public/images/thumbnails/ - App files:
apps/{app-name}/ - Config files:
sites/{tenant-id}/config/ - Data files:
apps/{app-name}/data/
Next Steps
- Creating Modules - Build modules with file management
- Controllers Guide - Handle file uploads in controllers
- Theming - Customize your application’s appearance