flink-sql-language-server
Version:
A LSP-based language server for Apache Flink SQL
58 lines (57 loc) • 1.48 kB
TypeScript
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;