UNPKG

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
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; }