X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fmain.ts;h=159c47e868484424e7c4052d3320f0bef4514d2b;hb=951414fc62a40aad4e7295029f3c57489bee2491;hp=7c058e12fd165a77e993f602a1c23feb8f3857c0;hpb=0f6da32b148c0f4146b2ae9ad1add9a9f00cc339;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/main.ts b/client/src/main.ts index 7c058e12f..159c47e86 100644 --- a/client/src/main.ts +++ b/client/src/main.ts @@ -1,34 +1,44 @@ -import { enableProdMode, provide } from '@angular/core'; -import { disableDeprecatedForms, provideForms } from '@angular/forms'; -import { - HTTP_PROVIDERS, - RequestOptions, - XHRBackend -} from '@angular/http'; -import { bootstrap } from '@angular/platform-browser-dynamic'; -import { provideRouter } from '@angular/router'; - -import { routes } from './app/app.routes'; -import { AuthHttp, AuthService } from './app/shared'; -import { AppComponent } from './app/app.component'; - -if (process.env.ENV === 'production') { - enableProdMode(); +import { ApplicationRef, enableProdMode } from '@angular/core' +import { enableDebugTools } from '@angular/platform-browser' +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic' +import { AppModule } from './app/app.module' +import { environment } from './environments/environment' +import { logger } from './root-helpers' + +if (environment.production) { + enableProdMode() } -bootstrap(AppComponent, [ - HTTP_PROVIDERS, - provide(AuthHttp, { - useFactory: (backend: XHRBackend, defaultOptions: RequestOptions, authService: AuthService) => { - return new AuthHttp(backend, defaultOptions, authService); - }, - deps: [ XHRBackend, RequestOptions, AuthService ] - }), +logger.registerServerSending(environment.apiUrl) + +const bootstrap = () => platformBrowserDynamic() + .bootstrapModule(AppModule) + .then(bootstrapModule => { + if (!environment.production) { + const applicationRef = bootstrapModule.injector.get(ApplicationRef) + const componentRef = applicationRef.components[0] + + // allows to run `ng.profiler.timeChangeDetection();` + enableDebugTools(componentRef) + } + + return bootstrapModule + }) + .catch(err => { + try { + logger.error(err) + } catch (err2) { + console.error('Cannot log error', { err, err2 }) + } - AuthService, + // Ensure we display an "incompatible message" on Angular bootstrap error + setTimeout(() => { + if (document.querySelector('my-app').innerHTML === '') { + throw err + } + }, 1000) - provideRouter(routes), + return null + }) - disableDeprecatedForms(), - provideForms() -]); +bootstrap()