UNPKG

medusa-plugin-imagekit

Version:
80 lines 7.17 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")); 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 = `${uuidv4()}.${extension}`; const folder = (this._option.folder || '/medusa').replace(/\/$/ig, ''); const { fileId, url } = await this._imagekit.upload({ fileName: file.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvZmlsZS1pbWFnZWtpdC9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLHFEQUFnRztBQUVoRyx3REFBZ0M7QUFRaEMsTUFBYSxtQkFBb0IsU0FBUSxtQ0FBMkI7SUFNbEUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUF3QjtRQUM3QyxJQUFJLENBQUMsSUFBQSxpQkFBUyxFQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsMkRBQTJELENBQUMsQ0FBQTtRQUNoRyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUEsaUJBQVMsRUFBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLDREQUE0RCxDQUFDLENBQUE7UUFDakcsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFBLGlCQUFTLEVBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDbkMsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSw0REFBNEQsQ0FBQyxDQUFBO1FBQ2pHLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFDRSxFQUFFLE1BQU0sRUFBd0IsRUFDaEMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFtQjtRQUV6RSxLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVB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