fix(lib/modules/finders): correct types for get and lookup
This commit is contained in:
parent
d639d31367
commit
66d95a8c49
2 changed files with 32 additions and 21 deletions
|
|
@ -5,6 +5,7 @@ import {
|
|||
lookupModules,
|
||||
} from './lookup'
|
||||
import { waitForModuleByImportedPath, waitForModules } from './wait'
|
||||
import type { If } from '@revenge-mod/utils/types'
|
||||
import type { MaybeDefaultExportMatched, Metro } from '../types'
|
||||
import type { RunFilterReturnExportsOptions } from './_internal'
|
||||
import type { Filter, FilterResult } from './filters'
|
||||
|
|
@ -14,8 +15,9 @@ import type { WaitForModulesOptions } from './wait'
|
|||
export type GetModuleOptions<
|
||||
ReturnNamespace extends boolean = boolean,
|
||||
Uninitialized extends boolean = boolean,
|
||||
All extends boolean = boolean,
|
||||
> = WaitForModulesOptions<ReturnNamespace> &
|
||||
LookupModulesOptions<ReturnNamespace, Uninitialized> & {
|
||||
LookupModulesOptions<ReturnNamespace, Uninitialized, All, true> & {
|
||||
/**
|
||||
* The maximum number of modules to get.
|
||||
*
|
||||
|
|
@ -66,10 +68,10 @@ export function getModule<F extends Filter>(
|
|||
): GetModuleUnsubscribeFunction
|
||||
|
||||
export function getModule<
|
||||
F extends O extends GetModuleOptions<boolean, true>
|
||||
? Filter<any, false>
|
||||
: Filter,
|
||||
O extends GetModuleOptions,
|
||||
F extends Filter,
|
||||
const O extends F extends Filter<any, infer WE>
|
||||
? If<WE, GetModuleOptions<boolean, boolean, false>, GetModuleOptions>
|
||||
: never,
|
||||
>(
|
||||
filter: F,
|
||||
callback: GetModuleCallback<FilterResult<F>>,
|
||||
|
|
|
|||
|
|
@ -28,6 +28,9 @@ type LookupModulesOptionsWithAll<A extends boolean> = If<
|
|||
all: A
|
||||
},
|
||||
{
|
||||
/**
|
||||
* You can only use `all` with exportsless filters!
|
||||
*/
|
||||
all?: false
|
||||
}
|
||||
>
|
||||
|
|
@ -52,6 +55,9 @@ type LookupModulesOptionsWithInitializedUninitialized<U extends boolean> = {
|
|||
uninitialized: U
|
||||
},
|
||||
{
|
||||
/**
|
||||
* You can only use `uninitialized` with exportsless filters!
|
||||
*/
|
||||
uninitialized?: false
|
||||
}
|
||||
>
|
||||
|
|
@ -94,9 +100,9 @@ export type LookupModulesResult<
|
|||
F extends Filter,
|
||||
O extends LookupModulesOptions,
|
||||
> = [
|
||||
exports: O extends LookupModulesOptions<boolean, boolean, false, true>
|
||||
? LookupFilterResult<F, O>
|
||||
: LookupFilterResult<F, O> | Nullish,
|
||||
exports: O extends LookupModulesOptions<boolean, boolean, boolean, false>
|
||||
? LookupFilterResult<F, O> | Nullish
|
||||
: LookupFilterResult<F, O>,
|
||||
id: Metro.ModuleID,
|
||||
]
|
||||
|
||||
|
|
@ -133,15 +139,14 @@ export function lookupModules<F extends Filter>(
|
|||
): Generator<LookupModulesResult<F, object>, undefined>
|
||||
|
||||
export function lookupModules<
|
||||
F extends Filter<
|
||||
any,
|
||||
O extends
|
||||
| LookupModulesOptions<boolean, true>
|
||||
| LookupModulesOptions<boolean, boolean, true>
|
||||
? false
|
||||
: true
|
||||
>,
|
||||
const O extends LookupModulesOptions,
|
||||
F extends Filter,
|
||||
const O extends F extends Filter<any, infer WE>
|
||||
? If<
|
||||
WE,
|
||||
LookupModulesOptions<boolean, false, false>,
|
||||
LookupModulesOptions
|
||||
>
|
||||
: never,
|
||||
>(filter: F, options: O): Generator<LookupModulesResult<F, O>, undefined>
|
||||
|
||||
export function* lookupModules(filter: Filter, options?: LookupModulesOptions) {
|
||||
|
|
@ -252,10 +257,14 @@ export function lookupModule<F extends Filter>(
|
|||
): LookupModulesResult<F, object> | LookupNotFoundResult
|
||||
|
||||
export function lookupModule<
|
||||
F extends O extends LookupModulesOptions<boolean, true>
|
||||
? Filter<any, false>
|
||||
: Filter,
|
||||
const O extends LookupModulesOptions,
|
||||
F extends Filter,
|
||||
const O extends F extends Filter<any, infer WE>
|
||||
? If<
|
||||
WE,
|
||||
LookupModulesOptions<boolean, false, false>,
|
||||
LookupModulesOptions
|
||||
>
|
||||
: never,
|
||||
>(filter: F, options: O): LookupModulesResult<F, O> | LookupNotFoundResult
|
||||
|
||||
export function lookupModule(filter: Filter, options?: LookupModulesOptions) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue