mirror of
https://github.com/Eugeny/tabby.git
synced 2025-06-16 01:19:58 +00:00
43 lines
1.5 KiB
TypeScript
43 lines
1.5 KiB
TypeScript
import 'zone.js'
|
|
import 'core-js/proposals/reflect-metadata'
|
|
import 'core-js/features/array/flat'
|
|
import 'rxjs'
|
|
|
|
import './global.scss'
|
|
import './toastr.scss'
|
|
|
|
import { enableProdMode, NgModuleRef, ApplicationRef } from '@angular/core'
|
|
import { enableDebugTools } from '@angular/platform-browser'
|
|
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'
|
|
|
|
import { getRootModule } from './app.module'
|
|
import { BootstrapData, BOOTSTRAP_DATA } from '../../terminus-core/src/api/mainProcess'
|
|
|
|
|
|
window['bootstrapTerminus'] = async function bootstrap (packageModules: any[], bootstrapData: BootstrapData, debugMode = false): Promise<NgModuleRef<any>> {
|
|
const pluginModules = []
|
|
for (const packageModule of packageModules) {
|
|
const pluginModule = packageModule.default.forRoot ? packageModule.default.forRoot() : packageModule.default
|
|
pluginModule.pluginName = packageModule.pluginName
|
|
pluginModule.bootstrap = packageModule.bootstrap
|
|
pluginModules.push(pluginModule)
|
|
}
|
|
|
|
if (!debugMode) {
|
|
enableProdMode()
|
|
}
|
|
|
|
const module = getRootModule(pluginModules)
|
|
window['rootModule'] = module
|
|
|
|
const moduleRef = await platformBrowserDynamic([
|
|
{ provide: BOOTSTRAP_DATA, useValue: bootstrapData },
|
|
]).bootstrapModule(module)
|
|
if (debugMode) {
|
|
const applicationRef = moduleRef.injector.get(ApplicationRef)
|
|
const componentRef = applicationRef.components[0]
|
|
enableDebugTools(componentRef)
|
|
}
|
|
return moduleRef
|
|
}
|