yogeshs-utilities
Version:
99 lines • 4.26 kB
JavaScript
;
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