Skip to content

📊 Angular wrapper for Sentry JavaScript SDK

License

Notifications You must be signed in to change notification settings

DSI-HUG/ngx-sentry

Repository files navigation

@hug/ngx-sentry


hug-logo

Angular wrapper for the official Sentry JavaScript SDK

npm version npm donwloads license GPLv3

build status PRs welcome


Getting started

To set up or update an Angular project with this library use the Angular CLI's schematic commands:

Installation

ng add @hug/ngx-sentry
More details

The ng add command will ask you the following questions:

  1. Name of the project in Sentry: the name used when creating the Sentry project
  2. Data Source Name (DSN) url: the url provided during the Sentry project creation process

And will also perform the following actions:

  • Create a .sentryclirc file containing all the Sentry configurations
  • Initialize and configure Sentry in main.ts
  • Add resolveJsonModule and allowSyntheticDefaultImports to tsconfig.json
  • Import the NgxSentryModule in your Angular application module (if app is not standalone)

Update

ng update @hug/ngx-sentry

Usage

Follow these steps to integrate your project's source maps with Sentry:

  1. Generate Source Maps

    ng build --source-map
  2. Provide Source Maps to Sentry

    npx ngx-sentry ./project-dist-path

Options

This library is a wrapper around the official Sentry JavaScript SDK with extra functionalities and configurations.

All options available in @sentry/browser can be configured from @hug/ngx-sentry.

You shouldn't have to configure anything else but in case you wanted to, you can still do it.

Sentry Browser's SDK

The Sentry Browser's SDK can be configured in main.ts:

initSentry(options: BrowserOptions);

Error handler

The behavior of the error handler can be configured either in:

  • main.ts (if the app is a standalone Angular application)

    bootstrapApplication(AppComponent, {
      providers: [
        provideSentry(options?: ErrorHandlerOptions)
      ]
    });
  • app.module.ts (if the app is not a standalone Angular application)

    @NgModule({
      imports: [
        NgxSentryModule.forRoot(options?: ErrorHandlerOptions)
      ]
    })
    export class AppModule { }

Current user

You can define the current user via the setSentryUser() api:

// import { setSentryUser } from '@hug/ngx-sentry/standalone';
// import { setSentryUser } from '@hug/ngx-sentry';

public ngOnInit(): void {
  // Set the current user
  setSentryUser({
    email: '[email protected]',
    username: 'rtrm',
    attr1: 'attr1'
  });

  // Remove the current user
  setSentryUser(null);
}

Development

See the developer docs.

Contributing

> Want to Help?

Want to file a bug, contribute some code or improve documentation? Excellent!

But please read up first on the guidelines for contributing, and learn about submission process, coding rules and more.

> Code of Conduct

Please read and follow the Code of Conduct, and help us keep this project open and inclusive.

Credits

Copyright (C) 2021 HUG - Hôpitaux Universitaires Genève

love@hug