io-ts-promise
io-ts
Our great sponsors
io-ts-promise | io-ts | |
---|---|---|
1 | 79 | |
74 | 6,278 | |
- | - | |
0.0 | 6.0 | |
5 months ago | about 1 month ago | |
TypeScript | TypeScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
io-ts-promise
-
Notes on Advanced TypeScript: Runtime Validations
There are more improvements we could make, but we should have a basic understanding of why it might be useful to validate any external data at runtime. io-ts offers more features handling recursive and optional types. Furthermore there are libraries like io-ts-promise that provide more features and useful helpers, the above decodePromise, for example, is available in a more advanced variant via io-ts-promise.
io-ts
-
Domain modelling with State Machines and TypeScript by Carlton Upperdine
My fave is still io-ts (https://github.com/gcanti/io-ts/blob/master/docs/index.md) as I find it more flexible than zod at the ingress. The author is also working on the Effect ecosystem which also looks interesting.
-
Can someone recommend a library for data parsing similar to Zod, but with better support for input transformations/preprocessing?
Yeah, there are a few new concepts and it's not the easiest to pick up right away. The best introduction is here on the main documentation page.
- libraries you are happy that you discovered them
- Is React for small projects an Overkill?
-
Typescript advanced bits: function overloading, never and unknown types
A good way to significantly improve the reliability of your app is via improving type-safety by moving away from using any to unknown. One relevant example could be when you type your backend responses and when stringifying JSON to using unknown combined with some sort of runtime type checking. It can be done either by using built-in functionality like type guards or using an external library like io-ts, zod or yup.
-
I found 10,000x faster TypeScript validator library
Usage of TypeBox is similar with io-ts and zod, but it is much powerful and faster than them. Also, TypeBox can generate JSON schema very easily. Therefore, if you're looking for a validator library for new project and not suffering from legacy codes, I think TypeBox would be much better choice than io-ts and zod. TypeBox can totally replace them.
-
Validate your data with Zod
This check can be done with different libraries like: io-ts, typebox, or zod. These libraries allow you to create objects that represent your typescript definitions. Then, these objects can be used at runtime to validate the received data, in addition, you can also convert this object to a Typescript definition to have all the benefits of using typescript. These objects can be called schema validations because they are responsible for the data validation.
-
TypeScript-JSON is 10 ~ 1,000x times faster than ZOD and IO-TS
Being proud of such performance enhancement, I hope many TypeScript developers to adapt my library. Advantage of typescript-json is not only better performance, but also easy usage exists. typescript-json does not require any extra schema definition and just requires only one line with pure TypeScript Type. Thus, what about using my library typescript-json instead of io-ts or zod?
-
Ezno
It's not external to TS. You write your types by passing object literals to the functions that generate the validators; TypeScript then infers shockingly precise types, which can be extracted using TypeScript's type manipulation utilities.
It does support generics [0].
[0] https://github.com/gcanti/io-ts/blob/master/index.md#generic...
You can use io-ts [0] to define your types, and it'll generate functions to typecheck for you. Syntactically it's a bit gnarly and the documentation isn't great; a first-party solution would definitely be nicer. But it works, and it's amazing that it works.
What are some alternatives?
zod - TypeScript-first schema validation with static type inference
class-validator - Decorator-based property validation for classes.
fp-ts - Functional programming in TypeScript
openapi-generator - OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)
runtypes - Runtime validation for static types
joi - The most powerful data validation library for JS [Moved to: https://github.com/hapijs/joi]
newtype-ts - Implementation of newtypes in TypeScript
Yup - Dead simple Object schema validation
ajv - The fastest JSON schema Validator. Supports JSON Schema draft-04/06/07/2019-09/2020-12 and JSON Type Definition (RFC8927)
typebox - JSON Schema Type Builder with Static Type Resolution for TypeScript
class-transformer - Decorator-based transformation, serialization, and deserialization between objects and classes.
pydantic - Data validation using Python type hints