From cf35b4ad1e630e71a93adce253e48d8e546b2f93 Mon Sep 17 00:00:00 2001 From: npmrun <1549469775@qq.com> Date: Mon, 18 Nov 2024 23:13:31 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E9=87=8D=E6=9E=84=E9=83=A8?= =?UTF-8?q?=E5=88=86ioc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/App.ts | 24 ++++++++++++++++++++++++ src/main/base/base.ts | 7 ++++--- src/main/index.ts | 4 ++-- src/main/modules/App.ts | 25 ------------------------- src/main/modules/index.ts | 9 --------- src/main/modules/ioc.ts | 18 ++++++++++++++++++ src/main/modules/module.ts | 13 ------------- src/main/modules/setting/index.ts | 1 - 8 files changed, 48 insertions(+), 53 deletions(-) create mode 100644 src/main/App.ts delete mode 100644 src/main/modules/App.ts delete mode 100644 src/main/modules/index.ts create mode 100644 src/main/modules/ioc.ts delete mode 100644 src/main/modules/module.ts diff --git a/src/main/App.ts b/src/main/App.ts new file mode 100644 index 0000000..acde0e4 --- /dev/null +++ b/src/main/App.ts @@ -0,0 +1,24 @@ +import { inject } from "inversify" +import Setting from "./modules/setting" +import DB from "./modules/db" + +class App { + private _setting: Setting + private _db: DB + + constructor(@inject(Setting) setting: Setting, @inject(DB) db: DB) { + console.log(`App inited`) + + this._setting = setting + this._db = db + } + + async init() { + console.log(this._setting.config()) + this._db.saveData("aaa", { a: 123123 }) + console.log(await this._db.getData("aaa")) + } +} + +export default App +export { App } diff --git a/src/main/base/base.ts b/src/main/base/base.ts index 44849ab..8e1c804 100644 --- a/src/main/base/base.ts +++ b/src/main/base/base.ts @@ -1,3 +1,4 @@ -abstract class Base { - constructor() {} -} +abstract class Base {} + +export { Base } +export default Base diff --git a/src/main/index.ts b/src/main/index.ts index 00dc8e4..34beb5b 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -3,8 +3,8 @@ import { app, shell, BrowserWindow, ipcMain } from "electron" import { join } from "path" import { electronApp, optimizer, is } from "@electron-toolkit/utils" import icon from "res/icon.png?asset" -import { container } from "vc/modules" -import { App } from "vc/modules/App" +import { container } from "vc/modules/ioc" +import { App } from "vc/App" container.get(App).init() diff --git a/src/main/modules/App.ts b/src/main/modules/App.ts deleted file mode 100644 index ff870ba..0000000 --- a/src/main/modules/App.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { injectable, inject } from "inversify" -import Setting from "./setting" -import DB from "./db" - -@injectable() -class App { - private _setting: Setting - private _db: DB - - constructor(@inject(Setting) setting: Setting, @inject(DB) db: DB) { - console.log(`App inited`) - - this._setting = setting - this._db = db - } - - async init() { - console.log(this._setting.config()) - this._db.saveData("aaa", { a: 123123 }) - console.log(await this._db.getData("aaa")) - } -} - -export default App -export { App } diff --git a/src/main/modules/index.ts b/src/main/modules/index.ts deleted file mode 100644 index 19c142e..0000000 --- a/src/main/modules/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Container } from "inversify" -import module from "./module" - -const container = new Container() - -container.load(module) - -export default container -export { container } diff --git a/src/main/modules/ioc.ts b/src/main/modules/ioc.ts new file mode 100644 index 0000000..b769180 --- /dev/null +++ b/src/main/modules/ioc.ts @@ -0,0 +1,18 @@ +import { Container } from "inversify" +import { ContainerModule } from "inversify" +import { Setting } from "./setting" +import { DB } from "./db" +import App from "../App" + +const module = new ContainerModule(bind => { + bind(Setting).toConstantValue(new Setting()) + bind(DB).toSelf().inSingletonScope() + bind(App).toSelf().inSingletonScope() +}) + +const container = new Container() + +container.load(module) + +export default container +export { container } diff --git a/src/main/modules/module.ts b/src/main/modules/module.ts deleted file mode 100644 index da41a5f..0000000 --- a/src/main/modules/module.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ContainerModule } from "inversify" -import { Setting } from "./setting" -import { DB } from "./db" -import App from "./App" - -const module = new ContainerModule(bind => { - bind(Setting).toConstantValue(new Setting()) - bind(DB).toSelf().inSingletonScope() - bind(App).toSelf().inSingletonScope() -}) - -export default module -export { module } diff --git a/src/main/modules/setting/index.ts b/src/main/modules/setting/index.ts index 9b0d92c..915dd0c 100644 --- a/src/main/modules/setting/index.ts +++ b/src/main/modules/setting/index.ts @@ -58,7 +58,6 @@ function isEmptyDir(fPath: string) { class Setting { constructor() { console.log(`Setting inited`) - this.#init() } #cb: [IT, IOnFunc][] = []