Introduction to assert-plus
Assert-plus is a simple assertion library designed for JavaScript, providing a wide range of assertion functions to ensure your code behaves as expected. It streamlines the process of validating values and conditions, making your code more robust and less prone to errors.
Basic Usage
const assert = require('assert-plus'); // Basic type assertions assert.string('foo'); assert.number(42); assert.bool(true); // Object and array assertions assert.object({ foo: 'bar' }); assert.array([1, 2, 3]); // Optional values assert.optionalNumber(null); assert.optionalBool(undefined);
Advanced API Examples
// Custom message assert.string('foo', 'Error: Not a string!'); // Range checks assert.number(42, 'Error: Not a number!'); assert.ok(42 > 0, 'Error: Number is not positive!'); // Check properties const obj = { foo: 'bar', baz: 42 }; assert.hasKey(obj, 'foo'); assert.hasKeys(obj, ['foo', 'baz']); // Asserting against a prototype function MyConstructor() { this.foo = 'bar'; } const instance = new MyConstructor(); assert.instanceOf(instance, MyConstructor);
Real-World Application Example
const http = require('http'); const assert = require('assert-plus'); const server = http.createServer((req, res) => { assert.object(req, 'Request must be an object'); assert.object(res, 'Response must be an object'); let body = ''; req.on('data', chunk => { assert.optionalString(chunk, 'Chunk must be a string or null'); body += chunk; }); req.on('end', () => { assert.ok(req.method === 'POST', 'Only POST requests are allowed'); assert.notStrictEqual(body, '', 'Request body must not be empty'); res.writeHead(200, { 'Content-Type': 'application/json' }); res.end(JSON.stringify({ message: 'Success' })); }); }).listen(3000, () => { console.log('Server is listening on port 3000'); });
Using assert-plus can significantly simplify your code, reduce bugs, and ensure that your system behaves as expected. Try it out in your next project to enjoy the benefits of robust and maintainable code!
Hash: f47e3e691ce3678f97db7571581002998e415dab77c489983baac509aaa84a41