- Filter generators now expose a `keyFor` method to generate filter keys.
- Dependency filtering is now more usable
- Destructure helpers from `byDependencies` instead:
- `looseDeps` -> `byDependencies.loose`
- `relativeDep` -> `byDependencies.relative`
- Nested dependencies check can now be done with relative checks via `byDependencies.relative.withDependencies`
- Dependency filtering is now more performant
- Relative dependencies are done by bit manipulation instead
- Reverted from stack system to recursion
- Skip relative dependencies resolution (there is no need for it)
- Filter keys for `byDependencies` fixed
32 lines
821 B
TypeScript
32 lines
821 B
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'
|
|
|
|
const { loose, relative } = byDependencies
|
|
|
|
export let nodeUtil: typeof import('node:util') = proxify(
|
|
() => {
|
|
const [module] = lookupModule(
|
|
preferExports(
|
|
byProps<typeof nodeUtil>('inspect'),
|
|
byDependencies([
|
|
loose([relative(2, true), relative(4, true)]),
|
|
[],
|
|
[],
|
|
]),
|
|
),
|
|
{
|
|
includeUninitialized: true,
|
|
},
|
|
)
|
|
|
|
if (module) return (nodeUtil = module)
|
|
},
|
|
{
|
|
hint: 'object',
|
|
},
|
|
)!
|