|
1 | | -# android-dts-generator |
| 1 | +# Android d.ts Generator |
2 | 2 | A tool that generates TypeScript declaration files (.d.ts) from Jars |
3 | 3 |
|
4 | 4 | > Because there are certain incompatibilities between Java and TypeScript, definitions MAY NOT always be completely accurate. They will however compile and provide auto complete feature inside a modern text editor supporting typings. |
5 | 5 |
|
6 | | -### Quirks |
| 6 | +## Quirks |
7 | 7 | - Interfaces are represented by classes, this will allow you to extend them by using the `new` syntax, as well as show you all its members that need to be implemented |
8 | 8 | - Classes from the package `java.util.function` don't have their typings generated, as `function` is a reserved keyword in TypeScript and JavaScript |
9 | 9 | - Classes returning values of Type in the package `java.util.function` will return `any` instead |
10 | 10 | - Classes using methods with parameters of Type in the package `java.util.function` will take `any` instead |
11 | 11 | - Classes implementing `java.util.Iterator`, `android.animation.TypeEvaluator`, `java.lang.Comparable` do not implement those interfaces in the generated definitions for compatibility-related issues |
12 | 12 |
|
13 | 13 |
|
14 | | -### Generate definitons for Android SDK |
| 14 | +## Prerequisites |
| 15 | +- [Gradle](https://docs.gradle.org/current/userguide/gradle_wrapper.html) |
| 16 | +- Built gradle wrapper. [Read more](https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:adding_wrapper) |
| 17 | + |
| 18 | + |
| 19 | +Generate definitions following any of the approaches described below. Once you have run any of commands, you can find the generated typings in `dts-generator\out` directory. |
| 20 | +## Generate definitons for Android SDK |
15 | 21 | ```shell |
16 | 22 | cd dts-generator |
17 | 23 | gradlew jar |
18 | 24 | java -jar build\libs\dts-generator.jar -input %ANDROID_HOME%\platforms\android-<Platform Level (21/22/23/24)>\android.jar |
19 | 25 | ``` |
20 | 26 |
|
21 | | -### Generate definitions for any Jar |
| 27 | +## Generate definitions for any Jar |
22 | 28 | ```shell |
23 | 29 | cd dts-generator |
24 | 30 | gradlew jar |
25 | 31 | java -jar build\libs\dts-generator.jar -input <Path to your Jar> |
26 | 32 | ``` |
27 | 33 |
|
28 | | -### Pass multiple jars to generator |
| 34 | +## Pass multiple jars to generator |
29 | 35 | ```shell |
30 | 36 | cd dts-generator |
31 | 37 | gradlew jar |
32 | 38 | java -jar build\libs\dts-generator.jar -input <jar1> <jar2> <jar3> |
33 | 39 | ``` |
34 | 40 |
|
35 | | -### Generate definitions for .aar |
| 41 | +## Generate definitions for .aar |
36 | 42 | ``` |
37 | 43 | Open the .aar archive |
38 | 44 | Extract the classes.jar and any dependencies it may have inside libs/ |
39 | 45 | Rename classes.jar if necessary |
40 | 46 | ``` |
41 | 47 | ```shell |
42 | | -java - jar build\libs\dts-generator.jar -input classes.jar dependency-of-classes-jar.jar |
43 | | -``` |
| 48 | +java -jar build\libs\dts-generator.jar -input classes.jar dependency-of-classes-jar.jar |
| 49 | +``` |
0 commit comments