From f5f27eddc93314e8e10ab96c7bdb5c626142a1d3 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Mon, 27 Dec 2021 19:41:46 +0100 Subject: refactor: Inversion of control with typed-inject --- packages/main/src/controllers/MainController.ts | 38 +++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 packages/main/src/controllers/MainController.ts (limited to 'packages/main/src/controllers/MainController.ts') diff --git a/packages/main/src/controllers/MainController.ts b/packages/main/src/controllers/MainController.ts new file mode 100644 index 0000000..6b97330 --- /dev/null +++ b/packages/main/src/controllers/MainController.ts @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021-2022 Kristóf Marussy + * + * This file is part of Sophie. + * + * Sophie is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import type { ConfigController } from './ConfigController'; +import type { NativeThemeController } from './NativeThemeController'; +import type { MainStore } from '../stores/MainStore'; + +export class MainController { + static inject = ['configController', 'nativeThemeController'] as const; + + constructor( + private readonly configController: ConfigController, + private readonly nativeThemeController: NativeThemeController, + ) { + } + + async connect(store: MainStore): Promise { + await this.configController.initConfig(store.config); + this.nativeThemeController.connect(store); + } +} -- cgit v1.2.3-70-g09d2