X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fmain.ts;h=159c47e868484424e7c4052d3320f0bef4514d2b;hb=42379e4eef2987472790656d6b8ab6c3a57825fa;hp=19f45a3e309bf46b9c0963841a63487a4ac6d901;hpb=f07d6385b4b46c3254898292a8a53ed415b8d49b;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/main.ts b/client/src/main.ts index 19f45a3e3..159c47e86 100644 --- a/client/src/main.ts +++ b/client/src/main.ts @@ -1,58 +1,44 @@ -import { enableProdMode, TRANSLATIONS, TRANSLATIONS_FORMAT } from '@angular/core' +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' -import { hmrBootstrap } from './hmr' - -let providers = [] if (environment.production) { enableProdMode() } -if (environment.production === false && window.location.search === '?lang=fr') { - const translations = require(`raw-loader!./locale/target/angular_fr.xml`) - - providers = [ - { provide: TRANSLATIONS, useValue: translations }, - { provide: TRANSLATIONS_FORMAT, useValue: 'xlf' } - ] -} +logger.registerServerSending(environment.apiUrl) const bootstrap = () => platformBrowserDynamic() - .bootstrapModule(AppModule, { providers }) + .bootstrapModule(AppModule) .then(bootstrapModule => { - // TODO: Uncomment and remove unregistration when https://github.com/angular/angular/issues/21191 is fixed - // TODO: Remove when https://github.com/angular/angular-cli/issues/8779 is fixed? - // if ('serviceWorker' in navigator && environment.production) { - // navigator.serviceWorker.register('/ngsw-worker.js') - // .catch(err => console.error('Cannot register service worker.', err)) - // } - - if (navigator.serviceWorker) { - navigator.serviceWorker.getRegistrations() - .then(registrations => { - for (const registration of registrations) { - registration.unregister() - } - }) + 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 => { - console.error(err) + try { + logger.error(err) + } catch (err2) { + console.error('Cannot log error', { err, err2 }) + } + + // Ensure we display an "incompatible message" on Angular bootstrap error + setTimeout(() => { + if (document.querySelector('my-app').innerHTML === '') { + throw err + } + }, 1000) + return null }) -if (environment.hmr) { - if (module[ 'hot' ]) { - hmrBootstrap(module, bootstrap) - } else { - console.error('HMR is not enabled for webpack-dev-server!') - console.log('Are you using the --hmr flag for ng serve?') - } -} else { - bootstrap() -} +bootstrap()