medusa-plugin-imagekit
Version:
Imagekit file connector for Medusa v2
81 lines • 7.33 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ImagekitFileService = void 0;
const utils_1 = require("@medusajs/framework/utils");
const imagekit_1 = __importDefault(require("imagekit"));
const uuid_1 = require("uuid");
class ImagekitFileService extends utils_1.AbstractFileProviderService {
static validateOptions(options) {
if (!(0, utils_1.isDefined)(options.publicKey)) {
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Required option `publicKey` is missing in Imagekit plugin");
}
if (!(0, utils_1.isDefined)(options.privateKey)) {
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Required option `privateKey` is missing in Imagekit plugin");
}
if (!(0, utils_1.isDefined)(options.imagekitID)) {
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Required option `imagekitID` is missing in Imagekit plugin");
}
}
constructor({ logger }, { publicKey, privateKey, imagekitID, folder, thumbnail }) {
super();
this._logger = logger;
this._option = { publicKey, privateKey, imagekitID, folder, thumbnail };
if (thumbnail == undefined) {
this._option.thumbnail = true;
}
this._imagekit = new imagekit_1.default({
publicKey: this._option.publicKey,
privateKey: this._option.privateKey,
urlEndpoint: `https://ik.imagekit.io/${imagekitID}/`
});
}
async upload(file) {
if (!file) {
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `No file provided`);
}
try {
const content = Buffer.from(file.content, 'binary');
const extension = file.filename.split('.').pop();
const fileName = `${(0, uuid_1.v4)()}.${extension}`;
const folder = (this._option.folder || '/medusa').replace(/\/$/ig, '');
const { fileId, url } = await this._imagekit.upload({
fileName,
file: content,
folder,
});
this._logger.debug('complate upload \r\n');
let newURL = url;
if (this._option.thumbnail) {
newURL = url.replace(folder, `${folder}/tr:w-300`);
}
return { url: newURL, key: fileId };
}
catch (e) {
throw new utils_1.MedusaError("imagekit.upload.error", e?.message);
}
}
async delete(files) {
if (!Array.isArray(files)) {
await this._imagekit.deleteFile(files.fileKey);
this._logger.debug("complate delete imagekit fileKey:" + files.fileKey);
}
else {
throw new utils_1.MedusaError("imagekit.upload.error", "batch deletion is not supported");
}
}
async getPresignedDownloadUrl({ fileKey }) {
const { filePath } = await this._imagekit.getFileDetails(fileKey);
const signedUrl = await this._imagekit.url({
path: filePath,
signed: true,
expireSeconds: 1296000
});
return signedUrl;
}
}
exports.ImagekitFileService = ImagekitFileService;
ImagekitFileService.identifier = "file-imagekit";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvZmlsZS1pbWFnZWtpdC9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLHFEQUFnRztBQUVoRyx3REFBZ0M7QUFFaEMsK0JBQW1DO0FBUW5DLE1BQWEsbUJBQW9CLFNBQVEsbUNBQTJCO0lBTWxFLE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBd0I7UUFDN0MsSUFBSSxDQUFDLElBQUEsaUJBQVMsRUFBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLDJEQUEyRCxDQUFDLENBQUE7UUFDaEcsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFBLGlCQUFTLEVBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDbkMsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSw0REFBNEQsQ0FBQyxDQUFBO1FBQ2pHLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBQSxpQkFBUyxFQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsNERBQTRELENBQUMsQ0FBQTtRQUNqRyxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQ0UsRUFBRSxNQUFNLEVBQXdCLEVBQ2hDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBbUI7UUFFekUsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFV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