A Node error system
npm install @mitmaro/errors





npm install --save @mitmaro/errors
* [API Documentation][1]
#### JavaScript
``javascript`
const {ErrorHandler} = require('@mitmaro/errors');
const errorHandler = new ErrorHandler((msg) => process.stderr.write(msg));
#### TypeScript
`typescript`
import {ErrorHandler} from '@mitmaro/errors';
const myLogger = async (msg: string = ''): Promise
const errorHandler = new ErrorHandler(myLogger);
#### JavaScript
`javascript`
errorHandler.register((logger, err) => {
if (err instanceof MyError) {
logger('My Error Occurred');
logger(err.message);
}
});
#### TypeScript
`typescript
const myErrorHandler = async
if (err instanceof MyError) {
logger('My Error Occurred\n');
logger(err.message);
return true;
}
return false;
};
errorHandler.register(myErrorHandler);
`
#### JavaScript
`javascript`
try {
throw new Error('My Error');
}
catch (err) {
errorHandler.handle(err);
}
#### TypeScript
`typescript`
try {
throw new Error('My Error');
}
catch (err) {
errorHandler.handle(err);
}
This library exports two error that are meant to be extended when creating custom errors. They are RuntimeError thisBaseError
is meant for non-recoverable errors that may occur during the running of an application. The other is a thatcause
is meant for all other errors. Both errors take a optional argument that allows for an error chain. The error
handler handles logging of errors that have a cause.
#### JavaScript
`javascript
const {RuntimeError} = require('@mitmaro/errors');
class MyError extends RuntimeError {
constructor(message, cause) {
super(message, 'MyError', cause);
}
}
`
#### TypeScript
`typescript
import {RuntimeError} from '@mitmaro/errors';
class MyError extends RuntimeError {
public constructor(message: string, cause?: error) {
super(message, 'MyError', cause);
}
}
`
Development is done using Node 8 and NPM 5, and tested against both Node 6, Node 8 and Node 10. To get started:
* Install Node 8 from [NodeJS.org][node] or using [nvm]
* Clone the repository using git clone git@github.com:MitMaro/node-errors.gitcd node-errors
* npm install
* Install the dependencies npm run test`
* Make changes, add tests, etc.
* Run linting and test suite using
This project is released under the ISC license. See [LICENSE][LICENSE].
[1]: http://www.mitmaro.ca/node-errors/
[node]:https://nodejs.org/en/download/
[nvm]:https://github.com/creationix/nvm#installation
[LICENSE]:LICENSE