From 77f8d6272058eb5ced49f176bbd34906f9cb2bc9 Mon Sep 17 00:00:00 2001 From: PalmDevs Date: Tue, 17 Jun 2025 19:53:58 +0700 Subject: [PATCH] fix: improve perf by not returning implicitly --- lib/assets/src/caches.ts | 4 +++- lib/discord/src/common/flux.ts | 3 +-- lib/modules/src/caches.ts | 4 +++- lib/plugins/src/_internal.ts | 4 +++- lib/storage/src/preinit.ts | 4 +++- lib/utils/src/callbacks.ts | 4 +++- lib/utils/src/objects.ts | 2 +- lib/utils/src/promises.ts | 10 ++++++++-- shims/react~jsx-runtime.ts | 5 ++--- src/index.ts | 8 ++++---- .../definitions/EvalJSSetting.tsx | 8 ++++++-- .../definitions/RDTAutoConnectSetting.tsx | 4 +++- src/plugins/init/developer-settings/index.ts | 5 ++++- .../screens/AssetBrowserSettingScreen.tsx | 8 ++++++-- .../screens/RevengeDeveloperSettingScreen.tsx | 4 +++- src/plugins/init/settings/components/PluginCard.tsx | 4 +++- .../init/settings/definitions/ReloadSetting.tsx | 4 +++- .../settings/definitions/RevengeDiscordSetting.tsx | 4 +++- .../settings/definitions/RevengeGitHubSetting.tsx | 4 +++- .../settings/definitions/RevengePluginsSetting.tsx | 13 ++++++++++--- src/plugins/init/settings/index.ts | 4 +++- .../settings/screens/RevengeCustomPageScreen.tsx | 4 +++- .../screens/RevengePluginsSettingScreen.tsx | 4 +++- src/plugins/init/staff-settings/index.tsx | 4 +++- 24 files changed, 87 insertions(+), 35 deletions(-) diff --git a/lib/assets/src/caches.ts b/lib/assets/src/caches.ts index 7779965..2493e8f 100644 --- a/lib/assets/src/caches.ts +++ b/lib/assets/src/caches.ts @@ -35,7 +35,9 @@ export interface Cache { } } -const save = debounce(() => CacheStorage.set({}), 1000) +const save = debounce(() => { + CacheStorage.set({}) +}, 1000) export function cacheAsset(asset: Asset, moduleId: Metro.ModuleID) { // Merge directly into the cache, only debouncing actual writes diff --git a/lib/discord/src/common/flux.ts b/lib/discord/src/common/flux.ts index 17d0f14..9b241d9 100644 --- a/lib/discord/src/common/flux.ts +++ b/lib/discord/src/common/flux.ts @@ -33,8 +33,7 @@ export const [Dispatcher, DispatcherModuleId] = lookupModule( ) as [DiscordModules.Flux.Dispatcher, Metro.ModuleID] waitForModules(byProps('_dispatchToken'), store => { - const name = store.getName() - _stores[name] = store + _stores[store.getName()] = store }) const _stores: Record = {} diff --git a/lib/modules/src/caches.ts b/lib/modules/src/caches.ts index e627997..0051dc7 100644 --- a/lib/modules/src/caches.ts +++ b/lib/modules/src/caches.ts @@ -36,7 +36,9 @@ export interface Cache { | undefined } -const save = debounce(() => CacheStorage.set({}), 1000) +const save = debounce(() => { + CacheStorage.set({}) +}, 1000) export function cacheFilterResult( key: Filter['key'], diff --git a/lib/plugins/src/_internal.ts b/lib/plugins/src/_internal.ts index e9aaf91..615dd6f 100644 --- a/lib/plugins/src/_internal.ts +++ b/lib/plugins/src/_internal.ts @@ -304,7 +304,9 @@ export async function stopPlugin(plugin: InternalPlugin) { // If the lifecycles don't finish in 5 seconds, a reload is probably required to unapply the changes if (!finished) plugin.flags |= Flag.ReloadRequired }) - .catch(e => handlePluginError(e, plugin)) + .catch(e => { + handlePluginError(e, plugin) + }) else if ( !(plugin.status & (Status.PreInited | Status.Inited | Status.Started)) ) diff --git a/lib/storage/src/preinit.ts b/lib/storage/src/preinit.ts index 653e3a0..44b2373 100644 --- a/lib/storage/src/preinit.ts +++ b/lib/storage/src/preinit.ts @@ -1,3 +1,5 @@ import { _emitter } from '@revenge-mod/plugins/_' -_emitter.on('register', (plugin, options) => (plugin._s = options.storage)) +_emitter.on('register', (plugin, options) => { + plugin._s = options.storage +}) diff --git a/lib/utils/src/callbacks.ts b/lib/utils/src/callbacks.ts index f5de22b..179f3ee 100644 --- a/lib/utils/src/callbacks.ts +++ b/lib/utils/src/callbacks.ts @@ -6,7 +6,9 @@ export function debounce any>( return (...args: Parameters) => new Promise(rs => { clearTimeout(timer) - timer = setTimeout(() => rs(func(...args)), timeout) + timer = setTimeout(() => { + rs(func(...args)) + }, timeout) }) } diff --git a/lib/utils/src/objects.ts b/lib/utils/src/objects.ts index f5e109e..08c5376 100644 --- a/lib/utils/src/objects.ts +++ b/lib/utils/src/objects.ts @@ -67,7 +67,7 @@ export function interceptProperty( delete proto[prop] const desc = _intercepting.get(prop) if (desc) objectDefineProperty(proto, prop, desc) - _intercepting.delete(prop) + return _intercepting.delete(prop) } } diff --git a/lib/utils/src/promises.ts b/lib/utils/src/promises.ts index 7c340f5..44302e8 100644 --- a/lib/utils/src/promises.ts +++ b/lib/utils/src/promises.ts @@ -28,9 +28,15 @@ export function allSettled( } export function sleep(ms: number): Promise { - return new Promise(resolve => setTimeout(resolve, ms)) + return new Promise(resolve => { + setTimeout(resolve, ms) + }) } export function sleepReject(ms: number, msg?: string): Promise { - return new Promise((_, reject) => setTimeout(() => reject(msg), ms)) + return new Promise((_, reject) => { + setTimeout(() => { + reject(msg) + }, ms) + }) } diff --git a/shims/react~jsx-runtime.ts b/shims/react~jsx-runtime.ts index 624c502..cc417f8 100644 --- a/shims/react~jsx-runtime.ts +++ b/shims/react~jsx-runtime.ts @@ -7,9 +7,8 @@ const { jsx: _jsx, jsxs: _jsxs, Fragment } = ReactJsxRuntime const jsx = ((type, ...args) => _jsx(unproxy(type as object), ...args)) as typeof _jsx -const jsxs = ((type, ...args) => { - return _jsxs(unproxy(type as object), ...args) -}) as typeof _jsxs +const jsxs = ((type, ...args) => + _jsxs(unproxy(type as object), ...args)) as typeof _jsxs function unproxy(type: object): ElementType { return (isProxified(type) diff --git a/src/index.ts b/src/index.ts index f548afc..fe3bd8c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,10 +4,10 @@ import { interceptProperty } from '@revenge-mod/utils/objects' // By doing this, we are assuming __METRO_GLOBAL_PREFIX__ is an empty string and globalThis.__d isn't already set. // But both should be true either way. -const unintercept = interceptProperty( - '__d', - (_, mDefine) => (unintercept(), patchMetroDefine(mDefine)), -) +const unintercept = interceptProperty('__d', (_, mDefine) => { + unintercept() + return patchMetroDefine(mDefine) +}) import { onModuleFirstRequired, diff --git a/src/plugins/init/developer-settings/definitions/EvalJSSetting.tsx b/src/plugins/init/developer-settings/definitions/EvalJSSetting.tsx index 6fb673c..59fce82 100644 --- a/src/plugins/init/developer-settings/definitions/EvalJSSetting.tsx +++ b/src/plugins/init/developer-settings/definitions/EvalJSSetting.tsx @@ -16,7 +16,9 @@ const EvalJSSetting: SettingsItem = { IconComponent: () => , title: () => 'Evaluate JavaScript', useDescription: () => 'Runs a JavaScript code snippet.', - onPress: () => AlertActionCreators.openAlert(AlertKey, ), + onPress: () => { + AlertActionCreators.openAlert(AlertKey, ) + }, type: 'pressable', } @@ -99,7 +101,9 @@ function EvalJSAlert() {