ramda-t
v0.0.18
Published
> Experiment: Primitive, JSDoc-assisted runtime type checking for [Ramda][ramda]
Readme
ramda-t 
Experiment: Primitive, JSDoc-assisted runtime type checking for Ramda
It reads JSDoc documentation from the project's Ramda source file and uses
the functions' @param annotations to determine valid argument types in
function application.
features
- Throws a
TypeErrorwhen passing values of incorrect type to Ramda functions
usage
npm install ramda-tin a project that hasramdainstalled.- Require
ramda-tinstead oframda.
example
var R = require('ramda-t');
var doubleAll = R.map(R.multiply(2));
doubleAll('foo'); // oopsissues
- [x] ~~Lens value types are documented as
Lens, despite being type ofFunction~~ - [ ] How to smoothly make
ramda-tpart of development process but drop for production use? - [ ]
R.rejecttakes@param Objectas second argument, and dispatches tofilter, a method of a different name than the function itself.
caveats
- Relies on JSDoc
@paramannotations to be correct. Some may not be. The generatedramda.jsonmay be edited to correct types. R.map's second argument is type ofArray. Becomes an issue whenR.mapis used to dispatch. Dispatched arguments are difficult to parse from JSDoc annotations because they're part of the description. Workaround: Check if value is dispatchable, i.e. has a method by the name of the function.
running ramda test suite with ramda-t
./scripts/test-ramda.sh
./scripts/test-ramda.sh propEq.jsdebug output
Set DEBUG environment variable to ramda-t.
DEBUG=ramda-t node index.js