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

77 lines 5.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GlobalIdentifier = void 0; const NodeModule_1 = require("../model/NodeModule"); const SourceNodeRegex_1 = require("../constants/SourceNodeRegex"); const UnifiedPath_1 = require("../system/UnifiedPath"); const UnifiedPathRegex_1 = require("../constants/UnifiedPathRegex"); class GlobalIdentifier { constructor(path, sourceNodeIdentifier, nodeModule) { this.path = path; this.sourceNodeIdentifier = sourceNodeIdentifier; this.nodeModule = nodeModule; } static regexString() { return (`^(${NodeModule_1.NodeModuleIdentifierRegexString}|)` + `{(${UnifiedPathRegex_1.UnifiedPathRegexString}|${SourceNodeRegex_1.LangInternalPathRegexString}|)}` + `(${SourceNodeRegex_1.SourceNodeIdentifierRegexString}|${SourceNodeRegex_1.LangInternalSourceNodeIdentifierRegexString})$`); } static regex() { return new RegExp(GlobalIdentifier.regexString()); } toJSON() { var _a; if (this.nodeModule) { return { nodeModule: (_a = this.nodeModule) === null || _a === void 0 ? void 0 : _a.toJSON(), path: this.path, sourceNodeIdentifier: this.sourceNodeIdentifier }; } else { return { path: this.path, sourceNodeIdentifier: this.sourceNodeIdentifier }; } } get identifier() { const path = this.path ? this.path : ''; if (!this.nodeModule) { return `{${path}}${this.sourceNodeIdentifier}`; } else { return `${this.nodeModule.identifier}{${path}}${this.sourceNodeIdentifier}`; } } isLangInternal() { return GlobalIdentifier.isLangInternalPath(this.path); } static isLangInternalPath(path) { return path === '' || SourceNodeRegex_1.LangInternalPathRegex.test(path); } static fromIdentifier(identifier) { const matches = GlobalIdentifier.regex().exec(identifier); if (!matches) { throw new Error('GlobalIdentifier.fromIdentifier: invalid format: ' + identifier); } const nodeModuleIdentifier = matches[1]; const path = matches[2]; const sourceNodeIdentifier = matches[3]; let preprocessedPath; if (GlobalIdentifier.isLangInternalPath(path)) { preprocessedPath = path; } else { preprocessedPath = new UnifiedPath_1.UnifiedPath(path).toString(); } if (nodeModuleIdentifier === '') { return new GlobalIdentifier(preprocessedPath, sourceNodeIdentifier); } else { return new GlobalIdentifier(preprocessedPath, sourceNodeIdentifier, NodeModule_1.NodeModule.fromIdentifier(nodeModuleIdentifier)); } } } exports.GlobalIdentifier = GlobalIdentifier; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2xvYmFsSWRlbnRpZmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zeXN0ZW0vR2xvYmFsSWRlbnRpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvREFHNEI7QUFDNUIsa0VBS3FDO0FBQ3JDLHVEQUFtRDtBQUNuRCxvRUFBc0U7QUFXdEUsTUFBYSxnQkFBZ0I7SUFLNUIsWUFDQyxJQUFrRCxFQUNsRCxvQkFBaUQsRUFDakQsVUFBdUI7UUFFdkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLG9CQUFvQixDQUFBO1FBQ2hELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFBO0lBQzdCLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVztRQUNqQixPQUFPLENBQ04sS0FBSyw0Q0FBK0IsSUFBSTtZQUN4QyxLQUFLLHlDQUFzQixJQUFJLDZDQUEyQixLQUFLO1lBQy9ELElBQUksaURBQStCLElBQUksNkRBQTJDLElBQUksQ0FDdEYsQ0FBQTtJQUNGLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSztRQUNYLE9BQU8sSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQTtJQUNsRCxDQUFDO0lBRUQsTUFBTTs7UUFDTCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQixPQUFPO2dCQUNOLFVBQVUsRUFBRSxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLE1BQU0sRUFBRTtnQkFDckMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLG9CQUFvQixFQUFFLElBQUksQ0FBQyxvQkFBb0I7YUFDL0MsQ0FBQTtRQUNGLENBQUM7YUFBTSxDQUFDO1lBQ1AsT0FBTztnQkFDTixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2Ysb0JBQW9CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjthQUMvQyxDQUFBO1FBQ0YsQ0FBQztJQUNGLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDYixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN0QixPQUFPLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBdUMsQ0FBQTtRQUNwRixDQUFDO2FBQU0sQ0FBQztZQUNQLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUF1QyxDQUFBO1FBQ2pILENBQUM7SUFDRixDQUFDO0lBRUQsY0FBYztRQUNiLE9BQU8sZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3RELENBQUM7SUFFRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBWTtRQUNyQyxPQUFPLElBQUksS0FBSyxFQUFFLElBQUksdUNBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3ZELENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUNwQixVQUE2QztRQUU3QyxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDekQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FDZCxtREFBbUQsR0FBRyxVQUFVLENBQ2hFLENBQUE7UUFDRixDQUFDO1FBRUQsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDdkMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3ZCLE1BQU0sb0JBQW9CLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRXZDLElBQUksZ0JBQWdCLENBQUE7UUFDcEIsSUFBSSxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQy9DLGdCQUFnQixHQUFHLElBQStCLENBQUE7UUFDbkQsQ0FBQzthQUFNLENBQUM7WUFDUCxnQkFBZ0IsR0FBRyxJQUFJLHlCQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDcEQsQ0FBQztRQUVELElBQUksb0JBQW9CLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDakMsT0FBTyxJQUFJLGdCQUFnQixDQUMxQixnQkFBZ0IsRUFDaEIsb0JBQW1ELENBQ25ELENBQUE7UUFDRixDQUFDO2FBQU0sQ0FBQztZQUNQLE9BQU8sSUFBSSxnQkFBZ0IsQ0FDMUIsZ0JBQWdCLEVBQ2hCLG9CQUFtRCxFQUNuRCx1QkFBVSxDQUFDLGNBQWMsQ0FDeEIsb0JBQW1ELENBQ25ELENBQ0QsQ0FBQTtRQUNGLENBQUM7SUFDRixDQUFDO0NBQ0Q7QUEvRkQsNENBK0ZDIn0=