@sealsystems/assert-mongo-error

2.0.0 • Public • Published

@sealsystems/assert-mongo-error

CircleCI AppVeyor

Test for a servere mongodb error and handle it by exiting the process, throwing a new generated @sealsystems/error error object or just ignore the error.

Default list of severe mongodb error codes to exit:

Name Code
InternalError 1
HostUnreachable 6
HostNotFound 7
NetworkTimeout 89
SocketException 9001
UnknownError 8
ProtocolError 17
IllegalOpMsgFlag 223
UserNotFound 11
Unauthorized 13
AuthenticationFailed 18
InvalidSSLConfiguration 140
SSLHandshakeFailed 141
OutOfDiskSpace 14031

Installation

$ npm install @sealsystems/assert-mongo-error

Quick start

First you need to add a reference to @sealsystems/assert-mongo-error within your application, then call the assert function in the callback of every mongodb call.

const assertMongoError = require('@sealsystems/assert-mongo-error');

yourCollection.find({}, (findError, cursor) => {
  assertMongoError.assert(findError);
  ...
});

Assert Error

Test for a servere mongodb error. The function has three outcomes:

  • In case of a severe mongodb error exit the process
  • Without any of the optional parameters the mongodb error is ignored and the function returns.
  • If at least an error message is given as second parameter it throws a new created error of type @sealsystems/error. The original mongodb error is chained to the new error.
assertMongoError.assert(error, message, code, metadata);

Parameters:

error      object  mandatory  The error object to test
message    string  optional   Message used for creating a new error object
code       number  optional   Code used for creating a new error object
metadata   object  optional   Metadata used for creating a new error object

Set list of error codes

Use the setCodes function to set a new list of error codes. This needs to be done only once, e.g. at startup. The new list is available instantly throughout the whole node process.

const assertMongoError = require('@sealsystems/assert-mongo-error');

assertMongoError.setCodes([1,2,3]);
...
assertMongoError.assert(mongoErrorObject);

Running the build

To build this module use roboter.

$ bot

Readme

Keywords

none

Package Sidebar

Install

npm i @sealsystems/assert-mongo-error

Weekly Downloads

0

Version

2.0.0

License

MIT

Unpacked Size

11 kB

Total Files

7

Last publish

Collaborators

  • seal-mt
  • michaelscherer-seal
  • comgit
  • gel