Skip to content

Commit 5777760

Browse files
committed
refactor: improve backward compatible turbo module template
1 parent cb1a407 commit 5777760

File tree

19 files changed

+77
-151
lines changed

19 files changed

+77
-151
lines changed

.github/workflows/build-templates.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ name: Build template
22
on:
33
push:
44
paths:
5+
- '.github/workflows/build-templates.yml'
56
- 'packages/create-react-native-library/**'
67
- '!**.md'
78

packages/create-react-native-library/templates/cpp-library/android/cpp-adapter.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@
33

44
extern "C"
55
JNIEXPORT jint JNICALL
6-
<% if (project.architecture == 'mixed') { -%>
7-
Java_com_<%- project.package_cpp -%>_<%- project.name -%>ModuleImpl_multiply(JNIEnv *env, jclass type, jdouble a, jdouble b) {
8-
<% } else { -%>
96
Java_com_<%- project.package_cpp -%>_<%- project.name -%>Module_nativeMultiply(JNIEnv *env, jclass type, jdouble a, jdouble b) {
10-
<% } -%>
117
return <%- project.package_cpp -%>::multiply(a, b);
128
}

packages/create-react-native-library/templates/java-library-legacy/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Module.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ public String getName() {
2626
static {
2727
System.loadLibrary("cpp");
2828
}
29+
30+
private static native double nativeMultiply(double a, double b);
2931
<% } -%>
3032

3133
// Example method
@@ -38,8 +40,4 @@ public void multiply(double a, double b, Promise promise) {
3840
promise.resolve(a * b);
3941
<% } -%>
4042
}
41-
42-
<% if (project.cpp) { -%>
43-
private static native double nativeMultiply(double a, double b);
44-
<% } -%>
4543
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.<%- project.package -%>;
2+
3+
import com.facebook.react.bridge.ReactApplicationContext;
4+
import com.facebook.react.bridge.ReactContextBaseJavaModule;
5+
import com.facebook.react.bridge.Promise;
6+
7+
abstract class <%- project.name -%>Spec extends ReactContextBaseJavaModule {
8+
<%- project.name -%>Spec(ReactApplicationContext context) {
9+
super(context);
10+
}
11+
12+
public abstract void multiply(double a, double b, Promise promise);
13+
}

packages/create-react-native-library/templates/java-library-mixed/android/src/legacy/{%- project.name %}Module.java renamed to packages/create-react-native-library/templates/java-library-mixed/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Module.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,10 @@
33
import androidx.annotation.NonNull;
44
import com.facebook.react.bridge.Promise;
55
import com.facebook.react.bridge.ReactApplicationContext;
6-
import com.facebook.react.bridge.ReactContextBaseJavaModule;
76
import com.facebook.react.bridge.ReactMethod;
87

9-
public class <%- project.name -%>Module extends ReactContextBaseJavaModule {
10-
public static final String NAME = <%- project.name -%>ModuleImpl.NAME;
8+
public class <%- project.name -%>Module extends <%- project.name -%>Spec {
9+
public static final String NAME = "<%- project.name -%>";
1110

1211
<%- project.name -%>Module(ReactApplicationContext context) {
1312
super(context);
@@ -19,10 +18,22 @@ public String getName() {
1918
return NAME;
2019
}
2120

21+
<% if (project.cpp) { -%>
22+
static {
23+
System.loadLibrary("cpp");
24+
}
25+
26+
public static native double nativeMultiply(double a, double b);
27+
<% } -%>
28+
2229
// Example method
2330
// See https://reactnative.dev/docs/native-modules-android
2431
@ReactMethod
2532
public void multiply(double a, double b, Promise promise) {
26-
promise.resolve(<%- project.name -%>ModuleImpl.multiply(a, b));
33+
<% if (project.cpp) { -%>
34+
promise.resolve(nativeMultiply(a, b));
35+
<% } else { -%>
36+
promise.resolve(a * b);
37+
<% } -%>
2738
}
2839
}

packages/create-react-native-library/templates/java-library-mixed/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}ModuleImpl.java

Lines changed: 0 additions & 21 deletions
This file was deleted.

packages/create-react-native-library/templates/java-library-mixed/android/src/turbo/{%- project.name %}Module.java

Lines changed: 0 additions & 28 deletions
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.<%- project.package -%>;
2+
3+
import com.facebook.react.bridge.ReactApplicationContext;
4+
5+
abstract class <%- project.name -%>Spec extends Native<%- project.name -%>Spec {
6+
<%- project.name -%>Spec(ReactApplicationContext context) {
7+
super(context);
8+
}
9+
}

packages/create-react-native-library/templates/java-library-new/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Module.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ public String getName() {
2323
static {
2424
System.loadLibrary("cpp");
2525
}
26+
27+
private static native double nativeMultiply(double a, double b);
2628
<% } -%>
2729

2830
// Example method
@@ -35,8 +37,4 @@ public double multiply(double a, double b) {
3537
return a * b;
3638
<% } -%>
3739
}
38-
39-
<% if (project.cpp) { -%>
40-
private static native double nativeMultiply(double a, double b);
41-
<% } -%>
4240
}

packages/create-react-native-library/templates/kotlin-library-legacy/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Module.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule
55
import com.facebook.react.bridge.ReactMethod
66
import com.facebook.react.bridge.Promise
77

8-
class <%- project.name -%>Module(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) {
8+
class <%- project.name -%>Module(reactContext: ReactApplicationContext) :
9+
ReactContextBaseJavaModule(reactContext) {
910

1011
override fun getName(): String {
11-
return "<%- project.name -%>"
12+
return NAME
1213
}
1314

1415
// Example method
@@ -17,4 +18,8 @@ class <%- project.name -%>Module(reactContext: ReactApplicationContext) : ReactC
1718
fun multiply(a: Double, b: Double, promise: Promise) {
1819
promise.resolve(a * b)
1920
}
21+
22+
companion object {
23+
const val NAME = "<%- project.name -%>"
24+
}
2025
}

0 commit comments

Comments
 (0)