]>
Commit | Line | Data |
---|---|---|
1 | import { ApplicationRef, enableProdMode } from '@angular/core' | |
2 | import { enableDebugTools } from '@angular/platform-browser' | |
3 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic' | |
4 | import { AppModule } from './app/app.module' | |
5 | import { environment } from './environments/environment' | |
6 | import { logger } from './root-helpers' | |
7 | ||
8 | if (environment.production) { | |
9 | enableProdMode() | |
10 | } | |
11 | ||
12 | logger.registerServerSending(environment.apiUrl) | |
13 | ||
14 | const bootstrap = () => platformBrowserDynamic() | |
15 | .bootstrapModule(AppModule) | |
16 | .then(bootstrapModule => { | |
17 | if (!environment.production) { | |
18 | const applicationRef = bootstrapModule.injector.get(ApplicationRef) | |
19 | const componentRef = applicationRef.components[0] | |
20 | ||
21 | // allows to run `ng.profiler.timeChangeDetection();` | |
22 | enableDebugTools(componentRef) | |
23 | } | |
24 | ||
25 | return bootstrapModule | |
26 | }) | |
27 | .catch(err => { | |
28 | try { | |
29 | logger.error(err) | |
30 | } catch (err2) { | |
31 | console.error('Cannot log error', { err, err2 }) | |
32 | } | |
33 | ||
34 | // Ensure we display an "incompatible message" on Angular bootstrap error | |
35 | setTimeout(() => { | |
36 | if (document.querySelector('my-app').innerHTML === '') { | |
37 | throw err | |
38 | } | |
39 | }, 1000) | |
40 | ||
41 | return null | |
42 | }) | |
43 | ||
44 | bootstrap() |