UNPKG

@specs-feup/alpakka

Version:

A Smali/APK source-to-source compiler written in Typescript

43 lines (34 loc) 1.06 kB
import cytoscape from "cytoscape"; import BaseGraph from "./BaseGraph.js"; export type GraphConstructor< D extends BaseGraph.Data, S extends BaseGraph.ScratchData, G extends BaseGraph.Class<D, S>, > = new (node: cytoscape.Core, _d: D, _sd: S) => G; export interface GraphBuilder< D extends BaseGraph.Data, S extends BaseGraph.ScratchData, > { buildData(data: BaseGraph.Data): D; buildScratchData(scratchData: BaseGraph.ScratchData): S; } export interface GraphTypeGuard< D extends BaseGraph.Data, S extends BaseGraph.ScratchData, > { isDataCompatible(data: BaseGraph.Data): data is D; isScratchDataCompatible(sData: BaseGraph.ScratchData): sData is S; } export interface GraphTransformation { apply(graph: BaseGraph.Class): void; } namespace Graph { export const scratchNamespace = "_smali_flow"; export function create(): BaseGraph.Class { return new BaseGraph.Class(cytoscape({})); } export function fromCy(graph: cytoscape.Core): BaseGraph.Class { return new BaseGraph.Class(graph); } } export default Graph;