Plugins - Settings: Plugins page is now semi-functional - No Track: Added new plugin - Developer Settings: Clean up properly - Logging: Log in preInit stage - Staff Settings: Add ReloadRequired flags when late-running @revenge-mod/init - Moved to the top-level src/index.ts instead @revenge-mod/modules - Switch `exports` and `id` parameters in finders APIs - Lookups now return an array of exports and ID instead of just exports - Lookup ID APIs have been removed - Add `finders.get` helper, a new alternative for `finders.find` - Corrected documentation for subscription APIs @revenge-mod/plugins - Added new APIs for plugins to allow running during pre-init stages - Added `unscoped.modules.finders.get*` - Added `unscoped.react.native` @revenge-mod/react - native: Added `onRunApplication` and `onRunApplicationFinished` @revenge-mod/utils - callbacks: Add `noopFalse` - promises: Fix `allSettled` - promises: Add `sleep`
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import { byDependencies, byProps, preferExports } from '@revenge-mod/modules/finders/filters'
|
|
import { lookupModule } from '@revenge-mod/modules/finders/lookup'
|
|
import { proxify } from '@revenge-mod/utils/proxy'
|
|
|
|
import { ReactJsxRuntimeModuleId, ReactModuleId, ReactNativeModuleId } from '@revenge-mod/react'
|
|
|
|
export let FlashList: typeof import('@shopify/flash-list') = proxify(
|
|
() => {
|
|
const [module] = lookupModule(
|
|
preferExports(
|
|
byProps<typeof FlashList>('FlashList'),
|
|
byDependencies([
|
|
ReactModuleId,
|
|
ReactNativeModuleId,
|
|
ReactJsxRuntimeModuleId,
|
|
undefined,
|
|
undefined,
|
|
undefined,
|
|
2,
|
|
undefined,
|
|
undefined,
|
|
]),
|
|
// Dependencies. One in brackets are dynamic or late initialized.
|
|
// [React, RN, JSXRuntime, (FlashListExports), (Reanimated), (RNBottomSheet), ImportTracker, (BottomSheetFlashList)]
|
|
),
|
|
{
|
|
includeUninitialized: true,
|
|
},
|
|
)
|
|
|
|
if (module) return (FlashList = module)
|
|
},
|
|
{
|
|
hint: 'object',
|
|
},
|
|
)!
|