@sastatesla/payment-gateway-sdk
Version:
A unified interface for integrating multiple payment providers (e.g., Razorpay, Cashfree) in your Node.js application.
68 lines • 2.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CloudStorage = void 0;
const gcsProvider_1 = require("./providers/gcsProvider");
const s3Provider_1 = require("./providers/s3Provider");
const doSpacesProvider_1 = require("./providers/doSpacesProvider");
const inputParser_1 = require("./utils/inputParser");
class CloudStorage {
constructor(providerInstance) {
this.providerInstance = providerInstance;
}
static init(config) {
const validatedConfig = (0, inputParser_1.parseCloudStorageConfig)(config);
switch (config.provider) {
case "gcs":
return new CloudStorage(
// @ts-ignore
new gcsProvider_1.GCSProvider(config.config, config.allowedFileTypes));
case "s3":
return new CloudStorage(
// @ts-ignore
new s3Provider_1.S3Provider(config.config, config.allowedFileTypes));
case "do-spaces":
return new CloudStorage(
// @ts-ignore
new doSpacesProvider_1.DOSpacesProvider(config.config, config.allowedFileTypes));
// case "cloudinary":
// return new CloudStorage(new CloudinaryProvider(config.config));
default:
throw new Error("Unsupported provider");
}
}
upload(filePath, options) {
return this.providerInstance.upload(filePath, options);
}
uploadBulk(filePaths, options) {
return this.providerInstance.uploadBulk(filePaths, options);
}
delete(fileId) {
return this.providerInstance.delete(fileId);
}
deleteBulk(fileIds) {
return this.providerInstance.deleteBulk(fileIds);
}
createFolder(folderName) {
return this.providerInstance.createFolder(folderName);
}
uploadToFolder(folderName, filePath, options) {
return this.providerInstance.uploadToFolder(folderName, filePath, options);
}
// NEW: Upload a buffer (e.g., from multer memoryStorage)
uploadBuffer(file, options) {
// @ts-ignore
return this.providerInstance.uploadBuffer(file, options);
}
// NEW: Bulk upload for buffers
uploadBulkBuffer(files, options) {
// @ts-ignore
return this.providerInstance.uploadBulkBuffer(files, options);
}
// NEW: Upload buffer to specific folder
uploadBufferToFolder(folderName, file, options) {
// @ts-ignore
return this.providerInstance.uploadBufferToFolder(folderName, file, options);
}
}
exports.CloudStorage = CloudStorage;
//# sourceMappingURL=storage.js.map