CtrlK
CommunityDocumentationLog inGet started
Tessl Logo

tessl/npm-lightdash--common

tessl install tessl/npm-lightdash--common@0.2231.5

Shared TypeScript library for the Lightdash platform containing common types, utilities, and business logic for analytics workflows

Agent Success

Agent success rate when using this tile

72%

Improvement

Agent success rate improvement when using this tile compared to baseline

1.09x

Baseline

Agent success rate without this tile

66%

rubric.jsonevals/scenario-8/

{
  "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
    }
  ]
}

Version

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/@lightdash/common@0.2231.x
tile.json