@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
JavaScript
;
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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