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

101 lines 9.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SourceNodeIndex = void 0; const BaseModel_1 = require("../BaseModel"); const ModelMap_1 = require("../ModelMap"); const GlobalIdentifier_1 = require("../../system/GlobalIdentifier"); const SourceNodeIdentifierHelper_1 = require("../../helper/SourceNodeIdentifierHelper"); // Types const types_1 = require("../../types"); class SourceNodeIndex extends BaseModel_1.BaseModel { constructor(identifier, pathIndex, type, id) { super(); // make selfAssignId only available for instances of type SourceNodeIndex<SourceNodeIndexType.SourceNode> this.selfAssignId = (() => { if (!this.isSourceNode()) { throw new Error('SourceNodeIndex.selfAssignId: can only be called on a SourceNodeIndex of type SourceNode'); } const self = this; self._id = this.pathIndex.moduleIndex.globalIndex.newId(this, 'sourceNode'); self.pathIndex.addToSourceNodeMap(this); return this._id; // eslint-disable-next-line @typescript-eslint/no-explicit-any }); this.identifier = identifier; this.pathIndex = pathIndex; this.type = type; this._id = (this.isSourceNode() ? id === undefined ? this.selfAssignId() : id : undefined); } get presentInOriginalSourceCode() { return this._notPresentInOriginalSourceCode === undefined ? true : false; } set presentInOriginalSourceCode(v) { this._notPresentInOriginalSourceCode = v === true ? undefined : true; } get functionName() { if (this._functionName === undefined) { const parts = SourceNodeIdentifierHelper_1.SourceNodeIdentifierHelper.split(this.identifier); const parsed = SourceNodeIdentifierHelper_1.SourceNodeIdentifierHelper.parseSourceNodeIdentifierPart(parts[parts.length - 1]); this._functionName = parsed ? parsed.name : this.identifier; } return this._functionName; } insertToOtherIndex(globalIndex) { const newPathIndex = this.pathIndex.insertToOtherIndex(globalIndex); return newPathIndex.getSourceNodeIndex('upsert', this.identifier); } toBuffer() { throw new Error('SourceNodeIndex.toBuffer: not yet implemented'); } isSourceNode() { return this.type === types_1.SourceNodeIndexType.SourceNode; } get id() { return this._id; } toJSON() { var _a; const presentInOriginalSourceCode = this.presentInOriginalSourceCode ? {} : { npiosc: true }; return Object.assign(Object.assign({ id: this.id }, presentInOriginalSourceCode), { children: (_a = this.children) === null || _a === void 0 ? void 0 : _a.toJSON() }); } static fromJSON(json, sourceNodeParts, pathIndex, type) { let data; if (typeof json === 'string') { data = JSON.parse(json); } else { data = json; } const result = new SourceNodeIndex(SourceNodeIdentifierHelper_1.SourceNodeIdentifierHelper.join(sourceNodeParts), pathIndex, type, data.id); result.presentInOriginalSourceCode = data.npiosc === undefined ? true : false; if (result.isSourceNode()) { result.pathIndex.addToSourceNodeMap(result); result.pathIndex.moduleIndex.globalIndex.setReverseIndex(result.id, result, 'sourceNode'); } if (data.children) { result.children = new ModelMap_1.ModelMap('string'); for (const key of Object.keys(data.children)) { result.children.set(key, SourceNodeIndex.fromJSON(data.children[key], [...sourceNodeParts, key], pathIndex, data.children[key].id !== undefined ? types_1.SourceNodeIndexType.SourceNode : types_1.SourceNodeIndexType.Intermediate)); } } return result; } globalIdentifier() { const isLangInternal = this.pathIndex.moduleIndex === this.pathIndex.moduleIndex.globalIndex.getLangInternalIndex('get'); return new GlobalIdentifier_1.GlobalIdentifier(this.pathIndex.identifier, this.identifier, isLangInternal ? this.pathIndex.moduleIndex.globalIndex.engineModule : this.pathIndex.moduleIndex.nodeModule()); } } exports.SourceNodeIndex = SourceNodeIndex; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU291cmNlTm9kZUluZGV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21vZGVsL2luZGljZXMvU291cmNlTm9kZUluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLDRDQUF3QztBQUN4QywwQ0FBc0M7QUFDdEMsb0VBQWdFO0FBQ2hFLHdGQUFvRjtBQUNwRixRQUFRO0FBQ1IsdUNBU29CO0FBRXBCLE1BQWEsZUFBK0MsU0FBUSxxQkFBUztJQWM1RSxZQUNDLFVBRTBDLEVBQzFDLFNBQW9CLEVBQ3BCLElBQU8sRUFDUCxFQUF5QjtRQUV6QixLQUFLLEVBQUUsQ0FBQTtRQWlEUix5R0FBeUc7UUFDekcsaUJBQVksR0FFRCxDQUFDLEdBQUcsRUFBRTtZQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7Z0JBQzFCLE1BQU0sSUFBSSxLQUFLLENBQ2QsMEZBQTBGLENBQzFGLENBQUE7WUFDRixDQUFDO1lBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBdUQsQ0FBQTtZQUNwRSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQ3RELElBQXVELEVBQ3ZELFlBQVksQ0FDVyxDQUFBO1lBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDdkMsT0FBTyxJQUFJLENBQUMsR0FBMkIsQ0FBQTtZQUN2Qyw4REFBOEQ7UUFDL0QsQ0FBQyxDQUFRLENBQUE7UUFqRVIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUE7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUNWLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbEIsQ0FBQyxDQUFDLEVBQUUs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