Skip to content

aslilac/typescript-runtime-type-benchmarks

Repository files navigation

📊 Benchmark Comparison of Packages with Runtime Validation and TypeScript Support


⚡⚠ Benchmark results have changed after switching to isolated node processes for each benchmarked package, see #864 ⚠⚡


Benchmark Results

Fastest Packages - click to view details

click here for result details

Packages Compared

Criteria

Validation

These packages are capable of validating the data for type correctness.

E.g. if string was expected, but a number was provided, the validator should fail.

Interface

It has a validator function or method that returns a valid type casted value or throws.

const data: any = {} // `res` is now type casted to the right type const res = isValid(data)

Or it has a type guard function that in a truthy block type casts the value.

const data: any = {} function isMyDataValid(data: any) { // isValidGuard is the type guard function provided by the package if (isValidGuard(data)) { // data here is "guarded" and therefore inferred to be of the right type return data } throw new Error('Invalid!') } // `res` is now type casted to the right type const res = isMyDataValid(data)

Local Development

  • npm run start - run benchmarks for all modules
  • npm run start run zod myzod valita - run benchmarks only for a few selected modules
  • npm run docs:serve - result viewer
  • npm run test - run tests on all modules

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Languages

  • TypeScript 99.6%
  • Other 0.4%