skema
skema
provides a handy and composable way to validate/transform JavaScript variables:
-
Supports both async and sync flows. Skema has two working modes to support either async or sync validators, setters, etc, making it capable with much more complicated challenges.
-
NOT only type checker. Unlike TypeScript, joi, and many others, Skema is not only a JavaScript type checker, but also a good solution for your Anti-Corruption Layer (ACL) to transform and purify the input data. And Skema could also be configured as a simple schema validator too.
-
Pluggable basic types. Even basic types such as
Number
could also be replaced and customized if using Skema. Actually, in the core of Skema, there is NOT a single definition of one type. -
Powerful custom types. Every single type is able to be customized that you can handle almost everything including descriptor, conditions, default values, validators and so on.
-
Composable structures. You could build a much bigger schema with the small ones into the whole world.
Install
npm i skema
Basic Usage
// Schema definitions are ONLY objects.const User = // Then use these definitions to purify our data.const user = User console// {// id: 1,// name: 'Steve'// } userid = 'boooom!'// throw TypeError// - message: 'not a number'// - code: 'VALIDATION_FAILS'
Documentations
- API References
- Shape Definition
- Working Mode: Sync or Async
- Assign a Property after
from()
- Error Handling
- Contributing
Many Examples
- Shape Definition
- Type Definition
- Errors🔬
Related Packages
- @skema/basic The default built-in javascript types of skema.
License
MIT