|
|
|
@ -3,6 +3,7 @@ import { get, set } from "idb-keyval";
|
|
|
|
|
import logger from "./utils/logger.js";
|
|
|
|
|
import settingsInj from "./settings/settingsInj.js";
|
|
|
|
|
|
|
|
|
|
window.demonPlugins = {} //TODO: jank
|
|
|
|
|
const pluginsSym = Symbol("__plugins");
|
|
|
|
|
|
|
|
|
|
async function init(obj: Object): Promise<boolean> {
|
|
|
|
@ -80,7 +81,7 @@ async function startPlugin(name: string): Promise<boolean> {
|
|
|
|
|
exports.settings
|
|
|
|
|
);
|
|
|
|
|
logger.log(`Started ${name}!`, ["Plugins"]);
|
|
|
|
|
window.demon[pluginsSym][name] = { status: 1, ctx: ctx };
|
|
|
|
|
window.demonPlugins[pluginsSym][name] = { status: 1, ctx: ctx };
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -97,7 +98,7 @@ async function stopPlugin(name: string): Promise<boolean> {
|
|
|
|
|
const plug = globalSettings["plugin"][name];
|
|
|
|
|
const exports: Object = (0, eval)(plug.iife);
|
|
|
|
|
const onStop: (ctx: Object) => void = exports.onStop;
|
|
|
|
|
onStop(window.demon[pluginsSym][name].ctx);
|
|
|
|
|
onStop(window.demonPlugins[pluginsSym][name].ctx);
|
|
|
|
|
settingsInj.unregisterSettingsEntry("DEMON_PLUGIN_SETTINGS_" + name);
|
|
|
|
|
logger.log(`Stopped ${name}!`, ["Plugins"]);
|
|
|
|
|
return true;
|
|
|
|
|