Dataflow: {
    create: {
        empty: (
            this: void,
            cleanEnv?: REnvironmentInformation,
            idMap?: AstIdMap,
        ) => DataflowGraphBuilder<DataflowGraphVertexInfo>;
    };
    diffGraphs(
        this: void,
        left: NamedGraph,
        right: NamedGraph,
        config?: Partial<GenericDiffConfiguration>,
    ): GraphDifferenceReport;
    edge: {
        doesNotIncludeType(
            this: void,
            __namedParameters: DfEdgeLike,
            any: EdgeType,
        ): boolean;
        includesType(
            this: void,
            __namedParameters: DfEdgeLike,
            typesToInclude: EdgeType,
        ): boolean;
        name: "DfEdge";
        splitTypes(this: void, __namedParameters: DfEdgeLike): EdgeType[];
        typesToNames(this: void, __namedParameters: DfEdgeLike): Set<EdgeTypeName>;
        typeToName(this: void, type: EdgeType): string;
    };
    graph: typeof DataflowGraph;
    invertGraph(
        this: void,
        graph: DataflowGraph,
        cleanEnv: REnvironmentInformation,
    ): DataflowGraph;
    name: "Dataflow";
    origin: (
        this: void,
        dfg: DataflowGraph,
        id: NodeId,
    ) => undefined | Origin[];
    provenance(
        this: void,
        id: NodeId,
        graph: DataflowGraph,
        consider?: ReadonlySet<NodeId>,
    ): Set<NodeId>;
    provenanceGraph(
        this: void,
        id: NodeId,
        graph: DataflowGraph,
        consider?: ReadonlySet<NodeId>,
    ): DataflowGraph;
    reduceGraph(
        this: void,
        graph: DataflowGraph,
        select: ReadonlySet<NodeId>,
        includeMissingTargets?: boolean,
    ): DataflowGraph;
    resolveGraphCriteria(
        graph: DataflowGraph,
        ctx: ReadOnlyFlowrAnalyzerContext,
        idMap?: AstIdMap,
    ): DataflowGraph;
    views: {
        callGraph: {
            compute(this: void, graph: DataflowGraph): CallGraph;
            computeSubCallGraph(
                this: void,
                graph: CallGraph,
                entryPoints: Set<NodeId>,
            ): CallGraph;
            diffGraphs(
                this: void,
                left: NamedGraph,
                right: NamedGraph,
                config?: Partial<GenericDiffConfiguration>,
            ): GraphDifferenceReport;
            dropTransitiveEdges(this: void, graph: CallGraph): CallGraph;
            invertGraph(
                this: void,
                graph: DataflowGraph,
                cleanEnv: REnvironmentInformation,
            ): DataflowGraph;
            name: "CallGraph";
            reaches(
                this: void,
                from: NodeId,
                to: NodeId,
                graph: DataflowGraph,
                knownReachability?: DefaultMap<NodeId, Set<NodeId>>,
            ): boolean;
            resolveGraphCriteria(
                graph: DataflowGraph,
                ctx: ReadOnlyFlowrAnalyzerContext,
                idMap?: AstIdMap,
            ): DataflowGraph;
            visualize: {
                mermaid: {
                    convert(
                        this: void,
                        config: MermaidGraphConfiguration,
                    ): { mermaid: MermaidGraph; string: string };
                    name: "DataflowMermaid";
                    raw(
                        this: void,
                        graph:
                            | DataflowInformation
                            | DataflowGraph<DataflowGraphVertexInfo, DfEdge>,
                        includeEnvironments?: boolean,
                        mark?: ReadonlySet<NodeId>,
                        simplified?: boolean,
                    ): string;
                    url(
                        this: void,
                        graph:
                            | DataflowInformation
                            | DataflowGraph<DataflowGraphVertexInfo, DfEdge>,
                        includeEnvironments?: boolean,
                        mark?: ReadonlySet<NodeId>,
                        simplified?: boolean,
                    ): string;
                };
                quads: {
                    convert: (
                        graph: DataflowGraph,
                        config: QuadSerializationConfiguration,
                    ) => string;
                };
            };
        };
    };
    visualize: {
        mermaid: {
            convert(
                this: void,
                config: MermaidGraphConfiguration,
            ): { mermaid: MermaidGraph; string: string };
            name: "DataflowMermaid";
            raw(
                this: void,
                graph:
                    | DataflowInformation
                    | DataflowGraph<DataflowGraphVertexInfo, DfEdge>,
                includeEnvironments?: boolean,
                mark?: ReadonlySet<NodeId>,
                simplified?: boolean,
            ): string;
            url(
                this: void,
                graph:
                    | DataflowInformation
                    | DataflowGraph<DataflowGraphVertexInfo, DfEdge>,
                includeEnvironments?: boolean,
                mark?: ReadonlySet<NodeId>,
                simplified?: boolean,
            ): string;
        };
        quads: {
            convert: (
                graph: DataflowGraph,
                config: QuadSerializationConfiguration,
            ) => string;
        };
    };
} = ...

This is the root helper object to work with the DataflowGraph.

  • Dataflow.visualize - for visualization helpers (e.g., rendering the DFG as a mermaid graph),
  • Dataflow.views - for working with specific views of the dataflow graph (e.g., the call graph),
  • Dataflow.edge - for working with the edges in the dataflow graph,

Type declaration