rawsql-ts
Version:
[beta]High-performance SQL parser and AST analyzer written in TypeScript. Provides fast parsing and advanced transformation capabilities.
40 lines (39 loc) • 1.21 kB
TypeScript
import type { CommentExportMode } from "../types/Formatting";
/**
* Represents a comment with its position relative to a token or component
*/
export interface PositionedComment {
position: 'before' | 'after';
comments: string[];
}
export declare abstract class SqlComponent {
static kind: symbol;
getKind(): symbol;
accept<T>(visitor: SqlComponentVisitor<T>): T;
toSqlString(formatter: SqlComponentVisitor<string>): string;
comments: string[] | null;
positionedComments: PositionedComment[] | null;
/**
* Add comments at a specific position
*/
addPositionedComments(position: 'before' | 'after', comments: string[]): void;
/**
* Get comments for a specific position
*/
getPositionedComments(position: 'before' | 'after'): string[];
/**
* Get all positioned comments as a flat array in order (before, after)
*/
getAllPositionedComments(): string[];
}
export interface SqlComponentVisitor<T> {
visit(expr: SqlComponent): T;
}
export declare class SqlDialectConfiguration {
parameterSymbol: string;
identifierEscape: {
start: string;
end: string;
};
exportComment: CommentExportMode;
}