From ccec83264b6c5948d1a5f38b90128348041cdf7e Mon Sep 17 00:00:00 2001 From: PalmDevs Date: Sat, 12 Apr 2025 14:19:48 +0700 Subject: [PATCH] feat(lib/init/preinit): use `interceptProperty` util --- lib/init/src/preinit.ts | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/lib/init/src/preinit.ts b/lib/init/src/preinit.ts index d4a2f21..d6972d6 100644 --- a/lib/init/src/preinit.ts +++ b/lib/init/src/preinit.ts @@ -1,13 +1,6 @@ import { patchMetroDefine } from '@revenge-mod/modules/_/metro' +import { interceptProperty } from '@revenge-mod/utils/objects' -if (globalThis.__d) globalThis.__d = patchMetroDefine(globalThis.__d) -else - Object.defineProperty(globalThis, '__d', { - configurable: true, - set: v => { - // @ts-expect-error - // biome-ignore lint/performance/noDelete: This is only done one time ever - delete globalThis.__d - globalThis.__d = patchMetroDefine(v) - }, - }) +// By doing this, we are assuming __METRO_GLOBAL_PREFIX is an empty string +// and globalThis.__d isn't already set (which should be the case anyways) +const unintercept = interceptProperty('__d', (_, mDefine) => (unintercept(), patchMetroDefine(mDefine)))