From bbb768c5cfa8bf713670608f859debae42b42898 Mon Sep 17 00:00:00 2001 From: Brandon Millman Date: Mon, 20 Nov 2017 13:12:15 -0800 Subject: Add kovan faucet project into the mono repo --- packages/kovan-faucets/src/ts/error_reporter.ts | 40 +++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 packages/kovan-faucets/src/ts/error_reporter.ts (limited to 'packages/kovan-faucets/src/ts/error_reporter.ts') diff --git a/packages/kovan-faucets/src/ts/error_reporter.ts b/packages/kovan-faucets/src/ts/error_reporter.ts new file mode 100644 index 000000000..74e99da15 --- /dev/null +++ b/packages/kovan-faucets/src/ts/error_reporter.ts @@ -0,0 +1,40 @@ +import * as fs from 'fs'; +import * as express from 'express'; +import {utils} from './utils'; +import {configs} from './configs'; +import rollbar = require('rollbar'); + +export const errorReporter = { + setup() { + rollbar.init(configs.ROLLBAR_ACCESS_KEY, { + environment: configs.ENVIRONMENT, + }); + + rollbar.handleUncaughtExceptions(configs.ROLLBAR_ACCESS_KEY); + + process.on('unhandledRejection', (err: Error) => { + utils.consoleLog(`Uncaught exception ${err}. Stack: ${err.stack}`); + this.report(err); + process.exit(1); + }); + }, + reportAsync(err: Error, req?: express.Request): Promise { + if (configs.ENVIRONMENT === 'development') { + return; // Do not log development environment errors + } + + return new Promise((resolve, reject) => { + rollbar.handleError(err, req, (rollbarErr: Error) => { + if (rollbarErr) { + utils.consoleLog(`Error reporting to rollbar, ignoring: ${rollbarErr}`); + reject(rollbarErr); + } else { + resolve(); + } + }); + }); + }, + errorHandler() { + return rollbar.errorHandler(configs.ROLLBAR_ACCESS_KEY); + }, +}; -- cgit v1.2.3