npm.io
4.8.18 • Published 1 week ago

@unchainedshop/core-files

Licence
EUPL-1.2
Version
4.8.18
Deps
4
Size
15 kB
Vulns
0
Weekly
0
Stars
201

npm version License: EUPL-1.2

@unchainedshop/core-files

File management module for the Unchained Engine. Handles media file metadata storage and URL normalization.

Installation

npm install @unchainedshop/core-files

Usage

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