UNPKG

semantic-ds-toolkit

Version:

Performance-first semantic layer for modern data stacks - Stable Column Anchors & intelligent inference

78 lines 2.28 kB
import { SemanticValidationConfig } from './sql-generator'; export interface DbtModelConfig { materialized: 'view' | 'table' | 'incremental' | 'ephemeral'; partition_by?: string; cluster_by?: string[]; pre_hook?: string[]; post_hook?: string[]; tags?: string[]; meta?: Record<string, any>; enabled?: boolean; indexes?: Array<{ columns: string[]; unique?: boolean; type?: string; }>; grants?: Array<{ privilege: string; grantee: string; }>; } export interface DbtTestConfig { unique?: string[]; not_null?: string[]; accepted_values?: Array<{ column: string; values: any[]; }>; relationships?: Array<{ column: string; to: string; field: string; }>; custom_tests?: Array<{ name: string; test: string; }>; } export interface DbtSemanticModel { modelName: string; sql: string; config: DbtModelConfig; tests: DbtTestConfig; documentation: { description: string; columns: Record<string, { description: string; tests?: string[]; meta?: Record<string, any>; }>; }; dependencies: string[]; } export declare class DbtGenerator { private templateEngine; constructor(); generateSemanticValidationModel(config: SemanticValidationConfig, modelConfig?: Partial<DbtModelConfig>, testConfig?: Partial<DbtTestConfig>): DbtSemanticModel; generateModelSQL(config: SemanticValidationConfig, dbtConfig: DbtModelConfig): string; private generateValidationCases; private adaptRuleForDbt; private generateModelTests; private generateDocumentation; generateQuarantineModel(config: SemanticValidationConfig, parentModel: string): DbtSemanticModel; generateDataQualityTests(modelName: string): Array<{ name: string; test: string; severity: 'error' | 'warn'; }>; generateDbtProject(models: DbtSemanticModel[]): { projectYml: string; schemaYml: string; sourcesYml: string; }; private generateSchemaYml; private generateTestsYml; private generateSourcesYml; private getDbtModelTemplate; } //# sourceMappingURL=dbt-generator.d.ts.map