perf(autolinking)!: prioritise files with *Package.java|*Package.kt
in getPackageClassName
#2384
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary:
This Pull Request changes schema that looks for files to check to find class name, after my tests in various application the match results were included almost in every library in files with
Package
at the end. But our previous logic was going through every file in library with.kt
and.java
extension until it found file withimplements ReactPackage
, some libraries can have 100+ files and we were reading them until we matched relevant Regex schema 😅I also added a fallback which checks files with
*.kt
and*.java
extensions if it couldn't findimplements ReactPackage
in file with*Package
at the end, which ensures us that we don't introduce any breaking change. The output ofconfig
command stays the same.Performance improvement
I did a test in Expensify app, which is an open-source app with 50 libraries containing native code. Before my changes, we were reading 490 files to find the class name. Right now, we only check 79 (still there's a room for improvements).
Test Plan:
The
dependencies
field should be the same as before.Checklist