CtrlK
CommunityDocumentationLog inGet started
Tessl Logo

tessl/npm-io-ts

tessl install tessl/npm-io-ts@2.2.0

TypeScript runtime type system for IO decoding/encoding

Agent Success

Agent success rate when using this tile

72%

Improvement

Agent success rate improvement when using this tile compared to baseline

1.14x

Baseline

Agent success rate without this tile

63%

rubric.jsonevals/scenario-1/

{
  "context": "This criteria evaluates how effectively an engineer uses io-ts to build and compose nested type validators for a complex user profile structure. The focus is on proper usage of io-ts combinators to create deeply nested validation schemas with objects, arrays, and union types.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Root codec creation",
      "description": "Uses t.type() or t.interface() to define the root UserProfile codec with all four top-level properties (user, settings, addresses, socialConnections)",
      "max_score": 10
    },
    {
      "name": "User object codec",
      "description": "Correctly defines the user object using t.type() with id as t.number, username as t.string, and email as t.string",
      "max_score": 10
    },
    {
      "name": "Settings nested structure",
      "description": "Properly composes the settings object with nested preferences and privacy objects using t.type() for both levels",
      "max_score": 15
    },
    {
      "name": "Literal union types",
      "description": "Uses t.union() with t.literal() to define the theme field as union of 'light' and 'dark', and platform field as union of 'twitter', 'linkedin', and 'github'",
      "max_score": 15
    },
    {
      "name": "Array codecs",
      "description": "Uses t.array() to define both the addresses array and socialConnections array with properly typed element codecs",
      "max_score": 10
    },
    {
      "name": "Address nested codec",
      "description": "Defines address objects with t.type() containing string fields (street, city, zipCode) and a nested coordinates object with latitude and longitude as t.number",
      "max_score": 15
    },
    {
      "name": "Social connection codec",
      "description": "Defines social connection objects with t.type() containing the platform union type and a nested profile object with handle (string) and verified (boolean)",
      "max_score": 10
    },
    {
      "name": "Validation execution",
      "description": "Calls the codec's decode() method with the input data to perform validation",
      "max_score": 5
    },
    {
      "name": "Result handling",
      "description": "Properly handles the Either result from decode() using fp-ts utilities (fold, isLeft, isRight) or pattern matching to return the ValidationResult type",
      "max_score": 10
    }
  ]
}

Version

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/io-ts@2.2.x
tile.json