保存一下

This commit is contained in:
2025-08-26 10:33:41 +08:00
parent 95a73ef524
commit 26f68d89bb
19 changed files with 165 additions and 71 deletions

View File

@@ -1,18 +1,20 @@
import ProcessManages from './process/ProcessManages.ts'
import AppProcess from './process/AppProcess.ts'
import type { AppProcessInfo } from '@/core/process/AppProcessInfo.ts'
import ProcessManageImpl from './process/impl/ProcessManageImpl.ts'
import ProcessImpl from './process/impl/ProcessImpl.ts'
import type { ProcessInfoImpl } from '@/core/process/impl/ProcessInfoImpl.ts'
import { isUndefined } from 'lodash'
import { BasicSystemProcess } from '@/core/system/BasicSystemProcess.ts'
import { DesktopProcess } from '@/core/desktop/DesktopProcess.ts'
import type { IAllEvent } from '@/core/events/EventTypes.ts'
import type { IEventBuilder } from '@/core/events/IEventBuilder.ts'
import { EventBuilderImpl } from '@/core/events/impl/EventBuilderImpl.ts'
import type { IProcessManage } from '@/core/process/IProcessManage.ts'
import type { IProcess } from '@/core/process/IProcess.ts'
export default class XSystem {
private static _instance: XSystem = new XSystem()
private _processManages: ProcessManages = new ProcessManages()
private _eventManages: IEventBuilder<IAllEvent> = new EventBuilderImpl()
private _processManage: IProcessManage = new ProcessManageImpl()
private _eventManage: IEventBuilder<IAllEvent> = new EventBuilderImpl()
constructor() {
console.log('XSystem')
@@ -21,11 +23,11 @@ export default class XSystem {
public static get instance() {
return this._instance
}
public get processManages() {
return this._processManages
public get processManage() {
return this._processManage
}
public get eventManages() {
return this._eventManages
public get eventManage() {
return this._eventManage
}
public initialization(dom: HTMLDivElement) {
@@ -37,25 +39,25 @@ export default class XSystem {
}
// 运行进程
public async run<T extends AppProcess = AppProcess>(
proc: string | AppProcessInfo,
constructor?: new (info: AppProcessInfo) => T,
public async run<T extends IProcess = IProcess>(
proc: string | ProcessInfoImpl,
constructor?: new (info: ProcessInfoImpl) => T,
): Promise<T> {
let info = typeof proc === 'string' ? this._processManages.findProcessInfoByName(proc) : proc
let info = typeof proc === 'string' ? this._processManage.findProcessInfoByName(proc) : proc
if (isUndefined(info)) {
throw new Error(`未找到进程信息:${proc}`)
}
// 是单例应用
if (info.singleton) {
let process = this._processManages.findProcessByName(info.name)
let process = this._processManage.findProcessByName(info.name)
if (process) {
return process as T
}
}
// 创建进程
let process = isUndefined(constructor) ? new AppProcess(info) : new constructor(info)
let process = isUndefined(constructor) ? new ProcessImpl(info) : new constructor(info)
return process as T
}