rawsql-ts
Version:
[beta]High-performance SQL parser and AST analyzer written in TypeScript. Provides fast parsing and advanced transformation capabilities.
52 lines (51 loc) • 1.81 kB
TypeScript
import { BaseDataFlowNode, DataSourceNode, ProcessNode, OperationNode, OutputNode } from './DataFlowNode';
import { DataFlowConnection } from './DataFlowEdge';
/**
* Represents the complete data flow graph for a SQL query
*/
export declare class DataFlowGraph {
private nodes;
private edges;
addNode(node: BaseDataFlowNode): void;
addEdge(edge: DataFlowConnection): void;
addConnection(from: string, to: string, label?: string): void;
hasNode(nodeId: string): boolean;
hasConnection(from: string, to: string): boolean;
getNode(nodeId: string): BaseDataFlowNode | undefined;
getAllNodes(): BaseDataFlowNode[];
getAllEdges(): DataFlowConnection[];
/**
* Generates the complete Mermaid flowchart syntax
*/
generateMermaid(direction?: string, title?: string): string;
/**
* Creates or gets a table node
*/
getOrCreateTable(tableName: string): DataSourceNode;
/**
* Creates or gets a CTE node
*/
getOrCreateCTE(cteName: string): DataSourceNode;
/**
* Creates or gets a subquery node
*/
getOrCreateSubquery(alias: string): DataSourceNode;
/**
* Creates a process node (deprecated - kept for backward compatibility)
* Note: Process nodes are no longer used in data flow diagrams
* as we focus only on data sources, joins, and unions
*/
createProcessNode(type: string, context: string): ProcessNode;
/**
* Creates a JOIN operation node
*/
createJoinNode(joinId: string, joinType: string): OperationNode;
/**
* Creates a set operation node (UNION, EXCEPT, etc.)
*/
createSetOperationNode(operationId: string, operation: string): OperationNode;
/**
* Creates an output node
*/
createOutputNode(context?: string): OutputNode;
}