aboutsummaryrefslogtreecommitdiffstats
path: root/packages/kovan-faucets/src/ts/error_reporter.ts
diff options
context:
space:
mode:
authorBrandon Millman <brandon.millman@gmail.com>2017-11-21 05:12:15 +0800
committerBrandon Millman <brandon.millman@gmail.com>2017-12-13 07:45:22 +0800
commitbbb768c5cfa8bf713670608f859debae42b42898 (patch)
tree40ae6f11995fa44a1ee58092a8308faac63abec4 /packages/kovan-faucets/src/ts/error_reporter.ts
parent5678196706a63d27fc5b00b5224c8213510e76f0 (diff)
downloaddexon-sol-tools-bbb768c5cfa8bf713670608f859debae42b42898.tar
dexon-sol-tools-bbb768c5cfa8bf713670608f859debae42b42898.tar.gz
dexon-sol-tools-bbb768c5cfa8bf713670608f859debae42b42898.tar.bz2
dexon-sol-tools-bbb768c5cfa8bf713670608f859debae42b42898.tar.lz
dexon-sol-tools-bbb768c5cfa8bf713670608f859debae42b42898.tar.xz
dexon-sol-tools-bbb768c5cfa8bf713670608f859debae42b42898.tar.zst
dexon-sol-tools-bbb768c5cfa8bf713670608f859debae42b42898.zip
Add kovan faucet project into the mono repo
Diffstat (limited to 'packages/kovan-faucets/src/ts/error_reporter.ts')
-rw-r--r--packages/kovan-faucets/src/ts/error_reporter.ts40
1 files changed, 40 insertions, 0 deletions
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<any> {
+ 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);
+ },
+};