UNPKG

medusa-plugin-imagekit

Version:
81 lines 7.33 kB
"use strict"; 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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