contracts.coffee is a dialect of CoffeeScript with contract support.
Contracts allow you to write powerful runtime assertions about your code. Like types but less painful, like assert but more useful.
square :: (Num) -> Num square = (x) -> x * x # throws a run-time error square "a string"
Documentation, usage, and more examples: http://disnetdev.com/contracts.coffee/
Install via npm:
npm install -g contracts.coffee npm install contracts.js
Use the compiler:
coffee -c --contracts /path/to/script.coffee
An alternative to using the --contracts flag is setting this env variable:
If you are running in the browser then you'll need to load the contracts library (found in lib/contracts/contracts.js)
If you are running in node.js then you'll need to install the contracts.js package
npm install contracts.js
- 0.3.0 (March 15th, 2012)
- 0.2.0 (January 4th, 2012)
.use(), now using
- various bug fixes
- based off CoffeeScript 1.2.0
- 0.1.0 (August 29th, 2011)
- initial release
- based off CoffeeScript 1.1.2