UNPKG

yogeshs-utilities

Version:
99 lines 4.26 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Upload = exports.extractProjectZip = void 0; const multer_1 = __importStar(require("multer")); const path_1 = require("path"); const fs_1 = require("fs"); const unzipper_1 = require("unzipper"); const console_1 = require("console"); let Storage = (0, multer_1.diskStorage)({ destination: function (request, file, cb) { var uploadDirName = request.query.uploadDirName; let rootDir = request.rootDir; if (!rootDir) return cb(null, 'Please provide root directory!'); var uploadPath = (0, path_1.join)(rootDir, uploadDirName); if (!(0, fs_1.existsSync)(uploadPath)) { (0, fs_1.mkdirSync)(uploadPath); } cb(null, uploadPath); }, filename: function (request, file, cb) { var extension = (0, path_1.extname)(file.originalname); var fileName = (0, path_1.basename)(file.originalname, (0, path_1.extname)(file.originalname)); var renameFileName = `${fileName}${extension}`; var uploadDirName = request.query.uploadDirName; let rootDir = request.rootDir; if (!rootDir) return cb(null, 'Please provide root directory!'); var uploadPath = (0, path_1.join)(rootDir, uploadDirName); var completePath = (0, path_1.join)(uploadPath, renameFileName); request.uploadDetails = request.uploadDetails || {}; request.uploadDetails = { fileName: renameFileName, uploadPath: uploadPath, completePath: completePath, fileSize: file.size }; cb(null, renameFileName); } }); function fileFilter(req, file, cb) { cb(null, true); } const Upload = (0, multer_1.default)({ storage: Storage, limits: { fileSize: 50000000 }, fileFilter: fileFilter, dest: (0, path_1.join)(__dirname, '../', "uploads") }).array("uploads", 2); exports.Upload = Upload; const extractProjectZip = function (projectMaster) { return new Promise((res, reject) => { var srcPath = projectMaster.uploadDetails.uploadPath; var extension = (0, path_1.extname)(projectMaster.uploadDetails.fileName); var dirName = (0, path_1.basename)(projectMaster.uploadDetails.fileName, extension); var extractPath = (0, path_1.resolve)((0, path_1.join)(srcPath, "../", "extracted-projects", dirName)); if (!(0, fs_1.existsSync)(extractPath)) (0, fs_1.mkdirSync)(extractPath); (0, fs_1.createReadStream)(projectMaster.uploadDetails.completePath).pipe((0, unzipper_1.Extract)({ path: extractPath }).on("end", () => { (0, console_1.log)("Zip extracted end successfully at path: ", extractPath); }).on("finish", () => { (0, console_1.log)("Zip extracted finished successfully at path: ", extractPath); res(extractPath); }).on("error", () => { reject({ message: "Error occurred while extracting .zip", code: 'extraction-500', extractPath }); })); }); }; exports.extractProjectZip = extractProjectZip; //# sourceMappingURL=multer-config.js.map