@unchainedshop/core-files
v4.8.9
Published
File management module for the Unchained Engine
Readme
@unchainedshop/core-files
File management module for the Unchained Engine. Handles media file metadata storage and URL normalization.
Installation
npm install @unchainedshop/core-filesUsage
import { configureFilesModule } from '@unchainedshop/core-files';
const filesModule = await configureFilesModule({
db,
options: {
transformUrl: (url, params) => url, // Optional URL transformation
},
});
// Create a file record
const fileId = await filesModule.create({
name: 'product-image.jpg',
type: 'image/jpeg',
path: 'products/123',
url: '/uploads/product-image.jpg',
});
// Find file and normalize URL
const file = await filesModule.findFile({ fileId });
const normalizedUrl = filesModule.normalizeUrl(file.url, {});API Overview
Module Configuration
| Export | Description |
|--------|-------------|
| configureFilesModule | Configure and return the files module |
Queries
| Method | Description |
|--------|-------------|
| findFile | Find file by ID or URL |
| findFiles | Find files with custom selector |
Mutations
| Method | Description |
|--------|-------------|
| create | Create a new file record |
| update | Update an existing file |
| delete | Delete a file record |
| deleteMany | Delete multiple file records |
| unexpire | Remove expiration from a file |
Helper Methods
| Method | Description |
|--------|-------------|
| normalizeUrl | Normalize and transform file URL |
Utilities
| Export | Description |
|--------|-------------|
| getFileAdapter | Get configured file storage adapter |
| getFileFromFileData | Convert file data to File object |
| filesSettings | Access file module settings |
Types
| Export | Description |
|--------|-------------|
| File | File document type |
| FilesModule | Module interface type |
| FilesSettingsOptions | Configuration options type |
Configuration
const filesModule = await configureFilesModule({
db,
options: {
transformUrl: (url, params) => {
// Transform URLs for CDN, thumbnails, etc.
return `https://cdn.example.com${url}`;
},
},
});Events
| Event | Description |
|-------|-------------|
| FILE_CREATE | Emitted when a file is created |
| FILE_UPDATE | Emitted when a file is updated |
| FILE_REMOVE | Emitted when a file is removed |
License
EUPL-1.2
