revenge-bundle-next/lib/externals
Palm 5f5fc6f2b2
feat!: module finders refactor (#6)
- Renamed `byX` filters to `withX`.
  It is more correct. For example: You don't lookup, wait for, or get modules **BY** props. You lookup, wait for, and get modules **WITH** props.
- Renamed `*byImportedPath` to `*withImportedPath`
  For consistency with the above change.
- Renamed `getModule` to `getModules`.
  The API allows getting multiple modules and not just a single one. Types are renamed as well.
  `getModuleByImportedPath` remains the same as it only gets one single module with a unique imported path.
- `withX` filter **helpers** removed.
  They can now be replaced with the new capability-based `and` filter.
- `preferExports` and `moduleStateAware` filters removed.
  They can now be replaced with the new capability-based `and` filter.
- Composite finders renamed.
  `some` -> `or`, `every` -> `and`
- Composite finders takes a capability-based approach.
- Filter generators now need to attach runtime flag to let the system know whether the generated filter can be used to filter modules without proper exports or not.

## Misc.

- Removed useless unsub call in Profile Badges
- Use `queueMicrotask` with `asap`

# Features

## Capability-based approach to composite filters

```js
// Old
byProps(...).withDependencies(...)
// Old, same as: preferExports(byProps(...), byDependencies(...))
every(byDependencies(...), byProps(...))
// Old, ordering matters, this would fail unexpectedly!
every(byProps(...), byDependencies(...))

// New
withProps(...).and(withDependencies(...))
// New (as well), ordering doesn't matter, this has the same result as above
withDependencies(...).and(withProps(...))
```
2025-08-30 09:19:57 +07:00
..
src feat!: module finders refactor (#6) 2025-08-30 09:19:57 +07:00
package.json chore: format 2025-08-05 20:39:09 +07:00
README.md feat(lib): add externals 2025-05-08 19:10:40 +07:00

@revenge-mod/externals

This package provides common external libraries bundled in React Native apps, but this does not guarantee that they will be available.

This is done to ensure that Revenge's core APIs won't change if the external libraries are removed from the app.

Libraries

For obvious reasons, this package only maintains lookups for specific versions of libraries that Discord uses. However, it can be adapted to work with any other React Native apps.

  • @react-navigation/native

  • @react-navigation/stack

  • @shopify/flash-list

  • util (browserify/node-util)