semantic-ds-toolkit
Version:
Performance-first semantic layer for modern data stacks - Stable Column Anchors & intelligent inference
57 lines • 1.79 kB
TypeScript
export interface TemplateContext {
tableName: string;
viewName: string;
columns: string[];
validationCases: string[];
metadata?: Record<string, any>;
config?: Record<string, any>;
}
export interface CompiledTemplate {
render: (context: TemplateContext) => string;
cacheKey: string;
}
export declare class SQLTemplateEngine {
private templateCache;
private compilationStartTime;
constructor();
compile(template: string, cacheKey?: string): CompiledTemplate;
private compileTemplate;
private resolveVariable;
private generateCacheKey;
private precompileCommonTemplates;
getValidationViewTemplate(): string;
getQuarantineTableTemplate(): string;
getDbtModelTemplate(): string;
getSnowflakeValidationTemplate(): string;
getBigQueryValidationTemplate(): string;
getDuckDBValidationTemplate(): string;
getPostgresValidationTemplate(): string;
clearCache(): void;
getCacheStats(): {
size: number;
keys: string[];
hitRate?: number;
};
}
export interface ValidationCaseTemplate {
generate(rule: any, target: string): string;
}
export declare class ValidationCaseGenerator implements ValidationCaseTemplate {
generate(rule: any, target: string): string;
private adaptConditionForTarget;
}
export declare class TemplatePerformanceMonitor {
private renderTimes;
private compilationTimes;
recordRenderTime(time: number): void;
recordCompilationTime(time: number): void;
getAverageRenderTime(): number;
getPerformanceReport(): {
avgRenderTime: number;
avgCompilationTime: number;
totalRenders: number;
totalCompilations: number;
isPerformant: boolean;
};
}
//# sourceMappingURL=sql-templates.d.ts.map