Ducto.js is a collection of functions for validation and modification of data throught pipelining.
- ✅ Functional API
- ✅ Support for ECMAScript Pipeline Operator (see docs)
npm install @ducto/core @ducto/validators
In ducto you can provide multiples validators and if one of them fails, the whole pipeline fails. This approach is very useful when you want to validate a pipeline step by step.
import { ducto } from '@ducto/core';
import {
isString,
isNotNull,
hasLessCharactersThan,
hasMoreCharactersThan,
} from '@ducto/validators';
const validator = ducto(
isNotNull,
isString,
hasLessCharactersThan(100),
hasMoreCharactersThan(10),
)
try {
validator('mathiasgheno');
console.log('all ok');
} catch (e) {
console.log(e.message);
}
try {
validator('mathias');
} catch (e) {
console.log(e.message);
console.log(e.debug);
}
You can alse use it with the Pipeline Operator. Please see the docs.
import {
isString,
isNotNull,
hasLessCharactersThan,
hasMoreCharactersThan,
} from '@ducto/validators';
'mathiasgheno'
|> isNotNull(#)
|> isString(#)
|> hasLessCharactersThan(100)(#)
|> hasMoreCharactersThan(10)(#)