medusa-plugin-imagekit
Version:
Imagekit file connector for Medusa v2
80 lines • 7.17 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"));
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvZmlsZS1pbWFnZWtpdC9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLHFEQUFnRztBQUVoRyx3REFBZ0M7QUFRaEMsTUFBYSxtQkFBb0IsU0FBUSxtQ0FBMkI7SUFNbEUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUF3QjtRQUM3QyxJQUFJLENBQUMsSUFBQSxpQkFBUyxFQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsMkRBQTJELENBQUMsQ0FBQTtRQUNoRyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUEsaUJBQVMsRUFBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLDREQUE0RCxDQUFDLENBQUE7UUFDakcsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFBLGlCQUFTLEVBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDbkMsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSw0REFBNEQsQ0FBQyxDQUFBO1FBQ2pHLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFDRSxFQUFFLE1BQU0sRUFBd0IsRUFDaEMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFtQjtRQUV6RSxLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDeEUsSUFBSSxTQUFTLElBQUksU0FBUyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFBO1FBQy9CLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksa0JBQVEsQ0FBQztZQUM1QixTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTO1lBQ2pDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVU7WUFDbkMsV0FBVyxFQUFFLDBCQUEwQixVQUFVLEdBQUc7U0FDckQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELEtBQUssQ0FBQyxNQUFNLENBQ1YsSUFBcUM7UUFHckMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsTUFBTSxJQUFJLG1CQUFXLENBQUMsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLENBQUE7UUFDM0UsQ0FBQztRQUNELElBQUksQ0FBQztZQUNILE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUVwRCxvREFBb0Q7WUFDcEQsK0NBQStDO1lBRS9DLE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUV2RSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7Z0JBQ2xELFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsTUFBTTthQUNQLENBQUMsQ0FBQTtZQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUE7WUFFMUMsSUFBSSxNQUFNLEdBQUcsR0FBRyxDQUFDO1lBQ2pCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxXQUFXLENBQUMsQ0FBQTtZQUNwRCxDQUFDO1lBRUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3RDLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLG1CQUFXLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQzVELENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUEwRTtRQUVyRixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxRSxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxtQkFBVyxDQUFDLHVCQUF1QixFQUFFLGlDQUFpQyxDQUFDLENBQUE7UUFDbkYsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsdUJBQXVCLENBQUMsRUFBRSxPQUFPLEVBQWdDO1FBRXJFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWxFLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7WUFDekMsSUFBSSxFQUFFLFFBQVE7WUFDZCxNQUFNLEVBQUUsSUFBSTtZQUNaLGFBQWEsRUFBRSxPQUFPO1NBQ3ZCLENBQUMsQ0FBQTtRQUVGLE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7O0FBaEdILGtEQWlHQztBQWhHUSw4QkFBVSxHQUFHLGVBQWUsQ0FBQyJ9