import { Injectable, Inject, } from '@angular/core'; import {PlatformLocation} from '@angular/common' import {log as defaultLog} from './util/log'; const IsBot = require("./util/is-bot.js"); const log = defaultLog.factory('boot'); declare global { interface Window { corifeusLoader: number, corifeus: { booted: boolean, app: { web: any, server: any } core: { http: { counter: number, status: number, counterUrlMap: any, error: Array<any> } } }; } } window.corifeusLoader = 0 window.corifeus = { booted: false, core: { http: { status: 200, counter: 0, counterUrlMap: {}, error: [], } }, app: { web: {}, server: {} } } let httpCounter = 0; Object.defineProperty(window.corifeus.core.http, 'counter', { get: () => { return httpCounter; }, set: (value) => { httpCounter = value; } }) import {SettingsService, LocaleService} from "./"; import {RouterService} from "./services/router"; @Injectable() export class Boot { constructor( private settings: SettingsService, private locale: LocaleService, private routerService: RouterService, private location: PlatformLocation ) { } boot() { log('booted'); this.settings.boot(); const module = 'core'; const body = document.getElementsByTagName("body")[0]; const corySeo = document.createElement('div'); body.appendChild(corySeo) corySeo.id = 'cory-seo'; this.settings.register(module, require('./json/settings.json')); // after settings this.locale.boot(); if (!IsBot()) { corySeo.style.display = 'none'; } window.corifeus.booted = true; this.location.onPopState(() => { this.routerService.scrollToTop(); }); } }