]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/main.ts
Fix REST API menu link
[github/Chocobozzz/PeerTube.git] / client / src / main.ts
index 2d1749c420256a02eabaad237149a89975eb9bce..159c47e868484424e7c4052d3320f0bef4514d2b 100644 (file)
@@ -1,36 +1,43 @@
-import { enableProdMode } 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'
 
 if (environment.production) {
   enableProdMode()
 }
 
+logger.registerServerSending(environment.apiUrl)
+
 const bootstrap = () => platformBrowserDynamic()
   .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 && typeof navigator.serviceWorker.getRegistrations === 'function') {
-      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
   })