UNPKG

payload-plugin-cloud-storage

Version:

Remote storage plugin for Payload CMS.

39 lines (38 loc) 1.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const uploadHook = (adapter) => { const beforeChange = async (args) => { var _a; const { req, data } = args; if ((_a = req === null || req === void 0 ? void 0 : req.files) === null || _a === void 0 ? void 0 : _a.file) { let uploadedFile; if (Array.isArray(req.files.file)) { uploadedFile = req.files.file[0]; } else { uploadedFile = req.files.file; } const resizedBuffers = req.payloadUploadSizes ? Object.keys(req.payloadUploadSizes) .map(uploadSize => { var _a, _b, _c; const name = (_b = (_a = data === null || data === void 0 ? void 0 : data.sizes) === null || _a === void 0 ? void 0 : _a[uploadSize]) === null || _b === void 0 ? void 0 : _b.filename; const mimetype = uploadedFile === null || uploadedFile === void 0 ? void 0 : uploadedFile.mimetype; const buffer = (_c = req === null || req === void 0 ? void 0 : req.payloadUploadSizes) === null || _c === void 0 ? void 0 : _c[uploadSize]; if (name && mimetype && buffer) { return adapter.upload({ name, data: buffer, mimetype: mimetype }); } return null; }) .filter(buffer => buffer !== null) : []; await Promise.all([adapter.upload(uploadedFile), ...resizedBuffers]); } }; return beforeChange; }; exports.default = uploadHook;