UNPKG

ehandler

Version:

Exception handler for Angular Applications

101 lines (100 loc) 8.11 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { Inject, Injectable } from '@angular/core'; import { HttpClient, HttpHeaders } from '@angular/common/http'; import { catchError } from 'rxjs/operators'; var HookService = /** @class */ (function () { function HookService(http, config) { this.http = http; this.config = config; } /** * Send Message */ /** * Send Message * @param {?} payload * @return {?} */ HookService.prototype.sendMessage = /** * Send Message * @param {?} payload * @return {?} */ function (payload) { this.http.post(this.config.hook, payload, { observe: 'response', responseType: 'text' }).subscribe(function (response) { console.info('Message sent'); }); }; /** * Send Exception to hook */ /** * Send Exception to hook * @param {?} error * @param {?=} couse * @return {?} */ HookService.prototype.exceptionNotify = /** * Send Exception to hook * @param {?} error * @param {?=} couse * @return {?} */ function (error, couse) { var _this = this; if (couse === void 0) { couse = ''; } /** @type {?} */ var status = error.status ? error.status : 'Application Error'; /** * * Error Payload @type {?} */ var payload = { text: '--------------------------[ ' + status + ' ]--------------------------', attachments: [ { author_name: 'Cause: ' + couse + '\nURL: ' + window.location.href, title: 'Message: ' + error.message, text: 'Date: ' + new Date() + '\nUserAgent: ' + navigator.userAgent + '\n---------------------------------------------------------' } ] }; if (!this.bugged) { /** @type {?} */ var headers = new HttpHeaders({ 'Content-Type': 'text/plain' }); this.http.post(this.config.hook, JSON.stringify(payload), { observe: 'response', responseType: 'text', headers: headers }) .pipe(catchError(function (e) { _this.bugged = true; console.log('Hook stopped working'); throw e; })) .subscribe(function (response) { console.log('Exception Sent'); }); } }; HookService.decorators = [ { type: Injectable }, ]; /** @nocollapse */ HookService.ctorParameters = function () { return [ { type: HttpClient }, { type: undefined, decorators: [{ type: Inject, args: ['configurations',] }] } ]; }; return HookService; }()); export { HookService }; function HookService_tsickle_Closure_declarations() { /** @type {?} */ HookService.prototype.bugged; /** @type {?} */ HookService.prototype.http; /** @type {?} */ HookService.prototype.config; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9vay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZWhhbmRsZXIvIiwic291cmNlcyI6WyJsaWIvaG9vay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUMsVUFBVSxFQUFFLFdBQVcsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRTdELE9BQU8sRUFBQyxVQUFVLEVBQU0sTUFBTSxnQkFBZ0IsQ0FBQzs7SUFLN0MscUJBQW9CLElBQWdCLEVBQW9DLE1BQWM7UUFBbEUsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFvQyxXQUFNLEdBQU4sTUFBTSxDQUFRO0tBQUk7SUFFMUY7O09BRUc7Ozs7OztJQUNILGlDQUFXOzs7OztJQUFYLFVBQVksT0FBWTtRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBRSxVQUFBLFFBQVE7WUFDeEcsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUM5QixDQUFDLENBQUM7S0FDSjtJQUVEOztPQUVHOzs7Ozs7O0lBQ0gscUNBQWU7Ozs7OztJQUFmLFVBQWdCLEtBQUssRUFBRSxLQUFVO1FBQWpDLGlCQWlDQztRQWpDc0Isc0JBQUEsRUFBQSxVQUFVOztRQUMvQixJQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQzs7OztRQUlqRSxJQUFNLE9BQU8sR0FBRztZQUNkLElBQUksRUFBRSw4QkFBOEIsR0FBRyxNQUFNLEdBQUcsOEJBQThCO1lBQzlFLFdBQVcsRUFBRTtnQkFDWDtvQkFDRSxXQUFXLEVBQUUsU0FBUyxHQUFHLEtBQUssR0FBRyxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJO29CQUNqRSxLQUFLLEVBQUUsV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPO29CQUNsQyxJQUFJLEVBQUUsUUFBUSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsZUFBZSxHQUFHLFNBQVMsQ0FBQyxTQUFTO3dCQUNuRSw2REFBNkQ7aUJBQzlEO2FBQ0Y7U0FDRixDQUFDO1FBQ0YsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQzs7WUFDakIsSUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUM7Z0JBQzlCLGNBQWMsRUFBRSxZQUFZO2FBQzdCLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsT0FBTyxTQUFBLEVBQUMsQ0FBQztpQkFDNUcsSUFBSSxDQUNILFVBQVUsQ0FBQyxVQUFBLENBQUM7Z0JBQ1YsS0FBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQztnQkFDcEMsTUFBTSxDQUFDLENBQUM7YUFDVCxDQUFDLENBQ0g7aUJBQ0EsU0FBUyxDQUFFLFVBQUEsUUFBUTtnQkFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2FBQy9CLENBQUMsQ0FBQztTQUNOO0tBRUY7O2dCQWxERixVQUFVOzs7O2dCQUpILFVBQVU7Z0RBT3VCLE1BQU0sU0FBQyxnQkFBZ0I7O3NCQVJoRTs7U0FPYSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0h0dHBDbGllbnQsIEh0dHBIZWFkZXJzfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuL2NvbnN0L2NvbmZpZyc7XHJcbmltcG9ydCB7Y2F0Y2hFcnJvciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcblxyXG5leHBvcnQgY2xhc3MgSG9va1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgQEluamVjdCgnY29uZmlndXJhdGlvbnMnKSBwcml2YXRlIGNvbmZpZzogQ29uZmlnKSB7fVxyXG4gIHByaXZhdGUgYnVnZ2VkOiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIFNlbmQgTWVzc2FnZVxyXG4gICAqL1xyXG4gIHNlbmRNZXNzYWdlKHBheWxvYWQ6IGFueSkge1xyXG4gICAgdGhpcy5odHRwLnBvc3QodGhpcy5jb25maWcuaG9vaywgcGF5bG9hZCwge29ic2VydmU6ICdyZXNwb25zZScsIHJlc3BvbnNlVHlwZTogJ3RleHQnfSkuc3Vic2NyaWJlKCByZXNwb25zZSA9PiB7XHJcbiAgICAgIGNvbnNvbGUuaW5mbygnTWVzc2FnZSBzZW50Jyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICBTZW5kIEV4Y2VwdGlvbiB0byBob29rXHJcbiAgICovXHJcbiAgZXhjZXB0aW9uTm90aWZ5KGVycm9yLCBjb3VzZSA9ICcnKSB7XHJcbiAgICBjb25zdCBzdGF0dXMgPSBlcnJvci5zdGF0dXMgPyBlcnJvci5zdGF0dXMgOiAnQXBwbGljYXRpb24gRXJyb3InO1xyXG4gICAgLyoqXHJcbiAgICAgKiBFcnJvciBQYXlsb2FkXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgIHRleHQ6ICctLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVsgJyArIHN0YXR1cyArICcgXS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJyxcclxuICAgICAgYXR0YWNobWVudHM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBhdXRob3JfbmFtZTogJ0NhdXNlOiAnICsgY291c2UgKyAnXFxuVVJMOiAnICsgd2luZG93LmxvY2F0aW9uLmhyZWYsXHJcbiAgICAgICAgICB0aXRsZTogJ01lc3NhZ2U6ICcgKyBlcnJvci5tZXNzYWdlLFxyXG4gICAgICAgICAgdGV4dDogJ0RhdGU6ICcgKyBuZXcgRGF0ZSgpICsgJ1xcblVzZXJBZ2VudDogJyArIG5hdmlnYXRvci51c2VyQWdlbnQgK1xyXG4gICAgICAgICAgJ1xcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSdcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgICBpZiAoIXRoaXMuYnVnZ2VkKSB7XHJcbiAgICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAndGV4dC9wbGFpbidcclxuICAgICAgfSlcclxuICAgICAgdGhpcy5odHRwLnBvc3QodGhpcy5jb25maWcuaG9vaywgSlNPTi5zdHJpbmdpZnkocGF5bG9hZCksIHtvYnNlcnZlOiAncmVzcG9uc2UnLCByZXNwb25zZVR5cGU6ICd0ZXh0JywgaGVhZGVyc30pXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBjYXRjaEVycm9yKGUgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmJ1Z2dlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdIb29rIHN0b3BwZWQgd29ya2luZycpO1xyXG4gICAgICAgICAgICB0aHJvdyBlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSggcmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ0V4Y2VwdGlvbiBTZW50Jyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxufVxyXG4iXX0=