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-6/

{
  "context": "This criteria evaluates how well an engineer uses io-ts and fp-ts to build a type-safe validation pipeline using Kleisli composition patterns. The focus is on composing multiple validation and transformation steps using monadic composition (chain, map, chainW) to create a sequential pipeline that handles Either values correctly.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Decoder definition",
      "description": "Uses io-ts type combinators (t.type, t.string, t.number, t.Int, etc.) to define a codec/decoder for the input structure with username, email, and age fields",
      "max_score": 15
    },
    {
      "name": "Refinement validation",
      "description": "Uses t.refinement or decoder refinement to add business rule validation (e.g., age >= 18, non-empty username, email format) with appropriate predicates",
      "max_score": 15
    },
    {
      "name": "Kleisli composition",
      "description": "Uses chain, chainW, or pipe with chain/chainW from fp-ts/Either to compose multiple validation/transformation steps in a monadic pipeline instead of nested if-else or try-catch blocks",
      "max_score": 30
    },
    {
      "name": "Either handling",
      "description": "Properly uses Either type from fp-ts to represent success (Right) and failure (Left) values throughout the pipeline, maintaining type safety",
      "max_score": 15
    },
    {
      "name": "Transformation steps",
      "description": "Uses map or chain operations to transform validated data (normalize email to lowercase, add registeredAt timestamp) within the Either context",
      "max_score": 15
    },
    {
      "name": "Error reporting",
      "description": "Uses PathReporter or custom error formatting to convert io-ts validation errors into readable error messages that are returned in the Left branch",
      "max_score": 10
    }
  ]
}

Version

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