Skip to content

Commit e3a3406

Browse files
authored
Frontend - Added sentry (#851)
1 parent 94dd11a commit e3a3406

File tree

12 files changed

+233
-35
lines changed

12 files changed

+233
-35
lines changed

frontend/package-lock.json

Lines changed: 180 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
"@ngrx/router-store": "^17.2.0",
3232
"@ngrx/store": "^17.2.0",
3333
"@openmina/shared": "^0.102.0",
34+
"@sentry/angular": "^8.35.0",
35+
"@sentry/tracing": "^7.114.0",
3436
"base-x": "^5.0.0",
3537
"bs58check": "^4.0.0",
3638
"buffer": "^6.0.3",

frontend/src/app/app.module.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ErrorHandler, Injectable, LOCALE_ID, NgModule } from '@angular/core';
1+
import { APP_INITIALIZER, ErrorHandler, Injectable, LOCALE_ID, NgModule, Provider } from '@angular/core';
22
import { BrowserModule } from '@angular/platform-browser';
33

44
import { AppComponent } from './app.component';
@@ -33,6 +33,8 @@ import { HttpClientModule } from '@angular/common/http';
3333
import { NewNodeComponent } from './layout/new-node/new-node.component';
3434
import { ReactiveFormsModule } from '@angular/forms';
3535
import { WebNodeLandingPageComponent } from '@app/layout/web-node-landing-page/web-node-landing-page.component';
36+
import * as Sentry from '@sentry/angular';
37+
import { Router } from '@angular/router';
3638

3739
registerLocaleData(localeFr, 'fr');
3840
registerLocaleData(localeEn, 'en');
@@ -41,7 +43,8 @@ registerLocaleData(localeEn, 'en');
4143
export class AppGlobalErrorhandler implements ErrorHandler {
4244
constructor(private errorHandlerService: GlobalErrorHandlerService) {}
4345

44-
handleError(error: any) {
46+
handleError(error: any): void {
47+
Sentry.captureException(error);
4548
this.errorHandlerService.handleError(error);
4649
console.error(error);
4750
}
@@ -88,6 +91,14 @@ export class AppGlobalErrorhandler implements ErrorHandler {
8891
THEME_PROVIDER,
8992
{ provide: ErrorHandler, useClass: AppGlobalErrorhandler, deps: [GlobalErrorHandlerService] },
9093
{ provide: LOCALE_ID, useValue: 'en' },
94+
{ provide: ErrorHandler, useValue: Sentry.createErrorHandler() },
95+
{ provide: Sentry.TraceService, deps: [Router] },
96+
{
97+
provide: APP_INITIALIZER,
98+
useFactory: () => () => {},
99+
deps: [Sentry.TraceService],
100+
multi: true,
101+
},
91102
],
92103
bootstrap: [AppComponent],
93104
})

frontend/src/app/shared/constants/store-functions.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { Selector, Store } from '@ngrx/store';
77
import { MinaState } from '@app/app.setup';
88
import { concatLatestFrom } from '@ngrx/effects';
99
import { TypedAction } from '@ngrx/store/src/models';
10+
import * as Sentry from '@sentry/angular';
1011

1112
export const catchErrorAndRepeat = <T>(errType: MinaErrorType, type: string, payload?: any): OperatorFunction<T, ErrorAdd | T | FeatureAction<any>> => {
1213
return (source: Observable<T>) =>
@@ -21,6 +22,7 @@ export const catchErrorAndRepeat = <T>(errType: MinaErrorType, type: string, pay
2122

2223
export const addError = (error: HttpErrorResponse | Error, type: MinaErrorType): ErrorAdd => {
2324
console.error(error);
25+
Sentry.captureException(error, { tags: { type } });
2426
return {
2527
type: ADD_ERROR,
2628
payload: {

frontend/src/app/shared/types/core/environment/mina-env.type.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ export interface MinaEnv {
66
hideNodeStats?: boolean;
77
canAddNodes?: boolean;
88
showWebNodeLandingPage?: boolean;
9+
sentry?: {
10+
dsn: string;
11+
tracingOrigins: string[];
12+
};
913
globalConfig?: {
1014
features?: FeaturesConfig;
1115
graphQL?: string;

frontend/src/app/shared/types/web-node-demo/web-node-demo-loading-step.type.ts

Lines changed: 0 additions & 6 deletions
This file was deleted.

frontend/src/app/shared/types/web-node-demo/web-node-demo-transaction.type.ts

Lines changed: 0 additions & 15 deletions
This file was deleted.

frontend/src/app/shared/types/web-node-demo/web-node-demo-wallet.type.ts

Lines changed: 0 additions & 6 deletions
This file was deleted.

frontend/src/app/shared/types/web-node-demo/web-node-demo-web-node.type.ts

Lines changed: 0 additions & 6 deletions
This file was deleted.

frontend/src/assets/environments/webnode.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ export default {
1414
'benchmarks': ['wallets'],
1515
},
1616
},
17+
sentry: {
18+
dsn: 'https://69aba72a6290383494290cf285ab13b3@o4508216158584832.ingest.de.sentry.io/4508216160616528',
19+
tracingOrigins: ['https://www.openmina.com'],
20+
},
1721
configs: [
1822
{
1923
name: 'Web Node',

0 commit comments

Comments
 (0)