Skip to main content

withValidation()

withValidation<S, Out>(schema, strategy): (input) => Result<Out, string>

Validates input against a kanon schema before executing the strategy. Bridges kanon validation, zygos Result, and the strategy pattern.


Type Parameters​

S: S extends GenericSchema​

The kanon schema type

Out: Out​

The output type of the strategy


Parameters​

schema: S​

Kanon schema to validate input against

strategy: Strategy<Infer<S>, Out>​

Strategy to execute on validated input


Returns​

A function accepting unknown input and returning Result<Out, string>


Since​

2.4.0


Example​

import { number } from "@pithos/core/kanon";

const double = withValidation(
number().min(0),
(n) => n * 2,
);

double(5); // Ok(10)
double(-1); // Err("Number must be >= 0")
double("hello"); // Err("Expected number")