CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-jsx-ast-utils

AST utility module for statically analyzing JSX

50

1.42x
Quality

Pending

Does it follow best practices?

Impact

50%

1.42x

Average score across 10 eval scenarios

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

criteria.jsonevals/scenario-6/

{
  "context": "Evaluates whether the solution relies on jsx-ast-utils to pull literal-only prop values from JSXOpeningElement nodes as required by the spec. Checks that library helpers drive prop lookup, literal interpretation, and filtering of non-literal inputs instead of manual AST handling.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Literal extraction",
      "description": "Uses jsx-ast-utils.getLiteralPropValue to derive prop values instead of manually inspecting AST expressions, leveraging its literal-only coercions for primitives.",
      "max_score": 30
    },
    {
      "name": "Prop lookup",
      "description": "Retrieves attributes via jsx-ast-utils.getProp and/or jsx-ast-utils.propName to honor namespaces, hyphenated names, and JSXOpeningElement structure rather than hardcoded field access.",
      "max_score": 20
    },
    {
      "name": "Boolean/null handling",
      "description": "Relies on getLiteralPropValue to treat bare boolean attributes as true and to surface explicit null/undefined values without dropping the prop.",
      "max_score": 15
    },
    {
      "name": "Non-literal filtering",
      "description": "Skips props when getLiteralPropValue returns undefined or null for non-literal inputs (functions, JSX, identifiers, optional chains) instead of passing through raw expressions.",
      "max_score": 20
    },
    {
      "name": "Array trimming",
      "description": "Uses getLiteralPropValue to collect only literal items from array-valued props and omits the prop entirely when the helper yields no literal entries.",
      "max_score": 15
    }
  ]
}

tile.json