revenge-bundle-next/lib/externals/src/browserify.ts
PalmDevs d5fa40fabd
feat(lib/modules/finders/filters)!: improve filters
- 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
2025-06-13 23:35:23 +07:00

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',
},
)!