UNPKG

solarwinds-apm

Version:

OpenTelemetry-based SolarWinds APM library

93 lines (79 loc) 2.29 kB
/* eslint-disable */ "use strict"; var fs = require("fs"); var path = require("path"); var process = require("process"); var log = require("./log"); var RELEASED = require("./timestamp"); var NOW = Date.now(); var YEAR = 1000 * 60 * 60 * 24 * 365; try { if ( typeof process.version !== "string" || process.version.substring(0, 2) === "v0" ) { throw "UPDATE YOUR NODE.JS VERSION IMMEDIATELY."; } // By default assume the Node version is too recent to be in the releases list module.exports = true; var file = require.resolve( "node-releases/data/release-schedule/release-schedule.json" ); var versions = JSON.parse(fs.readFileSync(file, { encoding: "utf8" })); for (var major in versions) { if (process.version.substring(0, major.length) !== major) { continue; } var lts = "lts" in versions[major]; var eol = new Date(versions[major].end); var maintained = NOW - eol <= 0; var supported = RELEASED - eol <= (lts ? YEAR : 0); if (!maintained) { log( "The detected Node.js version (" + process.version + ") has reached End Of Life (" + versions[major].end + ")." ); log( "SolarWinds STRONGLY recommends customers use a non-EOL Node.js version receiving security updates." ); } if (!supported) { log( "The application will not be instrumented to avoid potential compatibility issues." ); } module.exports = supported; break; } } catch (error) { log(error); module.exports = false; } try { var node = process.versions.node; log("Node.js " + node); var solarwinds = JSON.parse( fs.readFileSync(path.join(__dirname, "../../package.json"), { encoding: "utf8" }) ).version; log("solarwinds-apm " + solarwinds); function logVersion(module) { var dir = require.resolve(module); while (!dir.endsWith(module)) { dir = path.dirname(dir); } var version = JSON.parse( fs.readFileSync(path.join(dir, "package.json"), { encoding: "utf8" }) ).version; log(module + " " + version); } logVersion("@opentelemetry/api"); logVersion("@opentelemetry/core"); logVersion("@opentelemetry/instrumentation"); } catch (_error) {}