Skip to content

Commit 849c2a1

Browse files
Refactor plugin initialization and remove plugin registry
1 parent 7dee550 commit 849c2a1

File tree

3 files changed

+20
-34
lines changed

3 files changed

+20
-34
lines changed

heartbeat_monitor/src/jsMain/kotlin/Main.kt

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package hello
22

3+
import kotlinx.browser.window
34
import kotlinx.coroutines.MainScope
5+
import kotlinx.coroutines.await
46
import kotlinx.coroutines.promise
57
import kotlin.js.Promise
68

@@ -15,4 +17,20 @@ fun init(): Promise<Unit> = MainScope().promise {
1517
SortPlugin.init()
1618
FirebaseLoginPlugin.init()
1719
KanbanBroFirebaseHeartbeatCardProviderPlugin.init()
20+
21+
22+
FaviconPlugin.apply().await()
23+
24+
TitlePlugin.apply().await()
25+
ThemeTogglePlugin.apply().await()
26+
AutoUpdatePlugin.apply().await()
27+
UpdatePlugin.apply().await()
28+
29+
if (false) SampleCardProviderPlugin.apply().await()
30+
FirebaseLoginPlugin.apply().await()
31+
SortPlugin.apply().await()
32+
KanbanBroFirebaseHeartbeatCardProviderPlugin.apply().await()
33+
34+
KanbanBro.event.dispatchEvent(new(window.asDynamic().Event, "pluginLoaded"))
35+
1836
}

heartbeat_monitor/src/jsMain/kotlin/Plugin.kt

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,10 @@ import kotlinx.coroutines.MainScope
44
import kotlinx.coroutines.promise
55
import kotlin.js.Promise
66

7-
@JsExport
87
interface Plugin {
98
fun apply(): Promise<Unit>
109
}
1110

12-
@JsExport
13-
fun getPlugin(name: String): Plugin? = Plugins.plugins[name]
14-
15-
@JsExport
16-
fun getAllPlugins(): Array<Plugin> = Plugins.plugins.values.toTypedArray()
17-
18-
object Plugins {
19-
val plugins = mutableMapOf<String, Plugin>()
20-
}
21-
22-
2311
abstract class AbstractPlugin(val name: String) : Plugin {
2412
final override fun apply(): Promise<Unit> {
2513
return MainScope().promise {
@@ -29,7 +17,5 @@ abstract class AbstractPlugin(val name: String) : Plugin {
2917

3018
protected abstract suspend fun applyImpl()
3119

32-
open suspend fun init() {
33-
Plugins.plugins[name] = this
34-
}
20+
open suspend fun init() = Unit
3521
}

heartbeat_monitor/src/jsMain/resources/index.html

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -672,26 +672,8 @@
672672

673673
</script>
674674
<script type="module">
675-
import { init, getPlugin } from "./heartbeat_monitor.js";
676-
675+
import { init } from "./heartbeat_monitor.js";
677676
await init();
678-
679-
document.addEventListener('DOMContentLoaded', async () => {
680-
681-
await getPlugin("FaviconPlugin").apply();
682-
683-
await getPlugin("TitlePlugin").apply();
684-
await getPlugin("ThemeTogglePlugin").apply();
685-
await getPlugin("AutoUpdatePlugin").apply();
686-
await getPlugin("UpdatePlugin").apply();
687-
688-
if (false) await getPlugin("SampleCardProviderPlugin").apply();
689-
await getPlugin("FirebaseLoginPlugin").apply();
690-
await getPlugin("SortPlugin").apply();
691-
await getPlugin("KanbanBroFirebaseHeartbeatCardProviderPlugin").apply();
692-
693-
window.KanbanBro.event.dispatchEvent(new Event('pluginLoaded'));
694-
}, { once: true });
695677
</script>
696678
</body>
697679
</html>

0 commit comments

Comments
 (0)