Shared TypeScript library for the Lightdash platform containing common types, utilities, and business logic for analytics workflows
Overall
score
72%
Evaluation — 72%
↑ 1.09xAgent success when using this tile
Build a TypeScript utility that processes dbt manifest files to extract and analyze model metadata. dbt (data build tool) generates manifest.json files that contain metadata about all models, columns, and their relationships in a data transformation project.
Create a utility with three main functions:
The utility should validate input and provide clear error messages for invalid or malformed files.
@generates
/**
* Parses a dbt manifest file and extracts model metadata
* @param manifestPath - Path to the manifest.json file
* @returns Parsed manifest data with models and metadata
*/
export function parseManifest(manifestPath: string): ManifestData;
/**
* Extracts model information from parsed manifest data
* @param manifestData - Parsed manifest data
* @returns Array of model metadata
*/
export function extractModels(manifestData: ManifestData): ModelInfo[];
/**
* Generates a summary report from model information
* @param models - Array of model metadata
* @returns Summary report object
*/
export function generateSummary(models: ModelInfo[]): SummaryReport;
export interface ManifestData {
nodes: Record<string, any>;
metadata: any;
}
export interface ModelInfo {
name: string;
schema: string;
database: string;
columns: ColumnInfo[];
}
export interface ColumnInfo {
name: string;
dataType: string;
description: string;
}
export interface SummaryReport {
totalModels: number;
modelsBySchema: Record<string, string[]>;
columnCounts: Record<string, number>;
modelsWithMissingDescriptions: string[];
}Provides dbt manifest parsing and type definitions for working with dbt project structures.
@satisfied-by
Install with Tessl CLI
npx tessl i tessl/npm-lightdash--commondocs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
scenario-11
scenario-12
scenario-13
scenario-14
scenario-15
scenario-16
scenario-17
scenario-18
scenario-19
scenario-20