Used Underscore.js's way of making universal module, and used codebase of zertosh's invariants repo, to make it usable everywhere.
A mirror of Facebook's invariant
(e.g. React, flux).
A way to provide descriptive errors in development but generic errors in production.
npm install invariants
bower install invariants
<script src="invariants.js"></script>
<script>
invariants(false, 'This will always fail');
</script>
const invariants = require('invariants');
invariants(someTruthyVal, 'This will not throw');
// No errors
invariants(someFalseyVal, 'This will throw an error with this message');
// Error: Invariants Violation: This will throw an error with this message
Note: When process.env.NODE_ENV
is not production
, the message is required. If omitted, invariants
will throw regardless of the truthiness of the condition. When process.env.NODE_ENV
is production
, the message is optional โ so they can be minified away.