X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fmain.ts;h=dee962180896dbf66229d4a7ddab430ca6666345;hb=457bb213b273a9b206cc5654eb085cede4e916ad;hp=70bf4853782ed6ac515d453e34b36ea955e0300a;hpb=a6375e69668ea42e19531c6bc68dcd37f3f7cbd7;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/main.ts b/client/src/main.ts index 70bf48537..dee962180 100644 --- a/client/src/main.ts +++ b/client/src/main.ts @@ -1,20 +1,62 @@ -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; -import { decorateModuleRef } from './app/environment'; -import { bootloader } from '@angularclass/hmr'; -/* - * App Module - * our top level module that holds all of our components - */ -import { AppModule } from './app'; - -/* - * Bootstrap our Angular app with a top level NgModule - */ -export function main(): Promise { - return platformBrowserDynamic() - .bootstrapModule(AppModule) - .then(decorateModuleRef) - .catch(err => console.error(err)); +import { enableProdMode, TRANSLATIONS, TRANSLATIONS_FORMAT } from '@angular/core' +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic' + +import { AppModule } from './app/app.module' +import { environment } from './environments/environment' + +import { hmrBootstrap } from './hmr' +import { getDevLocale, isOnDevLocale } from '@app/shared/i18n/i18n-utils' +import { buildFileLocale } from '../../shared' + +let providers: any[] = [] +if (environment.production) { + enableProdMode() +} + +// Template translation, should be in the bootstrap step +if (isOnDevLocale()) { + const locale = buildFileLocale(getDevLocale()) + const translations = require(`raw-loader!./locale/target/angular_${locale}.xml`) + + providers = [ + { provide: TRANSLATIONS, useValue: translations }, + { provide: TRANSLATIONS_FORMAT, useValue: 'xlf' } + ] } -bootloader(main); +const bootstrap = () => platformBrowserDynamic() + .bootstrapModule(AppModule, { providers }) + .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() + } + }) + } + + return bootstrapModule + }) + .catch(err => { + console.error(err) + 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() +}