fluent-schemer
const librarySchema = ; const errorCounts errors = librarySchema;
Incoming:
- default values, something like
;console.logcorrected; // 10 .minlength2 .maxlength10 .defaultExpression'_________' + value.slice0, 10 .validate'1';console.logusername; // _________1
Aims to provide declarative, expressive and elegant approach to validation, while providing an intuitive, easy-to-use api.
It's cool, because
- it fully embraces ES2015 features such as classes, fat arrow functions, mixins, destructuring statements, modules
- has typescript type definitions - v2.0 comes with typings for enhanced development experience
- has flow libdefs, which will soon be available on flow-typed
- easy to use and pick up, write a little code for a lot of common validation logic
- has a fluent, readable and declarative api
- umd compliant - use in node/browser, with commonjs, umd, script tags, harmony modules, whatever
- no production dependencies, small codebase
- helps developers get rid of imperative code, long if-else's and writing boring validations all over again
- promotes code reuse - easily share code between modules, between clients, servers and across projects
- easy to extends with custom schemas
- statically type checked with latest typescript, checked for correctness with a bunch of unit tests
- throws errors when rubbish arguments are provided to schema methods, instead of failing silently
Running the tests
yarn build && yarn lint && yarn test
Examples
Examples can be found in the docs, in the source code and in the tests.