or run

tessl search
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-9/

{
  "context": "This criteria evaluates how well the engineer uses oboe.js to implement progressive parsing of a streaming JSON product feed. The focus is on proper use of oboe's streaming capabilities to process array elements as they arrive, rather than waiting for the complete response.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "oboe() invocation",
      "description": "Uses oboe() function to initiate the HTTP request with the provided URL parameter",
      "max_score": 15
    },
    {
      "name": ".node() for streaming",
      "description": "Uses .node() method to register a callback that processes products progressively as they arrive in the stream",
      "max_score": 25
    },
    {
      "name": "JSONPath array pattern",
      "description": "Uses appropriate JSONPath pattern (e.g., '!.products.*' or '!.products[*]') to match individual product elements within the products array",
      "max_score": 20
    },
    {
      "name": ".done() completion handler",
      "description": "Uses .done() method to handle stream completion and call the onComplete callback with the final results",
      "max_score": 20
    },
    {
      "name": "Callback integration",
      "description": "Correctly invokes the onProduct callback from within the .node() handler, passing each product object as it arrives",
      "max_score": 10
    },
    {
      "name": "Method chaining",
      "description": "Uses oboe's fluent API by chaining .node() and .done() method calls",
      "max_score": 5
    },
    {
      "name": "Return value",
      "description": "Returns the oboe stream object to provide access to its abort() method as specified in the API",
      "max_score": 5
    }
  ]
}