GoonCord/src/index.ts

51 lines
1.5 KiB
TypeScript
Raw Normal View History

2024-03-06 01:57:59 +08:00
import initFixes from "@core/fixes";
2024-03-09 07:43:04 +08:00
import { initFetchI18nStrings } from "@core/i18n";
2024-03-06 01:57:59 +08:00
import { initCorePlugins } from "@core/plugins";
import initSettings from "@core/ui/settings";
import { _patchAssets } from "@lib/api/assets";
import { _patchCommands } from "@lib/api/commands";
import { _injectFluxInterceptor } from "@lib/api/flux";
2024-03-06 01:57:59 +08:00
import { isThemeSupported } from "@lib/api/native/loader";
import { _patchLogHook } from "@lib/debug";
import { _initPlugins } from "@lib/managers/plugins";
import { _initThemes, _patchChatBackground } from "@lib/managers/themes";
2024-03-08 01:06:25 +08:00
import { _patchSettings } from "@lib/ui/settings";
2024-03-07 12:35:07 +08:00
import { logger } from "@lib/utils/logger";
2024-02-23 13:29:06 +08:00
import initWindowObject from "@lib/windowObject";
2024-03-06 01:57:59 +08:00
import initSafeMode from "@ui/safeMode";
2022-10-18 23:04:55 +01:00
export default async () => {
2024-02-29 20:07:55 +08:00
// Themes
if (isThemeSupported()) {
try {
_initThemes();
2024-02-29 20:07:55 +08:00
} catch (e) {
2024-03-01 14:25:43 +08:00
console.error("[Bunny] Failed to initialize themes...", e);
2024-02-29 20:07:55 +08:00
}
}
// Load everything in parallel
const unloads = await Promise.all([
_injectFluxInterceptor(),
2024-03-08 01:06:25 +08:00
_patchSettings(),
_patchLogHook(),
_patchAssets(),
_patchCommands(),
_patchChatBackground(),
2024-03-09 07:43:04 +08:00
initFetchI18nStrings(),
2024-03-08 01:06:25 +08:00
initSettings(),
initFixes(),
initSafeMode(),
2024-02-28 17:59:47 +08:00
initCorePlugins(),
]);
2022-10-18 23:04:55 +01:00
// Assign window object
2024-02-23 13:29:06 +08:00
initWindowObject(unloads);
// Once done, load plugins
unloads.push(await _initPlugins());
// We good :)
2024-03-01 14:25:43 +08:00
logger.log("Bunny is ready!");
2024-03-06 01:57:59 +08:00
};