obligations
Version:
Tiny JavaScript library for preconditions, postconditions and invariants, intended for use with Contractual.
40 lines (22 loc) • 1.26 kB
Markdown
# Obligations
[](https://travis-ci.org/codemix/obligations)
Tiny JavaScript library for [preconditions](http://en.wikipedia.org/wiki/Precondition), [postconditions](http://en.wikipedia.org/wiki/Postcondition) and [invariants](http://en.wikipedia.org/wiki/Invariant_\(computer_science\)), intended for use with [Contractual](https://github.com/codemix/contractual).
## Installation
```
npm install obligations
```
## Usage
```js
var obligations = require('obligations');
obligations.precondition(1 > 0); // always ok
obligations.precondition(false); // throws a PreconditionError
obligations.precondition(0 > 1, "The world has ended!"); // throws a PreconditionError with a custom message
obligations.postcondition(1 > 0); // always ok
obligations.postcondition(false); // throws a PostconditionError
obligations.postcondition(0 > 1, "The world has ended!"); // throws a PostconditionError with a custom message
obligations.invariant(1 > 0); // always ok
obligations.invariant(false); // throws an InvariantError
obligations.invariant(0 > 1, "The world has ended!"); // throws a InvariantError with a custom message
```
## License
MIT, see [LICENSE.md](./LICENSE.md).