UNPKG

flink-sql-language-server

Version:

A LSP-based language server for Apache Flink SQL

58 lines (57 loc) 1.48 kB
import { Range } from 'vscode-languageserver-textdocument'; export interface Lineage { nodes: Relation[]; edges: LineageEdge[]; } export declare type RelationType = 'table' | 'query' | 'insert' | 'view'; export interface Relation { type: RelationType; id: string; label: string; range?: Range; isSourceOnly?: boolean; isTargetOnly?: boolean; columns: RelationColumn[]; data?: RelationPrimary; } export declare type EdgeType = 'insert' | 'view' | 'create' | 'select' | 'from' | 'where' | 'group by' | 'order by' | 'having' | 'join'; export interface EdgeIdentity { relationId: string; columnId?: string; } export interface LineageEdge { type: 'edge'; id: string; label?: string; source: EdgeIdentity; target: EdgeIdentity; edgeType?: EdgeType; } export interface RelationColumn { id: string; label: string; isAssumed?: boolean; range?: Range; inconsistent?: boolean; type?: string; } export interface LineageOptions { mergeLeaves?: boolean; ignoreDDLs?: boolean; } export interface RelationPrimary { type: RelationType; catalogName?: string; databaseName?: string; relationName: string; alias?: string; range?: Range; } export interface RelationColumnMetadata { id: string; label: string; data?: unknown; } export declare type MetadataProviderFn = (relationPrimary: RelationPrimary) => { columns: RelationColumnMetadata[]; } | undefined;