UNPKG

backtrace-node

Version:
89 lines 3.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var fs = tslib_1.__importStar(require("fs")); var path = tslib_1.__importStar(require("path")); var os = tslib_1.__importStar(require("os")); var backtraceReport_1 = require("../model/backtraceReport"); var application_1 = require("../const/application"); /** * Read module dependencies */ function readModuleDependencies(modulePath) { if (!modulePath) { return undefined; } var packageJson = require(modulePath); return { requestedVersions: packageJson.dependencies || packageJson.peerDependencies || packageJson.devDependencies, devDependencies: packageJson.devDependencies, }; } exports.readModuleDependencies = readModuleDependencies; function readModule(root, depth) { if (depth === void 0) { depth = 10; } if (depth < 0) { return readLibModule(); } if (!root) { root = process.cwd(); } // solve problem when root module doesn't exists if (!fs.existsSync(root)) { return readParentDir(root, depth); } var filePath = fs.lstatSync(root).isFile(); if (filePath) { root = path.dirname(root); } var modulePredictedPath = path.join(root, 'package.json'); var exists = fs.existsSync(modulePredictedPath); if (!exists) { return readParentDir(root, depth); } try { return [require(modulePredictedPath), modulePredictedPath]; } catch (err) { // possible solution that can goes wrong: // * not enough privileges to read module, // * cannot import module // * module not exists return readParentDir(root, depth); } } exports.readModule = readModule; function readLibModule() { console.warn('reading Backtrace module - cannot find correct module'); return require('../../package.json'); } function readParentDir(root, depth) { var parent = path.join(root, '..'); return readModule(parent, --depth); } function readSystemAttributes() { var mem = process.memoryUsage(); var result = { 'process.age': Math.floor(process.uptime()), 'uname.uptime': os.uptime(), 'uname.machine': process.arch, 'uname.version': os.release(), 'uname.sysname': process.platform, 'vm.rss.size': mem.rss, 'gc.heap.total': mem.heapTotal, 'gc.heap.used': mem.heapUsed, 'node.env': process.env.NODE_ENV, 'debug.port': process.debugPort, 'backtrace.version': application_1.VERSION, guid: backtraceReport_1.BacktraceReport.machineId, hostname: os.hostname(), }; var cpus = os.cpus(); if (cpus && cpus.length > 0) { result['cpu.count'] = cpus.length; result['cpu.brand'] = cpus[0].model; } return result; } exports.readSystemAttributes = readSystemAttributes; //# sourceMappingURL=moduleResolver.js.map