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

38 lines (37 loc) 2.44 kB
import { ModuleReport } from './ModuleReport'; import { ProjectReport } from './ProjectReport'; import { SourceNodeMetaData } from './SourceNodeMetaData'; import { ModelMap } from './ModelMap'; import { ModelSet } from './ModelSet'; import { GlobalIndex } from './indices/GlobalIndex'; import { SourceNodeID_number, SourceNodeMetaDataType, SourceNodeMetaDataType_Node, SourceNodeMetaDataType_Reference } from '../types'; type ReportID = number; type SourceNodeID_string = `${ReportID}:${SourceNodeID_number}`; type ReferenceMap = ModelMap<SourceNodeID_string, ModelMap<SourceNodeID_string, SourceNodeMetaData<SourceNodeMetaDataType_Reference>>>; export declare class SourceNodeGraph { private _sourceNodes; private _outgoingSum; private _incomingSum; private _outgoingEdges; private _incomingEdges; private _reachabilityCache; constructor(); get sourceNodes(): ModelMap<`${number}:${SourceNodeID_number}`, SourceNodeMetaData<SourceNodeMetaDataType_Node>>; get outgoingEdges(): ReferenceMap; get incomingEdges(): ReferenceMap; outgoingSumOfNode(nodeID: SourceNodeID_string): SourceNodeMetaData<SourceNodeMetaDataType.Aggregate> | undefined; incomingSumOfNode(nodeID: SourceNodeID_string): SourceNodeMetaData<SourceNodeMetaDataType.Aggregate> | undefined; addReferenceEdge(fromReport: ProjectReport | ModuleReport, fromSourceNode: SourceNodeMetaData<SourceNodeMetaDataType_Node>, toReport: ProjectReport | ModuleReport, toSourceNode: SourceNodeMetaData<SourceNodeMetaDataType_Node>, reference: SourceNodeMetaData<SourceNodeMetaDataType_Reference>): void; private insertSourceNode; static fromProjectReport(projectReport: ProjectReport): SourceNodeGraph; static fromReport(report: ProjectReport | ModuleReport, globalIndex: GlobalIndex, graph?: SourceNodeGraph): SourceNodeGraph; toJSON(): { sourceNodes: Record<string | number, unknown> | undefined; outgoingEdges: Record<string | number, unknown> | undefined; incomingEdges: Record<string | number, unknown> | undefined; }; reachabilityForNode(nodeID: SourceNodeID_string): ModelSet<SourceNodeID_string>; dfs(sourceNodeID: SourceNodeID_string, visited: ModelSet<SourceNodeID_string>, reach?: ModelMap<SourceNodeID_string, ModelSet<SourceNodeID_string>>): void; reachability(): ModelMap<`${number}:${SourceNodeID_number}`, ModelSet<`${number}:${SourceNodeID_number}`>>; } export {};