revenge-bundle-next/lib/discord/src/common/index.ts

55 lines
1.8 KiB
TypeScript

import {
byDependencies,
byName,
byProps,
preferExports,
} from '@revenge-mod/modules/finders/filters'
import { lookupModule } from '@revenge-mod/modules/finders/lookup'
import { proxify } from '@revenge-mod/utils/proxy'
import type { Metro } from '@revenge-mod/modules/types'
import type { DiscordModules } from '../types'
export { AppStartPerformance } from '../preinit'
export * as flux from './flux'
export * as utils from './utils'
const { loose, relative } = byDependencies
// ../discord_common/js/packages/logger/Logger.tsx
export const [Logger] = lookupModule(
byName<typeof DiscordModules.Logger>('Logger'),
) as [typeof DiscordModules.Logger, Metro.ModuleID]
// ../discord_common/js/packages/tokens/native.tsx
export const [Tokens, TokensModuleId] = lookupModule(byProps('RawColor')) as [
any,
Metro.ModuleID,
]
const OnlyImportTrackerDep = [2]
export let Constants: DiscordModules.Constants = proxify(
() => {
const [module] = lookupModule(
preferExports(
byProps<DiscordModules.Constants>('ME'),
// ID: 1236
// Deps: 26, 1237, 1238, 1239, 1240, ...
// Every module has only one dependency, which is the import tracker
byDependencies(
loose([
undefined,
relative.withDependencies(OnlyImportTrackerDep, 1),
relative.withDependencies(OnlyImportTrackerDep, 2),
relative.withDependencies(OnlyImportTrackerDep, 3),
relative.withDependencies(OnlyImportTrackerDep, 4),
]),
),
),
)
if (module) return (Constants = module)
},
{ hint: 'object' },
)!