UNPKG

@oaklean/profiler-core

Version:

Part of the @oaklean suite. It provides all basic functions to work with the `.oak` file format. It allows parsing the `.oak` file format as well as tools for analyzing the measurement values. It also provides all necessary capabilities required for prec

123 lines 9.17 kB
"use strict"; 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 () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.WASM_NODE_MODULE = exports.NodeModule = exports.NodeModuleIdentifierRegex = exports.NodeModuleIdentifierRegexString = exports.NodeModuleVersionRegexString = exports.NodeModuleNameRegexString = void 0; const fs = __importStar(require("fs")); const BaseModel_1 = require("./BaseModel"); const BufferHelper_1 = require("../helper/BufferHelper"); const WASM_NODE_MODULE_NAME = '{wasm}'; exports.NodeModuleNameRegexString = '(?:@[a-z0-9-~][a-z0-9-._~]*\\/)?[a-z0-9-~][a-z0-9-._~]*'; // semver regular expression // License: https://creativecommons.org/licenses/by/3.0/ // source: https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string // changes: all groups were converted to non-capturing groups exports.NodeModuleVersionRegexString = '(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-(?:(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+(?:[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?'; exports.NodeModuleIdentifierRegexString = `(?:${exports.NodeModuleNameRegexString}@${exports.NodeModuleVersionRegexString}|${WASM_NODE_MODULE_NAME}\\@)`; exports.NodeModuleIdentifierRegex = new RegExp(exports.NodeModuleIdentifierRegexString); class NodeModule extends BaseModel_1.BaseModel { constructor(name, version) { super(); this.name = name; this.version = version; } static currentEngineModule() { return NODE_ENGINE_MODULE; } isWasmModule() { return this.name === WASM_NODE_MODULE_NAME; } get identifier() { return `${this.name}@${this.version}`; } static fromIdentifier(identifier) { let name = ''; let version = ''; if (identifier[0] === '@') { ; [name, version] = identifier.slice(1).split('@'); name = '@' + name; } else { ; [name, version] = identifier.split('@'); } if ((!name || !version) && name !== WASM_NODE_MODULE_NAME) { throw new Error('NodeModule.fromIdentifier: invalid format: ' + identifier); } return new NodeModule(name, version); } toJSON() { return { name: this.name, version: this.version }; } static fromJSON(json) { let data; if (typeof json === 'string') { data = JSON.parse(json); } else { data = json; } const result = new NodeModule(data.name, data.version); return result; } static fromNodeModulePath(path) { const packageJsonPath = path.join('package.json'); if (!fs.existsSync(packageJsonPath.toString())) { return undefined; } const packageJson = JSON.parse(fs.readFileSync(packageJsonPath.toString(), 'utf-8')); return new NodeModule(packageJson.name, packageJson.version); } toBuffer() { const nameBuffer = BufferHelper_1.BufferHelper.String2LToBuffer(this.name); const versionBuffer = BufferHelper_1.BufferHelper.String2LToBuffer(this.version); return Buffer.concat([nameBuffer, versionBuffer]); } static consumeFromBuffer(buffer) { const { instance: name, remainingBuffer: newRemainingBuffer } = BufferHelper_1.BufferHelper.String2LFromBuffer(buffer); const { instance: version, remainingBuffer } = BufferHelper_1.BufferHelper.String2LFromBuffer(newRemainingBuffer); return { instance: new NodeModule(name, version), remainingBuffer }; } } exports.NodeModule = NodeModule; const NODE_ENGINE_MODULE = new NodeModule('node', process.versions.node); exports.WASM_NODE_MODULE = new NodeModule(WASM_NODE_MODULE_NAME, ''); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9kZU1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9Ob2RlTW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF3QjtBQUV4QiwyQ0FBdUM7QUFHdkMseURBQXFEO0FBSXJELE1BQU0scUJBQXFCLEdBQUcsUUFBUSxDQUFBO0FBRXpCLFFBQUEseUJBQXlCLEdBQ3JDLHlEQUF5RCxDQUFBO0FBQzFELDRCQUE0QjtBQUM1Qix3REFBd0Q7QUFDeEQscUdBQXFHO0FBQ3JHLDZEQUE2RDtBQUNoRCxRQUFBLDRCQUE0QixHQUN4Qyx5TUFBeU0sQ0FBQTtBQUU3TCxRQUFBLCtCQUErQixHQUFHLE1BQU0saUNBQXlCLElBQUksb0NBQTRCLElBQUkscUJBQXFCLE1BQU0sQ0FBQTtBQUNoSSxRQUFBLHlCQUF5QixHQUFHLElBQUksTUFBTSxDQUNsRCx1Q0FBK0IsQ0FDL0IsQ0FBQTtBQUVELE1BQWEsVUFBVyxTQUFRLHFCQUFTO0lBSXhDLFlBQVksSUFBWSxFQUFFLE9BQWU7UUFDeEMsS0FBSyxFQUFFLENBQUE7UUFDUCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtJQUN2QixDQUFDO0lBRUQsTUFBTSxDQUFDLG1CQUFtQjtRQUN6QixPQUFPLGtCQUFrQixDQUFBO0lBQzFCLENBQUM7SUFFRCxZQUFZO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLHFCQUFxQixDQUFBO0lBQzNDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDYixPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFpQyxDQUFBO0lBQ3JFLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQXVDO1FBQzVELElBQUksSUFBSSxHQUFHLEVBQUUsQ0FB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