jetifire

1.2.6 • Public • Published

Jetifire - A fast Node implementation

npm version

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.

  1. Run the Jetifire
./node_modules/.bin/jetifire

Reverse mode

./node_modules/.bin/jetifire reverse
  1. (Optional) add a postinstall script to your package.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.

Package Sidebar

Install

npm i jetifire

Weekly Downloads

11

Version

1.2.6

License

CC-BY-2.0

Unpacked Size

189 kB

Total Files

6

Last publish

Collaborators

  • m4tt72