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
{
"context": "This criteria evaluates how well the engineer uses @lightdash/common's parameter handling utilities to extract parameter references from SQL strings and validate parameter names. The focus is on correct usage of regex patterns, parameter extraction functions, and validation utilities provided by the package.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Regex Pattern Usage",
"description": "Uses a regex pattern that correctly matches the parameter syntax `${lightdash.parameters.param_name}` or `${ld.parameters.param_name}` with support for both project-level (single name) and model-level (name.name) parameters. The pattern should use capture groups to extract the parameter name.",
"max_score": 20
},
{
"name": "Parameter Extraction Logic",
"description": "Implements getParameterReferences to extract all parameter references from SQL strings using the regex pattern. The function should use String.match() or RegExp.exec() to find matches and extract parameter names from capture groups.",
"max_score": 20
},
{
"name": "Deduplication Implementation",
"description": "Deduplicates parameter names using Set or equivalent mechanism to ensure each parameter name appears only once in the returned array, even if referenced multiple times in the SQL.",
"max_score": 15
},
{
"name": "Empty Result Handling",
"description": "Correctly handles cases where no parameters are found by returning an empty array, checking for null/undefined match results before processing.",
"max_score": 10
},
{
"name": "Validation Pattern",
"description": "Uses a regex pattern for validateParameterNames that accepts alphanumeric characters, underscores, and hyphens: /^[a-zA-Z0-9_-]+$/. The pattern should reject dots, spaces, and other special characters.",
"max_score": 15
},
{
"name": "Validation Logic",
"description": "Implements validateParameterNames to filter parameter names against the validation pattern using RegExp.test() or String.match(). Returns both the isInvalid boolean flag and the array of invalid parameter names.",
"max_score": 15
},
{
"name": "Edge Case Handling",
"description": "Handles edge cases including undefined/null parameters object in validateParameterNames (returns isInvalid: false, invalidParameters: []), and empty objects for both functions. Uses optional chaining or explicit checks.",
"max_score": 5
}
]
}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