import Interrupt from "./class/Interrupt" import Initializer from "./class/Initializer" // import { Common } from "./class/Common" // import UrlRouter from "./class/UrlRouter" import translateMain from "./func/translate/translateMain" import CommonUtils from "./class/utils/CommonUtils" import LocalConfigWrapper from "./class/LocalConfigWrapper" import ClassName from "./container/ClassName" import { Injectable } from "./container/Injectable" import FeatureMan from "./man/FeatureMan" import Logger from "./class/Logger" @ClassName('Application') @Injectable() export default class App { private readonly logger = Logger.factory(App) constructor( private readonly interrupt: Interrupt, private readonly initializer: Initializer, // private readonly common: Common, // private readonly urlRouter: UrlRouter, private readonly configWrapper: LocalConfigWrapper, private readonly utils: CommonUtils, private readonly featureMan: FeatureMan, ) { } public run() { this.interrupt.conditionInterrupt(); // 初始化 this.initializer.init(); // this.featureMan.fStart().then(() => this.featureMan.printTable()); // 插件图标和设置菜单 // this.icon.init(); let tmp = () => { // // 所有页面通用 // try { // // this.common.resolve.apply(this.common, this.run); // // this.common.resolve(() => this.run()); // } catch (e) { // } (async function (self: App) { await self.featureMan.fStart() self.featureMan.printTable() })(this) // URL匹配 // this.urlRouter.resolve(); // 翻译 if (this.configWrapper.config.transEnable) translateMain(window.location.href); }; // TODO 临时检测jquery if (typeof $ === "function") { tmp(); } else { this.utils.jQueryReady().then(() => tmp()); } } }