Checking if a given value matches the schema. This is different to parsing because it doesn't return a new value.
Copy to clipboardimport * as v from "valibot"; import { personSchema } from "./schemas"; if (v.is(personSchema, data)) { // data is narrowed to Person }
Optimizations
| Library | Version | /wk | Optimizations | Mean | Compare | ||||
|---|---|---|---|---|---|---|---|---|---|
io-ts | Code snippet | 2.2.22 | n/a | None | 2 μs | ||||
valibot | Code snippet | 1.5.0 | n/a | None | 4 μs | 2.25x | |||
effect | Code snippet(Setup code is not benchmarked) | 4.0.1 | n/a | None | 5 μs | 2.53x | |||
@railway-ts/pipelines | Code snippet | 0.1.29 | n/a | None | 11 μs | 5.39x | |||
@sapphire/shapeshift | Code snippet | 5.0.0 | n/a | None | 13 μs | 6.55x | |||
superstruct (schema.is) | Code snippet | 2.0.2 | n/a | None | 34 μs | 17.23x | |||
superstruct | Code snippet | 2.0.2 | n/a | None | 34 μs | 17.29x | |||
runtypes | Code snippet | 7.0.5 | n/a | None | 51 μs | 25.54x | |||
yup | Code snippet | 1.7.1 | n/a | None | 91 μs | 45.46x | |||