mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 08:50:15 +01:00
55 lines
1.3 KiB
JavaScript
55 lines
1.3 KiB
JavaScript
|
|
const { FileSources } = require('librechat-data-provider');
|
||
|
|
const {
|
||
|
|
getFirebaseURL,
|
||
|
|
prepareImageURL,
|
||
|
|
saveURLToFirebase,
|
||
|
|
deleteFirebaseFile,
|
||
|
|
uploadImageToFirebase,
|
||
|
|
processFirebaseAvatar,
|
||
|
|
} = require('./Firebase');
|
||
|
|
const {
|
||
|
|
getLocalFileURL,
|
||
|
|
saveFileFromURL,
|
||
|
|
deleteLocalFile,
|
||
|
|
uploadLocalImage,
|
||
|
|
prepareImagesLocal,
|
||
|
|
processLocalAvatar,
|
||
|
|
} = require('./Local');
|
||
|
|
|
||
|
|
// Firebase Strategy Functions
|
||
|
|
const firebaseStrategy = () => ({
|
||
|
|
// saveFile:
|
||
|
|
saveURL: saveURLToFirebase,
|
||
|
|
getFileURL: getFirebaseURL,
|
||
|
|
deleteFile: deleteFirebaseFile,
|
||
|
|
prepareImagePayload: prepareImageURL,
|
||
|
|
processAvatar: processFirebaseAvatar,
|
||
|
|
handleImageUpload: uploadImageToFirebase,
|
||
|
|
});
|
||
|
|
|
||
|
|
// Local Strategy Functions
|
||
|
|
const localStrategy = () => ({
|
||
|
|
// saveFile: ,
|
||
|
|
saveURL: saveFileFromURL,
|
||
|
|
getFileURL: getLocalFileURL,
|
||
|
|
deleteFile: deleteLocalFile,
|
||
|
|
processAvatar: processLocalAvatar,
|
||
|
|
handleImageUpload: uploadLocalImage,
|
||
|
|
prepareImagePayload: prepareImagesLocal,
|
||
|
|
});
|
||
|
|
|
||
|
|
// Strategy Selector
|
||
|
|
const getStrategyFunctions = (fileSource) => {
|
||
|
|
if (fileSource === FileSources.firebase) {
|
||
|
|
return firebaseStrategy();
|
||
|
|
} else if (fileSource === FileSources.local) {
|
||
|
|
return localStrategy();
|
||
|
|
} else {
|
||
|
|
throw new Error('Invalid file source');
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
module.exports = {
|
||
|
|
getStrategyFunctions,
|
||
|
|
};
|