From 0af4579204fcbabbce239b2fbd4dfef0df58774d Mon Sep 17 00:00:00 2001 From: Vendicated Date: Mon, 7 Nov 2022 21:05:33 +0100 Subject: Add tracer, fix MessageActions slow startup --- src/plugins/index.ts | 13 +++++++------ src/plugins/messageActions.ts | 19 ++++++++++--------- 2 files changed, 17 insertions(+), 15 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/index.ts b/src/plugins/index.ts index 86d44b4..d3842aa 100644 --- a/src/plugins/index.ts +++ b/src/plugins/index.ts @@ -20,6 +20,7 @@ import Plugins from "~plugins"; import { registerCommand, unregisterCommand } from "../api/Commands"; import { Settings } from "../api/settings"; +import { traceFunction } from "../debug/Tracer"; import Logger from "../utils/logger"; import { Patch, Plugin } from "../utils/types"; @@ -43,12 +44,12 @@ for (const p of Object.values(Plugins)) } } -export function startAllPlugins() { +export const startAllPlugins = traceFunction("startAllPlugins", function startAllPlugins() { for (const name in Plugins) if (isPluginEnabled(name)) { startPlugin(Plugins[name]); } -} +}); export function startDependenciesRecursive(p: Plugin) { let restartNeeded = false; @@ -70,7 +71,7 @@ export function startDependenciesRecursive(p: Plugin) { return { restartNeeded, failures }; } -export function startPlugin(p: Plugin) { +export const startPlugin = traceFunction("startPlugin", function startPlugin(p: Plugin) { if (p.start) { logger.info("Starting plugin", p.name); if (p.started) { @@ -100,9 +101,9 @@ export function startPlugin(p: Plugin) { } return true; -} +}, p => `startPlugin ${p.name}`); -export function stopPlugin(p: Plugin) { +export const stopPlugin = traceFunction("stopPlugin", function stopPlugin(p: Plugin) { if (p.stop) { logger.info("Stopping plugin", p.name); if (!p.started) { @@ -131,4 +132,4 @@ export function stopPlugin(p: Plugin) { } return true; -} +}, p => `stopPlugin ${p.name}`); diff --git a/src/plugins/messageActions.ts b/src/plugins/messageActions.ts index 5fe06c0..98c920e 100644 --- a/src/plugins/messageActions.ts +++ b/src/plugins/messageActions.ts @@ -17,9 +17,10 @@ */ import { addClickListener, removeClickListener } from "../api/MessageEvents"; +import { lazyWebpack } from "../utils"; import { Devs } from "../utils/constants"; import definePlugin from "../utils/types"; -import { find, findByProps } from "../webpack"; +import { filters } from "../webpack"; import { UserStore } from "../webpack/common"; let isDeletePressed = false; @@ -33,10 +34,10 @@ export default definePlugin({ dependencies: ["MessageEventsAPI"], start() { - const { deleteMessage, startEditMessage } = findByProps("deleteMessage", "startEditMessage"); - const { can } = findByProps("can", "initialize"); - const { MANAGE_MESSAGES } = find(m => typeof m.MANAGE_MESSAGES === "bigint"); - const { isEditing } = findByProps("isEditing", "isEditingAny"); + const MessageActions = lazyWebpack(filters.byProps("deleteMessage", "startEditMessage")); + const PermissionStore = lazyWebpack(filters.byProps("can", "initialize")); + const Permissions = lazyWebpack(m => typeof m.MANAGE_MESSAGES === "bigint"); + const EditStore = lazyWebpack(filters.byProps("isEditing", "isEditingAny")); document.addEventListener("keydown", keydown); document.addEventListener("keyup", keyup); @@ -44,12 +45,12 @@ export default definePlugin({ this.onClick = addClickListener((msg, chan, event) => { const isMe = msg.author.id === UserStore.getCurrentUser().id; if (!isDeletePressed) { - if (isMe && event.detail >= 2 && !isEditing(chan.id, msg.id)) { - startEditMessage(chan.id, msg.id, msg.content); + if (isMe && event.detail >= 2 && !EditStore.isEditing(chan.id, msg.id)) { + MessageActions.startEditMessage(chan.id, msg.id, msg.content); event.preventDefault(); } - } else if (isMe || can(MANAGE_MESSAGES, chan)) { - deleteMessage(chan.id, msg.id); + } else if (isMe || PermissionStore.can(Permissions.MANAGE_MESSAGES, chan)) { + MessageActions.deleteMessage(chan.id, msg.id); event.preventDefault(); } }); -- cgit