35 lines
No EOL
2 KiB
JavaScript
35 lines
No EOL
2 KiB
JavaScript
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.uploadMinutes = exports.uploadLogo = exports.uploadPhoto = exports.uploadHeadshot = void 0;
|
|
const multer_1 = __importDefault(require("multer"));
|
|
const path_1 = __importDefault(require("path"));
|
|
const fs_1 = __importDefault(require("fs"));
|
|
const uploadsBase = path_1.default.join(__dirname, '../../../uploads');
|
|
function storageFor(subdir) {
|
|
return multer_1.default.diskStorage({
|
|
destination: (_req, _file, cb) => {
|
|
const dir = path_1.default.join(uploadsBase, subdir);
|
|
fs_1.default.mkdirSync(dir, { recursive: true });
|
|
cb(null, dir);
|
|
},
|
|
filename: (_req, file, cb) => {
|
|
const unique = `${Date.now()}-${Math.round(Math.random() * 1e6)}`;
|
|
cb(null, unique + path_1.default.extname(file.originalname));
|
|
},
|
|
});
|
|
}
|
|
const imageFilter = (_req, file, cb) => {
|
|
const allowed = /jpeg|jpg|png|gif|webp/;
|
|
cb(null, allowed.test(path_1.default.extname(file.originalname).toLowerCase()) && allowed.test(file.mimetype));
|
|
};
|
|
const pdfFilter = (_req, file, cb) => {
|
|
cb(null, file.mimetype === 'application/pdf' || path_1.default.extname(file.originalname).toLowerCase() === '.pdf');
|
|
};
|
|
exports.uploadHeadshot = (0, multer_1.default)({ storage: storageFor('headshots'), fileFilter: imageFilter, limits: { fileSize: 5 * 1024 * 1024 } });
|
|
exports.uploadPhoto = (0, multer_1.default)({ storage: storageFor('photos'), fileFilter: imageFilter, limits: { fileSize: 10 * 1024 * 1024 } });
|
|
exports.uploadLogo = (0, multer_1.default)({ storage: storageFor('sponsors'), fileFilter: imageFilter, limits: { fileSize: 5 * 1024 * 1024 } });
|
|
exports.uploadMinutes = (0, multer_1.default)({ storage: storageFor('minutes'), fileFilter: pdfFilter, limits: { fileSize: 20 * 1024 * 1024 } });
|
|
//# sourceMappingURL=upload.js.map
|