backtrace-node
Version:
Backtrace error reporting tool
89 lines • 3.03 kB
JavaScript
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
;