app.module.ts (3013B)
1 import { BrowserModule } from '@angular/platform-browser'; 2 import {APP_ID, ErrorHandler, Inject, NgModule, PLATFORM_ID} from '@angular/core'; 3 import {HttpClientModule} from '@angular/common/http'; 4 import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; 5 import * as Raven from 'raven-js'; 6 import {ToastrModule} from 'ngx-toastr'; 7 import {NgHttpLoaderModule} from 'ng-http-loader'; 8 9 import { AppComponent } from './app.component'; 10 import { MainComponent } from './main/main.component'; 11 import {AppRoutingModule} from './app.routing'; 12 import { PaperComponent } from './paper/paper.component'; 13 import { PapersComponent } from './papers/papers.component'; 14 import { TweetListComponent } from './tweet-list/tweet-list.component'; 15 import { PapersListComponent } from './papers-list/papers-list.component'; 16 import { SpinnerComponent } from './spinner/spinner.component'; 17 import { LoginComponent } from './login/login.component'; 18 import { ProfileComponent } from './user/profile/profile.component'; 19 import { SettingsComponent } from './user/settings/settings.component'; 20 import { TwitterComponent as CallbackTwitterComponent } from './callback/twitter/twitter.component'; 21 22 import {MatCardModule} from '@angular/material/card'; 23 import {MatButtonModule} from '@angular/material/button'; 24 25 import { ApiService } from './api.service'; 26 27 import {Lightbox} from './utils/lightbox'; 28 import {LinkifyPipe} from './utils/linkifier'; 29 import { NavbarComponent } from './navbar/navbar.component'; 30 import {isPlatformBrowser} from '@angular/common'; 31 Raven 32 .config('https://b760c9f9035c472998ada3a02dcc81d3@sentry.io/294520', { 33 environment: 'development', 34 debug: true, 35 autoBreadcrumbs: true 36 }) 37 .install(); 38 39 export class RavenErrorHandler implements ErrorHandler { 40 handleError(err: any ): void { 41 if (err instanceof Error) { 42 Raven.captureException(err); 43 } else { 44 Raven.captureException(new Error(JSON.stringify(err))); 45 } 46 } 47 } 48 @NgModule({ 49 declarations: [ 50 AppComponent, 51 MainComponent, 52 PaperComponent, 53 PapersComponent, 54 TweetListComponent, 55 PapersListComponent, 56 SpinnerComponent, 57 LinkifyPipe, 58 LoginComponent, 59 CallbackTwitterComponent, 60 ProfileComponent, 61 SettingsComponent, 62 NavbarComponent, 63 ], 64 imports: [ 65 BrowserModule.withServerTransition({appId: 'snn-app'}), 66 AppRoutingModule, 67 BrowserAnimationsModule, 68 HttpClientModule, 69 NgHttpLoaderModule, 70 ToastrModule.forRoot(), 71 MatCardModule, 72 MatButtonModule, 73 ], 74 providers: [ 75 ApiService, 76 Lightbox, 77 { provide: ErrorHandler, useClass: RavenErrorHandler } 78 ], 79 bootstrap: [AppComponent], 80 entryComponents: [ 81 SpinnerComponent, 82 ], 83 }) 84 export class AppModule { 85 constructor( 86 @Inject(PLATFORM_ID) private platformId: Object, 87 @Inject(APP_ID) private appId: string) { 88 const platform = isPlatformBrowser(platformId) ? 89 'in the browser' : 'on the server'; 90 console.log(`Running ${platform} with appId=${appId}`); 91 } 92 }