jetifire
v1.2.6
Published
Jetifire tool migrates support-library-dependent libraries to rely on the equivalent AndroidX packages instead.
Downloads
38
Maintainers
Readme
Jetifire - A fast Node implementation
Jetifire tool migrates support-library-dependent
libraries to rely on the equivalent AndroidX
packages instead.
Created using nodejs
, it is dependency free and read/writes files asynchronously, that means it is very fast ⚡
Benchmark
s
This is a very fast Node
port of Mike Hardy's bash version (https://github.com/mikehardy/jetifier)
Generating files
mkdir -p node_modules/testing
for i in {0..1000}
do
echo "import android.arch.core.util.Function;" > node_modules/testing/file_$i.java
done
Running benchmark
Bash version
npx jetify : 44.994 seconds
This version
npx jetifire : 2.325 seconds
Install Jetifire
To install jetifire
, run the following command:
npm install --save jetifire
Usage
To process your libraries, simply run the jetifire
command by putting it in an npm script or as a post install script.
- Run the Jetifire
./node_modules/.bin/jetifire
Reverse mode
./node_modules/.bin/jetifire reverse
- (Optional) add a
postinstall
script to yourpackage.json
:"postinstall": "jetifire"
Usage notes
Jetifire reads all your node_modules
folder and looks for .java
, .kt
and .xml
files, and then changes any android.support.*
imports to its corresponding androidx.*
.
If there is a type in an android.support.*
package that does not come from any support library artifact, Jetifire still migrates the type as long as there is a mapping for it. However, this migration is not guaranteed to work, as there might not be mapping rules general enough to cover all the custom types.
Credits & Licence
Credits
Mike Hardy - for the original React Native Jetifier tool
Licence
Licensed under the CreativeCommons Attribution 2.5 License
- Free for use in both personal and commercial projects.
- Attribution requires leaving author name, author homepage link, and the license info intact.