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

105 lines 8.12 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 (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); 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"); 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}`; 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 new NodeModule('node', process.versions.node); } 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) { 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; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9kZU1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9Ob2RlTW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdUNBQXdCO0FBRXhCLDJDQUF1QztBQUd2Qyx5REFBcUQ7QUFPeEMsUUFBQSx5QkFBeUIsR0FBRyx5REFBeUQsQ0FBQTtBQUNsRyw0QkFBNEI7QUFDNUIsd0RBQXdEO0FBQ3hELHFHQUFxRztBQUNyRyw2REFBNkQ7QUFDaEQsUUFBQSw0QkFBNEIsR0FDekMseU1BQXlNLENBQUE7QUFFNUwsUUFBQSwrQkFBK0IsR0FBRyxHQUFHLGlDQUF5QixJQUFJLG9DQUE0QixFQUFFLENBQUE7QUFDaEcsUUFBQSx5QkFBeUIsR0FBRyxJQUFJLE1BQU0sQ0FBQyx1Q0FBK0IsQ0FBQyxDQUFBO0FBRXBGLE1BQWEsVUFBVyxTQUFRLHFCQUFTO0lBSXhDLFlBQ0MsSUFBWSxFQUNaLE9BQWU7UUFFZixLQUFLLEVBQUUsQ0FBQTtRQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO0lBQ3ZCLENBQUM7SUFFRCxNQUFNLENBQUMsbUJBQW1CO1FBQ3pCLE9BQU8sSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUVELElBQUksVUFBVTtRQUNiLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQWlDLENBQUE7SUFDckUsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBdUM7UUFDNUQsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFBO1FBQ2IsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFBO1FBQ2hCLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQzNCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ2hELElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFBO1FBQ2xCLENBQUM7YUFBTSxDQUFDO1lBQ1AsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN4QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLEdBQUcsVUFBVSxDQUFDLENBQUE7UUFDNUUsQ0FBQztRQUVELE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ3JDLENBQUM7SUFFRCxNQUFNO1FBQ0wsT0FBTztZQUNOLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUNyQixDQUFBO0lBQ0YsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBMEI7UUFDekMsSUFBSSxJQUFpQixDQUFBO1FBQ3JCLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUIsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDeEIsQ0FBQzthQUFNLENBQUM7WUFDUCxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBQ1osQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3RELE9BQU8sTUFBTSxDQUFBO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFpQjtRQUMxQyxNQUFNLGVBQWUsR0FBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUU5RCxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2hELE9BQU8sU0FBUyxDQUFBO1FBQ2pCLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7UUFFcEYsT0FBTyxJQUFJLFVBQVUsQ0FDcEIsV0FBVyxDQUFDLElBQUksRUFDaEIsV0FBVyxDQUFDLE9BQU8sQ0FDbkIsQ0FBQTtJQUNGLENBQUM7SUFFRCxRQUFRO1FBQ1AsTUFBTSxVQUFVLEdBQUcsMkJBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDM0QsTUFBTSxhQUFhLEdBQUcsMkJBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFFakUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxNQUFjO1FBSXRDLE1BQU0sRUFDTCxRQUFRLEVBQUUsSUFBSSxFQUNkLGVBQWUsRUFBRSxrQkFBa0IsRUFDbkMsR0FBRywyQkFBWSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzNDLE1BQU0sRUFDTCxRQUFRLEVBQUUsT0FBTyxFQUNqQixlQUFlLEVBQ2YsR0FBRywyQkFBWSxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFFdkQsT0FBTztZQUNOLFFBQVEsRUFBRSxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDO1lBQ3ZDLGVBQWU7U0FDZixDQUFBO0lBQ0YsQ0FBQztDQUNEO0FBaEdELGdDQWdHQyJ9