@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
90 lines (89 loc) • 6.79 kB
TypeScript
import { BaseModel } from './BaseModel';
import { ModelMap } from './ModelMap';
import { SourceFileMetaData, AggregatedSourceNodeMetaData } from './SourceFileMetaData';
import { SourceNodeGraph } from './SourceNodeGraph';
import { Report } from './Report';
import { ProjectReport } from './ProjectReport';
import { ModuleReport } from './ModuleReport';
import { SensorValues } from './SensorValues';
import { PathIndex } from './indices/PathIndex';
import { GlobalIndex } from './indices/GlobalIndex';
import { ModuleIndex } from './indices/ModuleIndex';
import { UnifiedPath } from '../system/UnifiedPath';
import { LangInternalPath_string, SourceFileMetaDataTreeType, ISourceFileMetaDataTree, NodeModuleIdentifier_string, PathID_number, UnifiedPathPart_string } from '../types';
type UnifiedPathOnlyForPathNode<T> = T extends SourceFileMetaDataTreeType.File | SourceFileMetaDataTreeType.Directory | SourceFileMetaDataTreeType.Module ? UnifiedPath : undefined;
type IndexTypeMap = {
[]: ModuleIndex;
[]: ModuleIndex;
[]: PathIndex;
[]: GlobalIndex;
};
type IndexPerType<T extends SourceFileMetaDataTreeType> = IndexTypeMap[T];
type LinkedMetaData = {
internReportID: number;
sourceFileMetaData: SourceFileMetaData;
};
export declare class SourceFileMetaDataTree<T extends SourceFileMetaDataTreeType> extends BaseModel {
private _headlessSensorValues?;
private _aggregatedLangInternalSourceNodeMetaData?;
private _aggregatedInternSourceMetaData?;
private _aggregatedExternSourceMetaData?;
type: T;
filePath: UnifiedPathOnlyForPathNode<T>;
private _langInternalChildren?;
private _internChildren?;
private _externChildren?;
linkedMetaData?: LinkedMetaData;
index: IndexPerType<T>;
constructor(type: T, filePath: UnifiedPathOnlyForPathNode<T>, index: IndexPerType<T>);
globalIndex(): GlobalIndex;
static isRootNode(data: SourceFileMetaDataTree<SourceFileMetaDataTreeType> | ISourceFileMetaDataTree<SourceFileMetaDataTreeType>): data is SourceFileMetaDataTree<SourceFileMetaDataTreeType.Root>;
static isFileNode(data: SourceFileMetaDataTree<SourceFileMetaDataTreeType> | ISourceFileMetaDataTree<SourceFileMetaDataTreeType>): data is SourceFileMetaDataTree<SourceFileMetaDataTreeType.File>;
static isDirectoryNode(data: SourceFileMetaDataTree<SourceFileMetaDataTreeType> | ISourceFileMetaDataTree<SourceFileMetaDataTreeType>): data is SourceFileMetaDataTree<SourceFileMetaDataTreeType.Directory>;
static isModuleNode(data: SourceFileMetaDataTree<SourceFileMetaDataTreeType> | ISourceFileMetaDataTree<SourceFileMetaDataTreeType>): data is SourceFileMetaDataTree<SourceFileMetaDataTreeType.Module>;
isRoot(): this is SourceFileMetaDataTree<SourceFileMetaDataTreeType.Root>;
isFile(): this is SourceFileMetaDataTree<SourceFileMetaDataTreeType.File>;
isDirectory(): this is SourceFileMetaDataTree<SourceFileMetaDataTreeType.Directory>;
isModule(): this is SourceFileMetaDataTree<SourceFileMetaDataTreeType.Module>;
get headlessSensorValues(): SensorValues;
set headlessSensorValues(value: SensorValues);
get aggregatedLangInternalSourceNodeMetaData(): AggregatedSourceNodeMetaData;
get aggregatedInternSourceMetaData(): AggregatedSourceNodeMetaData;
get aggregatedExternSourceMetaData(): AggregatedSourceNodeMetaData;
get totalAggregatedSourceMetaData(): AggregatedSourceNodeMetaData;
get langInternalChildren(): ModelMap<LangInternalPath_string, SourceFileMetaDataTree<SourceFileMetaDataTreeType.File>>;
get internChildren(): ModelMap<UnifiedPathPart_string, SourceFileMetaDataTree<SourceFileMetaDataTreeType.Directory | SourceFileMetaDataTreeType.File>>;
get externChildren(): ModelMap<NodeModuleIdentifier_string, SourceFileMetaDataTree<SourceFileMetaDataTreeType.Module>>;
storeToFile(filePath: UnifiedPath, kind?: 'pretty-json' | 'json'): void;
validate(): void;
toJSON(): ISourceFileMetaDataTree<T>;
static fromJSON<T extends SourceFileMetaDataTreeType>(json: string | ISourceFileMetaDataTree<T>, type: T, indexFromParent: T extends SourceFileMetaDataTreeType.Root ? undefined : IndexPerType<T>): SourceFileMetaDataTree<T>;
static loadFromFile(filePath: UnifiedPath): SourceFileMetaDataTree<SourceFileMetaDataTreeType.Root> | undefined;
addToAggregatedLangInternalSourceNodeMetaDataOfTree(aggregatedSourceNodeMetaData: AggregatedSourceNodeMetaData): void;
addToAggregatedInternSourceNodeMetaDataOfTree(aggregatedSourceNodeMetaData: AggregatedSourceNodeMetaData): void;
addToAggregatedExternSourceNodeMetaDataOfTree(aggregatedSourceNodeMetaData: AggregatedSourceNodeMetaData): void;
static fromProjectReport(projectReport: ProjectReport): SourceFileMetaDataTree<SourceFileMetaDataTreeType.Root>;
insertLangInternalPath(internReportID: number, langInternalPath: LangInternalPath_string, aggregatedSourceNodeMetaData: AggregatedSourceNodeMetaData, sourceFileMetaData: SourceFileMetaData): SourceFileMetaDataTree<SourceFileMetaDataTreeType.File>;
insertPath(internReportID: number, filePathParts: UnifiedPathPart_string[], aggregatedSourceNodeMetaData: AggregatedSourceNodeMetaData, sourceFileMetaData: SourceFileMetaData): SourceFileMetaDataTree<SourceFileMetaDataTreeType.File | SourceFileMetaDataTreeType.Directory>;
addExternReport(sourceNodeGraph: SourceNodeGraph, moduleReport: ModuleReport, index: ModuleIndex): void;
addInternReport(sourceNodeGraph: SourceNodeGraph, report: Report): void;
addProjectReport(projectReport: ProjectReport): void;
_mergeReferences(...references: ModelMap<PathID_number, SensorValues>[]): ModelMap<PathID_number, SensorValues>;
filter(sourceNodeGraph: SourceNodeGraph, includedFilterPathString: string | undefined, excludedFilterPathString: string | undefined): {
node: SourceFileMetaDataTree<T> | null;
sensorValues?: SensorValues;
internReferences: ModelMap<PathID_number, SensorValues>;
externReferences: ModelMap<PathID_number, SensorValues>;
langInternalReferences: ModelMap<PathID_number, SensorValues>;
containsFiles: Set<PathID_number>;
};
_filter(sourceNodeGraph: SourceNodeGraph, filterPaths: (pathIndex: PathIndex) => boolean, filterReferences: (references: ModelMap<PathID_number, SensorValues>) => void): {
node: SourceFileMetaDataTree<T> | null;
sensorValues?: SensorValues;
internReferences: ModelMap<PathID_number, SensorValues>;
externReferences: ModelMap<PathID_number, SensorValues>;
langInternalReferences: ModelMap<PathID_number, SensorValues>;
containsFiles: Set<PathID_number>;
};
}
export {};