Skip to content

leftyio/angular_sentry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Oct 23, 2021
8f1a247 · Oct 23, 2021

History

33 Commits
Oct 23, 2021
Oct 23, 2021
Oct 23, 2021
Apr 16, 2018
Oct 23, 2021
Feb 20, 2018
Oct 23, 2021
Oct 23, 2021
Aug 13, 2020
Oct 23, 2021

Repository files navigation

Dart

angular_sentry

Helper to implements sentry.io with Angular.

Usage

Inject Angular Sentry

import "package:angular/angular.dart";
import "package:angular_sentry/angular_sentry.dart";

// ignore: uri_has_not_been_generated
import 'main.template.dart' as ng;

const sentryModule = Module(provide: [
  ClassProvider(ExceptionHandler, useClass: AngularSentry),
]);

@GenerateInjector([sentryModule])
const scannerApp = ng.scannerApp$Injector;

Init Sentry and run your app

Future<void> main() async {
  await Sentry.init(
    (options) {
      options.dsn = 'https://example@sentry.io/add-your-dsn-here';
      options.environment = 'production';
      options.release = '1.0.0';
    },
    appRunner: initApp,
  );
}

void initApp() {
  runApp(ng.AppComponentNgFactory, createInjector: scannerApp);
}

Advanced

Implement your own class using AngularSentry

class AppSentry extends AngularSentry {
  @override
  Event transformEvent(SentryEvent e) {
    return super.transformEvent(e).copyWith(
      user: SentryUser(id: '1', ipAddress: '0.0.0.0'),
      extra: {"location_url": window.location.href},
    );
  }

  @override
  void capture(exception, [trace, String reason]) {
    if (exception is ClientException) {
      logError("Network error");
    } else {
      super.capture(exception, trace, reason);
    }
  }
}

const sentryModule = Module(provide: [
  FactoryProvider(SentryClient, sentryProdider),
  ClassProvider(ExceptionHandler, useClass: AppSentry),
]);

main() {
  runApp(appComponentNgFactory, createInjector: scannerApp);
}

Releases

No releases published

Packages

No packages published