UNPKG

@pnpm/file-reporter

Version:
69 lines 2.48 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const path_1 = __importDefault(require("path")); const graceful_fs_1 = __importDefault(require("graceful-fs")); const LOG_FILENAME = 'node_modules/.pnpm-debug.log'; function default_1(streamParser) { const logs = []; streamParser['on']('data', function (logObj) { if (isUsefulLog(logObj)) { logs.push(logObj); } }); process.on('exit', (code) => { if (code === 0 || global['writeDebugLogFile'] === false) { // it might not exist, so it is OK if it fails try { graceful_fs_1.default.unlinkSync(LOG_FILENAME); } catch (err) { } return; } const prettyLogs = getPrettyLogs(); const jsonLogs = JSON.stringify(prettyLogs, null, 2); // Don't create a node_modules directory if it does not exist const dest = graceful_fs_1.default.existsSync(path_1.default.dirname(LOG_FILENAME)) ? LOG_FILENAME : path_1.default.basename(LOG_FILENAME); graceful_fs_1.default.writeFileSync(dest, jsonLogs, 'utf-8'); }); function getPrettyLogs() { const prettyLogs = {}; logs.forEach((logObj, i) => { // eslint-disable-next-line const key = `${i} ${logObj['level']} ${logObj['name']}`; const msgobj = getMessageObj(logObj); prettyLogs[key] = prettify(msgobj); }); return prettyLogs; } function getMessageObj(logobj) { const msgobj = {}; for (const key in logobj) { if (['time', 'hostname', 'pid', 'level', 'name'].includes(key)) continue; msgobj[key] = logobj[key]; } return msgobj; } function prettify(obj) { if (obj instanceof Error) { let logMsg = obj.toString(); if (obj.stack) { logMsg += `\n${obj.stack}`; } return logMsg; } if (Object.keys(obj).length === 1 && obj['message']) return obj['message']; return obj; } } exports.default = default_1; function isUsefulLog(logObj) { return logObj['name'] !== 'pnpm:progress' || logObj['status'] !== 'downloading'; } //# sourceMappingURL=index.js.map