create-react-native-library 0.38.3 → 0.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.js +9 -26
- package/lib/index.js.map +1 -1
- package/lib/utils/generateExampleApp.js +11 -4
- package/lib/utils/generateExampleApp.js.map +1 -1
- package/lib/utils/sortObjectKeys.js +13 -0
- package/lib/utils/sortObjectKeys.js.map +1 -0
- package/package.json +2 -2
- package/templates/common/$package.json +1 -1
- package/templates/common/babel.config.js +3 -1
- package/templates/common/lefthook.yml +1 -1
- package/templates/common/tsconfig.build.json +1 -1
- package/templates/common/tsconfig.json +1 -0
- package/templates/common-example/example/metro.config.js +8 -35
- package/templates/expo-library/example/babel.config.js +10 -16
- package/templates/expo-library/example/metro.config.js +7 -32
- package/templates/native-common/android/build.gradle +0 -10
- package/templates/native-common-example/example/babel.config.js +10 -15
- package/templates/native-common-example/example/react-native.config.js +2 -2
- package/templates/java-library-legacy/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Module.java +0 -43
- package/templates/java-library-legacy/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Package.java +0 -28
- package/templates/java-library-mixed/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Module.java +0 -40
- package/templates/java-library-mixed/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Package.java +0 -45
- package/templates/java-library-mixed/android/src/newarch/{%- project.name %}Spec.java +0 -9
- package/templates/java-library-mixed/android/src/oldarch/{%- project.name %}Spec.java +0 -13
- package/templates/java-library-new/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Module.java +0 -40
- package/templates/java-library-new/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Package.java +0 -44
- package/templates/java-view-legacy/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Package.java +0 -22
- package/templates/java-view-legacy/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}ViewManager.java +0 -31
- package/templates/java-view-mixed/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}View.java +0 -24
- package/templates/java-view-mixed/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}ViewManager.java +0 -31
- package/templates/java-view-mixed/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}ViewPackage.java +0 -25
- package/templates/java-view-mixed/android/src/newarch/{%- project.name %}ViewManagerSpec.java +0 -24
- package/templates/java-view-mixed/android/src/oldarch/{%- project.name %}ViewManagerSpec.java +0 -12
- package/templates/java-view-new/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}View.java +0 -24
- package/templates/java-view-new/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}ViewManager.java +0 -47
- package/templates/java-view-new/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}ViewPackage.java +0 -25
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');
|
|
2
1
|
const path = require('path');
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
2
|
+
const { getDefaultConfig } = require('@react-native/metro-config');
|
|
3
|
+
const { getConfig } = require('react-native-builder-bob/metro-config');
|
|
4
|
+
const pkg = require('../package.json');
|
|
6
5
|
|
|
7
6
|
const root = path.resolve(__dirname, '..');
|
|
8
|
-
const modules = Object.keys({ ...pak.peerDependencies });
|
|
9
7
|
|
|
10
8
|
/**
|
|
11
9
|
* Metro configuration
|
|
@@ -13,33 +11,8 @@ const modules = Object.keys({ ...pak.peerDependencies });
|
|
|
13
11
|
*
|
|
14
12
|
* @type {import('metro-config').MetroConfig}
|
|
15
13
|
*/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
resolver: {
|
|
22
|
-
blacklistRE: exclusionList(
|
|
23
|
-
modules.map(
|
|
24
|
-
(m) =>
|
|
25
|
-
new RegExp(`^${escape(path.join(root, 'node_modules', m))}\\/.*$`)
|
|
26
|
-
)
|
|
27
|
-
),
|
|
28
|
-
|
|
29
|
-
extraNodeModules: modules.reduce((acc, name) => {
|
|
30
|
-
acc[name] = path.join(__dirname, 'node_modules', name);
|
|
31
|
-
return acc;
|
|
32
|
-
}, {}),
|
|
33
|
-
},
|
|
34
|
-
|
|
35
|
-
transformer: {
|
|
36
|
-
getTransformOptions: async () => ({
|
|
37
|
-
transform: {
|
|
38
|
-
experimentalImportSupport: false,
|
|
39
|
-
inlineRequires: true,
|
|
40
|
-
},
|
|
41
|
-
}),
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
module.exports = mergeConfig(getDefaultConfig(__dirname), config);
|
|
14
|
+
module.exports = getConfig(getDefaultConfig(__dirname), {
|
|
15
|
+
root,
|
|
16
|
+
pkg,
|
|
17
|
+
project: __dirname,
|
|
18
|
+
});
|
|
@@ -1,22 +1,16 @@
|
|
|
1
1
|
const path = require('path');
|
|
2
|
-
const
|
|
2
|
+
const { getConfig } = require('react-native-builder-bob/babel-config');
|
|
3
|
+
const pkg = require('../package.json');
|
|
4
|
+
|
|
5
|
+
const root = path.resolve(__dirname, '..');
|
|
3
6
|
|
|
4
7
|
module.exports = function (api) {
|
|
5
8
|
api.cache(true);
|
|
6
9
|
|
|
7
|
-
return
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
extensions: ['.tsx', '.ts', '.js', '.json'],
|
|
14
|
-
alias: {
|
|
15
|
-
// For development, we want to alias the library to the source
|
|
16
|
-
[pak.name]: path.join(__dirname, '..', pak.source),
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
],
|
|
20
|
-
],
|
|
21
|
-
};
|
|
10
|
+
return getConfig(
|
|
11
|
+
{
|
|
12
|
+
presets: ['babel-preset-expo'],
|
|
13
|
+
},
|
|
14
|
+
{ root, pkg }
|
|
15
|
+
);
|
|
22
16
|
};
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
const path = require('path');
|
|
2
|
-
const escape = require('escape-string-regexp');
|
|
3
2
|
const { getDefaultConfig } = require('@expo/metro-config');
|
|
4
|
-
const
|
|
5
|
-
const
|
|
3
|
+
const { getConfig } = require('react-native-builder-bob/metro-config');
|
|
4
|
+
const pkg = require('../package.json');
|
|
6
5
|
|
|
7
6
|
const root = path.resolve(__dirname, '..');
|
|
8
|
-
const modules = Object.keys({ ...pak.peerDependencies });
|
|
9
|
-
|
|
10
|
-
const defaultConfig = getDefaultConfig(__dirname);
|
|
11
7
|
|
|
12
8
|
/**
|
|
13
9
|
* Metro configuration
|
|
@@ -15,29 +11,8 @@ const defaultConfig = getDefaultConfig(__dirname);
|
|
|
15
11
|
*
|
|
16
12
|
* @type {import('metro-config').MetroConfig}
|
|
17
13
|
*/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
// We need to make sure that only one version is loaded for peerDependencies
|
|
25
|
-
// So we block them at the root, and alias them to the versions in example's node_modules
|
|
26
|
-
resolver: {
|
|
27
|
-
...defaultConfig.resolver,
|
|
28
|
-
|
|
29
|
-
blacklistRE: exclusionList(
|
|
30
|
-
modules.map(
|
|
31
|
-
(m) =>
|
|
32
|
-
new RegExp(`^${escape(path.join(root, 'node_modules', m))}\\/.*$`)
|
|
33
|
-
)
|
|
34
|
-
),
|
|
35
|
-
|
|
36
|
-
extraNodeModules: modules.reduce((acc, name) => {
|
|
37
|
-
acc[name] = path.join(__dirname, 'node_modules', name);
|
|
38
|
-
return acc;
|
|
39
|
-
}, {}),
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
module.exports = config;
|
|
14
|
+
module.exports = getConfig(getDefaultConfig(__dirname), {
|
|
15
|
+
root,
|
|
16
|
+
pkg,
|
|
17
|
+
project: __dirname,
|
|
18
|
+
});
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
buildscript {
|
|
2
|
-
<% if (project.kotlin) { -%>
|
|
3
2
|
// Buildscript is evaluated before everything else so we can't use getExtOrDefault
|
|
4
3
|
def kotlin_version = rootProject.ext.has("kotlinVersion") ? rootProject.ext.get("kotlinVersion") : project.properties["<%- project.name -%>_kotlinVersion"]
|
|
5
4
|
|
|
6
|
-
<% } -%>
|
|
7
5
|
repositories {
|
|
8
6
|
google()
|
|
9
7
|
mavenCentral()
|
|
@@ -11,10 +9,8 @@ buildscript {
|
|
|
11
9
|
|
|
12
10
|
dependencies {
|
|
13
11
|
classpath "com.android.tools.build:gradle:7.2.1"
|
|
14
|
-
<% if (project.kotlin) { -%>
|
|
15
12
|
// noinspection DifferentKotlinGradleVersion
|
|
16
13
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
|
17
|
-
<% } -%>
|
|
18
14
|
}
|
|
19
15
|
}
|
|
20
16
|
|
|
@@ -28,9 +24,7 @@ def isNewArchitectureEnabled() {
|
|
|
28
24
|
}
|
|
29
25
|
|
|
30
26
|
apply plugin: "com.android.library"
|
|
31
|
-
<% if (project.kotlin) { -%>
|
|
32
27
|
apply plugin: "kotlin-android"
|
|
33
|
-
<% } -%>
|
|
34
28
|
|
|
35
29
|
if (isNewArchitectureEnabled()) {
|
|
36
30
|
apply plugin: "com.facebook.react"
|
|
@@ -149,18 +143,14 @@ repositories {
|
|
|
149
143
|
google()
|
|
150
144
|
}
|
|
151
145
|
|
|
152
|
-
<% if (project.kotlin) { -%>
|
|
153
146
|
def kotlin_version = getExtOrDefault("kotlinVersion")
|
|
154
|
-
<% } -%>
|
|
155
147
|
|
|
156
148
|
dependencies {
|
|
157
149
|
// For < 0.71, this will be from the local maven repo
|
|
158
150
|
// For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
|
|
159
151
|
//noinspection GradleDynamicVersion
|
|
160
152
|
implementation "com.facebook.react:react-native:+"
|
|
161
|
-
<% if (project.kotlin) { -%>
|
|
162
153
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
163
|
-
<% } -%>
|
|
164
154
|
}
|
|
165
155
|
|
|
166
156
|
<% if (project.arch === "new" || project.arch === "mixed") { -%>
|
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
const path = require('path');
|
|
2
|
-
const
|
|
2
|
+
const { getConfig } = require('react-native-builder-bob/babel-config');
|
|
3
|
+
const pkg = require('../package.json');
|
|
3
4
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
[pak.name]: path.join(__dirname, '..', pak.source),
|
|
13
|
-
},
|
|
14
|
-
},
|
|
15
|
-
],
|
|
16
|
-
],
|
|
17
|
-
};
|
|
5
|
+
const root = path.resolve(__dirname, '..');
|
|
6
|
+
|
|
7
|
+
module.exports = getConfig(
|
|
8
|
+
{
|
|
9
|
+
presets: ['module:@react-native/babel-preset'],
|
|
10
|
+
},
|
|
11
|
+
{ root, pkg }
|
|
12
|
+
);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const path = require('path');
|
|
2
|
-
const
|
|
2
|
+
const pkg = require('../package.json');
|
|
3
3
|
<% if (example === 'test-app') { -%>
|
|
4
4
|
const { configureProjects } = require('react-native-test-app');
|
|
5
5
|
<% } -%>
|
|
@@ -23,7 +23,7 @@ module.exports = {
|
|
|
23
23
|
},
|
|
24
24
|
<% } -%>
|
|
25
25
|
dependencies: {
|
|
26
|
-
[
|
|
26
|
+
[pkg.name]: {
|
|
27
27
|
root: path.join(__dirname, '..'),
|
|
28
28
|
},
|
|
29
29
|
},
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
package com.<%- project.package %>;
|
|
2
|
-
|
|
3
|
-
import androidx.annotation.NonNull;
|
|
4
|
-
|
|
5
|
-
import com.facebook.react.bridge.Promise;
|
|
6
|
-
import com.facebook.react.bridge.ReactApplicationContext;
|
|
7
|
-
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|
8
|
-
import com.facebook.react.bridge.ReactMethod;
|
|
9
|
-
import com.facebook.react.module.annotations.ReactModule;
|
|
10
|
-
|
|
11
|
-
@ReactModule(name = <%- project.name -%>Module.NAME)
|
|
12
|
-
public class <%- project.name -%>Module extends ReactContextBaseJavaModule {
|
|
13
|
-
public static final String NAME = "<%- project.name -%>";
|
|
14
|
-
|
|
15
|
-
public <%- project.name -%>Module(ReactApplicationContext reactContext) {
|
|
16
|
-
super(reactContext);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
@Override
|
|
20
|
-
@NonNull
|
|
21
|
-
public String getName() {
|
|
22
|
-
return NAME;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
<% if (project.cpp) { -%>
|
|
26
|
-
static {
|
|
27
|
-
System.loadLibrary("<%- project.identifier -%>");
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
private static native double nativeMultiply(double a, double b);
|
|
31
|
-
<% } -%>
|
|
32
|
-
|
|
33
|
-
// Example method
|
|
34
|
-
// See https://reactnative.dev/docs/native-modules-android
|
|
35
|
-
@ReactMethod
|
|
36
|
-
public void multiply(double a, double b, Promise promise) {
|
|
37
|
-
<% if (project.cpp) { -%>
|
|
38
|
-
promise.resolve(nativeMultiply(a, b));
|
|
39
|
-
<% } else { -%>
|
|
40
|
-
promise.resolve(a * b);
|
|
41
|
-
<% } -%>
|
|
42
|
-
}
|
|
43
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
package com.<%- project.package %>;
|
|
2
|
-
|
|
3
|
-
import androidx.annotation.NonNull;
|
|
4
|
-
|
|
5
|
-
import com.facebook.react.ReactPackage;
|
|
6
|
-
import com.facebook.react.bridge.NativeModule;
|
|
7
|
-
import com.facebook.react.bridge.ReactApplicationContext;
|
|
8
|
-
import com.facebook.react.uimanager.ViewManager;
|
|
9
|
-
|
|
10
|
-
import java.util.ArrayList;
|
|
11
|
-
import java.util.Collections;
|
|
12
|
-
import java.util.List;
|
|
13
|
-
|
|
14
|
-
public class <%- project.name -%>Package implements ReactPackage {
|
|
15
|
-
@NonNull
|
|
16
|
-
@Override
|
|
17
|
-
public List<NativeModule> createNativeModules(@NonNull ReactApplicationContext reactContext) {
|
|
18
|
-
List<NativeModule> modules = new ArrayList<>();
|
|
19
|
-
modules.add(new <%- project.name -%>Module(reactContext));
|
|
20
|
-
return modules;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
@NonNull
|
|
24
|
-
@Override
|
|
25
|
-
public List<ViewManager> createViewManagers(@NonNull ReactApplicationContext reactContext) {
|
|
26
|
-
return Collections.emptyList();
|
|
27
|
-
}
|
|
28
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
package com.<%- project.package %>;
|
|
2
|
-
|
|
3
|
-
import androidx.annotation.NonNull;
|
|
4
|
-
|
|
5
|
-
import com.facebook.react.bridge.Promise;
|
|
6
|
-
import com.facebook.react.bridge.ReactApplicationContext;
|
|
7
|
-
import com.facebook.react.bridge.ReactMethod;
|
|
8
|
-
|
|
9
|
-
public class <%- project.name -%>Module extends <%- project.name -%>Spec {
|
|
10
|
-
public static final String NAME = "<%- project.name -%>";
|
|
11
|
-
|
|
12
|
-
<%- project.name -%>Module(ReactApplicationContext context) {
|
|
13
|
-
super(context);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
@Override
|
|
17
|
-
@NonNull
|
|
18
|
-
public String getName() {
|
|
19
|
-
return NAME;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
<% if (project.cpp) { -%>
|
|
23
|
-
static {
|
|
24
|
-
System.loadLibrary("<%- project.identifier -%>");
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
public static native double nativeMultiply(double a, double b);
|
|
28
|
-
<% } -%>
|
|
29
|
-
|
|
30
|
-
// Example method
|
|
31
|
-
// See https://reactnative.dev/docs/native-modules-android
|
|
32
|
-
@ReactMethod
|
|
33
|
-
public void multiply(double a, double b, Promise promise) {
|
|
34
|
-
<% if (project.cpp) { -%>
|
|
35
|
-
promise.resolve(nativeMultiply(a, b));
|
|
36
|
-
<% } else { -%>
|
|
37
|
-
promise.resolve(a * b);
|
|
38
|
-
<% } -%>
|
|
39
|
-
}
|
|
40
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
package com.<%- project.package %>;
|
|
2
|
-
|
|
3
|
-
import androidx.annotation.Nullable;
|
|
4
|
-
|
|
5
|
-
import com.facebook.react.bridge.NativeModule;
|
|
6
|
-
import com.facebook.react.bridge.ReactApplicationContext;
|
|
7
|
-
import com.facebook.react.module.model.ReactModuleInfo;
|
|
8
|
-
import com.facebook.react.module.model.ReactModuleInfoProvider;
|
|
9
|
-
import com.facebook.react.TurboReactPackage;
|
|
10
|
-
|
|
11
|
-
import java.util.HashMap;
|
|
12
|
-
import java.util.Map;
|
|
13
|
-
|
|
14
|
-
public class <%- project.name -%>Package extends TurboReactPackage {
|
|
15
|
-
|
|
16
|
-
@Nullable
|
|
17
|
-
@Override
|
|
18
|
-
public NativeModule getModule(String name, ReactApplicationContext reactContext) {
|
|
19
|
-
if (name.equals(<%- project.name -%>Module.NAME)) {
|
|
20
|
-
return new <%- project.name -%>Module(reactContext);
|
|
21
|
-
} else {
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
@Override
|
|
27
|
-
public ReactModuleInfoProvider getReactModuleInfoProvider() {
|
|
28
|
-
return () -> {
|
|
29
|
-
final Map<String, ReactModuleInfo> moduleInfos = new HashMap<>();
|
|
30
|
-
boolean isTurboModule = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
|
|
31
|
-
moduleInfos.put(
|
|
32
|
-
<%- project.name -%>Module.NAME,
|
|
33
|
-
new ReactModuleInfo(
|
|
34
|
-
<%- project.name -%>Module.NAME,
|
|
35
|
-
<%- project.name -%>Module.NAME,
|
|
36
|
-
false, // canOverrideExistingModule
|
|
37
|
-
false, // needsEagerInit
|
|
38
|
-
true, // hasConstants
|
|
39
|
-
false, // isCxxModule
|
|
40
|
-
isTurboModule // isTurboModule
|
|
41
|
-
));
|
|
42
|
-
return moduleInfos;
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
package com.<%- project.package %>;
|
|
2
|
-
|
|
3
|
-
import androidx.annotation.NonNull;
|
|
4
|
-
|
|
5
|
-
import com.facebook.react.bridge.ReactApplicationContext;
|
|
6
|
-
import com.facebook.react.module.annotations.ReactModule;
|
|
7
|
-
|
|
8
|
-
@ReactModule(name = <%- project.name -%>Module.NAME)
|
|
9
|
-
public class <%- project.name -%>Module extends Native<%- project.name -%>Spec {
|
|
10
|
-
public static final String NAME = "<%- project.name -%>";
|
|
11
|
-
|
|
12
|
-
public <%- project.name -%>Module(ReactApplicationContext reactContext) {
|
|
13
|
-
super(reactContext);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
@Override
|
|
17
|
-
@NonNull
|
|
18
|
-
public String getName() {
|
|
19
|
-
return NAME;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
<% if (project.cpp) { -%>
|
|
23
|
-
static {
|
|
24
|
-
System.loadLibrary("<%- project.identifier -%>");
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
private static native double nativeMultiply(double a, double b);
|
|
28
|
-
<% } -%>
|
|
29
|
-
|
|
30
|
-
// Example method
|
|
31
|
-
// See https://reactnative.dev/docs/native-modules-android
|
|
32
|
-
@Override
|
|
33
|
-
public double multiply(double a, double b) {
|
|
34
|
-
<% if (project.cpp) { -%>
|
|
35
|
-
return nativeMultiply(a, b);
|
|
36
|
-
<% } else { -%>
|
|
37
|
-
return a * b;
|
|
38
|
-
<% } -%>
|
|
39
|
-
}
|
|
40
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
package com.<%- project.package %>;
|
|
2
|
-
|
|
3
|
-
import androidx.annotation.Nullable;
|
|
4
|
-
|
|
5
|
-
import com.facebook.react.bridge.NativeModule;
|
|
6
|
-
import com.facebook.react.bridge.ReactApplicationContext;
|
|
7
|
-
import com.facebook.react.module.model.ReactModuleInfo;
|
|
8
|
-
import com.facebook.react.module.model.ReactModuleInfoProvider;
|
|
9
|
-
import com.facebook.react.TurboReactPackage;
|
|
10
|
-
|
|
11
|
-
import java.util.HashMap;
|
|
12
|
-
import java.util.Map;
|
|
13
|
-
|
|
14
|
-
public class <%- project.name -%>Package extends TurboReactPackage {
|
|
15
|
-
|
|
16
|
-
@Nullable
|
|
17
|
-
@Override
|
|
18
|
-
public NativeModule getModule(String name, ReactApplicationContext reactContext) {
|
|
19
|
-
if (name.equals(<%- project.name -%>Module.NAME)) {
|
|
20
|
-
return new <%- project.name -%>Module(reactContext);
|
|
21
|
-
} else {
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
@Override
|
|
27
|
-
public ReactModuleInfoProvider getReactModuleInfoProvider() {
|
|
28
|
-
return () -> {
|
|
29
|
-
final Map<String, ReactModuleInfo> moduleInfos = new HashMap<>();
|
|
30
|
-
moduleInfos.put(
|
|
31
|
-
<%- project.name -%>Module.NAME,
|
|
32
|
-
new ReactModuleInfo(
|
|
33
|
-
<%- project.name -%>Module.NAME,
|
|
34
|
-
<%- project.name -%>Module.NAME,
|
|
35
|
-
false, // canOverrideExistingModule
|
|
36
|
-
false, // needsEagerInit
|
|
37
|
-
true, // hasConstants
|
|
38
|
-
false, // isCxxModule
|
|
39
|
-
true // isTurboModule
|
|
40
|
-
));
|
|
41
|
-
return moduleInfos;
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
package com.<%- project.package %>;
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.ReactPackage;
|
|
4
|
-
import com.facebook.react.bridge.NativeModule;
|
|
5
|
-
import com.facebook.react.bridge.ReactApplicationContext;
|
|
6
|
-
import com.facebook.react.uimanager.ViewManager;
|
|
7
|
-
|
|
8
|
-
import java.util.Arrays;
|
|
9
|
-
import java.util.Collections;
|
|
10
|
-
import java.util.List;
|
|
11
|
-
|
|
12
|
-
public class <%- project.name -%>Package implements ReactPackage {
|
|
13
|
-
@Override
|
|
14
|
-
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
|
|
15
|
-
return Collections.emptyList();
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
@Override
|
|
19
|
-
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
|
|
20
|
-
return Arrays.<ViewManager>asList(new <%- project.name -%>ViewManager());
|
|
21
|
-
}
|
|
22
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
package com.<%- project.package %>;
|
|
2
|
-
|
|
3
|
-
import android.graphics.Color;
|
|
4
|
-
import android.view.View;
|
|
5
|
-
|
|
6
|
-
import androidx.annotation.NonNull;
|
|
7
|
-
|
|
8
|
-
import com.facebook.react.uimanager.SimpleViewManager;
|
|
9
|
-
import com.facebook.react.uimanager.ThemedReactContext;
|
|
10
|
-
import com.facebook.react.uimanager.annotations.ReactProp;
|
|
11
|
-
|
|
12
|
-
public class <%- project.name -%>ViewManager extends SimpleViewManager<View> {
|
|
13
|
-
public static final String REACT_CLASS = "<%- project.name -%>View";
|
|
14
|
-
|
|
15
|
-
@Override
|
|
16
|
-
@NonNull
|
|
17
|
-
public String getName() {
|
|
18
|
-
return REACT_CLASS;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
@Override
|
|
22
|
-
@NonNull
|
|
23
|
-
public View createViewInstance(ThemedReactContext reactContext) {
|
|
24
|
-
return new View(reactContext);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
@ReactProp(name = "color")
|
|
28
|
-
public void setColor(View view, String color) {
|
|
29
|
-
view.setBackgroundColor(Color.parseColor(color));
|
|
30
|
-
}
|
|
31
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
package com.<%- project.package %>;
|
|
2
|
-
|
|
3
|
-
import androidx.annotation.Nullable;
|
|
4
|
-
|
|
5
|
-
import android.content.Context;
|
|
6
|
-
import android.util.AttributeSet;
|
|
7
|
-
|
|
8
|
-
import android.view.View;
|
|
9
|
-
|
|
10
|
-
public class <%- project.name -%>View extends View {
|
|
11
|
-
|
|
12
|
-
public <%- project.name -%>View(Context context) {
|
|
13
|
-
super(context);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
public <%- project.name -%>View(Context context, @Nullable AttributeSet attrs) {
|
|
17
|
-
super(context, attrs);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
public <%- project.name -%>View(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
|
|
21
|
-
super(context, attrs, defStyleAttr);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
package com.<%- project.package %>;
|
|
2
|
-
|
|
3
|
-
import android.graphics.Color;
|
|
4
|
-
|
|
5
|
-
import androidx.annotation.Nullable;
|
|
6
|
-
|
|
7
|
-
import com.facebook.react.module.annotations.ReactModule;
|
|
8
|
-
import com.facebook.react.uimanager.ThemedReactContext;
|
|
9
|
-
import com.facebook.react.uimanager.annotations.ReactProp;
|
|
10
|
-
|
|
11
|
-
@ReactModule(name = <%- project.name -%>ViewManager.NAME)
|
|
12
|
-
public class <%- project.name -%>ViewManager extends <%- project.name -%>ViewManagerSpec<<%- project.name -%>View> {
|
|
13
|
-
|
|
14
|
-
public static final String NAME = "<%- project.name -%>View";
|
|
15
|
-
|
|
16
|
-
@Override
|
|
17
|
-
public String getName() {
|
|
18
|
-
return NAME;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
@Override
|
|
22
|
-
public <%- project.name -%>View createViewInstance(ThemedReactContext context) {
|
|
23
|
-
return new <%- project.name -%>View(context);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
@Override
|
|
27
|
-
@ReactProp(name = "color")
|
|
28
|
-
public void setColor(<%- project.name -%>View view, @Nullable String color) {
|
|
29
|
-
view.setBackgroundColor(Color.parseColor(color));
|
|
30
|
-
}
|
|
31
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
<% /* TODO: try to migrate it to TurboReactPackage */ %>
|
|
2
|
-
package com.<%- project.package %>;
|
|
3
|
-
|
|
4
|
-
import com.facebook.react.ReactPackage;
|
|
5
|
-
import com.facebook.react.bridge.NativeModule;
|
|
6
|
-
import com.facebook.react.bridge.ReactApplicationContext;
|
|
7
|
-
import com.facebook.react.uimanager.ViewManager;
|
|
8
|
-
|
|
9
|
-
import java.util.ArrayList;
|
|
10
|
-
import java.util.Collections;
|
|
11
|
-
import java.util.List;
|
|
12
|
-
|
|
13
|
-
public class <%- project.name -%>ViewPackage implements ReactPackage {
|
|
14
|
-
@Override
|
|
15
|
-
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
|
|
16
|
-
List<ViewManager> viewManagers = new ArrayList<>();
|
|
17
|
-
viewManagers.add(new <%- project.name -%>ViewManager());
|
|
18
|
-
return viewManagers;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
@Override
|
|
22
|
-
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
|
|
23
|
-
return Collections.emptyList();
|
|
24
|
-
}
|
|
25
|
-
}
|
package/templates/java-view-mixed/android/src/newarch/{%- project.name %}ViewManagerSpec.java
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
package com.<%- project.package %>;
|
|
2
|
-
|
|
3
|
-
import android.view.View;
|
|
4
|
-
|
|
5
|
-
import androidx.annotation.Nullable;
|
|
6
|
-
|
|
7
|
-
import com.facebook.react.uimanager.SimpleViewManager;
|
|
8
|
-
import com.facebook.react.uimanager.ViewManagerDelegate;
|
|
9
|
-
import com.facebook.react.viewmanagers.<%- project.name -%>ViewManagerDelegate;
|
|
10
|
-
import com.facebook.react.viewmanagers.<%- project.name -%>ViewManagerInterface;
|
|
11
|
-
|
|
12
|
-
public abstract class <%- project.name -%>ViewManagerSpec<T extends View> extends SimpleViewManager<T> implements <%- project.name -%>ViewManagerInterface<T> {
|
|
13
|
-
private final ViewManagerDelegate<T> mDelegate;
|
|
14
|
-
|
|
15
|
-
public <%- project.name -%>ViewManagerSpec() {
|
|
16
|
-
mDelegate = new <%- project.name -%>ViewManagerDelegate(this);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
@Nullable
|
|
20
|
-
@Override
|
|
21
|
-
protected ViewManagerDelegate<T> getDelegate() {
|
|
22
|
-
return mDelegate;
|
|
23
|
-
}
|
|
24
|
-
}
|