socialnetworknews-web

A open-source Paper.li clone
git clone git://archive.git.mtrnord.blog/SocialNetworkNews/socialnetworknews-web.git
Log | Files | Refs | README | LICENSE

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 }