expo-module-template 9.0.0 → 10.1.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/.eslintrc.js +5 -0
- package/CHANGELOG.md +32 -2
- package/android/build.gradle +17 -19
- package/android/src/main/java/expo/modules/template/ModuleTemplateModule.kt +21 -26
- package/android/src/main/java/expo/modules/template/ModuleTemplateView.kt +1 -3
- package/babel.config.js +1 -1
- package/build/ExpoModuleTemplate.d.ts +1 -1
- package/build/ExpoModuleTemplate.js +1 -1
- package/build/ExpoModuleTemplate.js.map +1 -1
- package/build/ExpoModuleTemplate.web.d.ts +1 -1
- package/build/ExpoModuleTemplate.web.js +1 -1
- package/build/ExpoModuleTemplate.web.js.map +1 -1
- package/build/ExpoModuleTemplateNativeView.d.ts +5 -1
- package/build/ExpoModuleTemplateNativeView.js +2 -2
- package/build/ExpoModuleTemplateNativeView.js.map +1 -1
- package/build/ExpoModuleTemplateNativeView.web.js +1 -1
- package/build/ExpoModuleTemplateNativeView.web.js.map +1 -1
- package/build/ExpoModuleTemplateView.d.ts +1 -1
- package/build/ExpoModuleTemplateView.js +1 -1
- package/build/ExpoModuleTemplateView.js.map +1 -1
- package/build/ModuleTemplate.d.ts +1 -1
- package/build/ModuleTemplate.js +1 -1
- package/build/ModuleTemplate.js.map +1 -1
- package/expo-module.config.json +10 -0
- package/ios/{EXModuleTemplate.podspec → ExpoModuleTemplate.podspec} +6 -5
- package/ios/ExpoModuleTemplateModule.swift +21 -0
- package/ios/ExpoModuleTemplateView.swift +3 -0
- package/package.json +9 -8
- package/src/ExpoModuleTemplate.ts +1 -1
- package/src/ExpoModuleTemplate.web.ts +3 -3
- package/src/ExpoModuleTemplateNativeView.ts +8 -2
- package/src/ExpoModuleTemplateNativeView.web.tsx +2 -5
- package/src/ExpoModuleTemplateView.tsx +7 -8
- package/src/ModuleTemplate.ts +4 -1
- package/android/src/main/java/expo/modules/template/ModuleTemplatePackage.kt +0 -17
- package/android/src/main/java/expo/modules/template/ModuleTemplateViewManager.kt +0 -37
- package/android/src/test/java/expo/modules/template/ModuleTemplateModuleTest.kt +0 -32
- package/ios/EXModuleTemplate/EXModuleTemplateModule.h +0 -7
- package/ios/EXModuleTemplate/EXModuleTemplateModule.m +0 -27
- package/ios/EXModuleTemplate/EXModuleTemplateView.h +0 -9
- package/ios/EXModuleTemplate/EXModuleTemplateView.m +0 -19
- package/ios/EXModuleTemplate/EXModuleTemplateViewManager.h +0 -8
- package/ios/EXModuleTemplate/EXModuleTemplateViewManager.m +0 -36
- package/unimodule.json +0 -4
package/.eslintrc.js
ADDED
package/CHANGELOG.md
CHANGED
|
@@ -8,9 +8,39 @@
|
|
|
8
8
|
|
|
9
9
|
### 🐛 Bug fixes
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
### 💡 Others
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
## 10.1.0 — 2021-12-03
|
|
14
|
+
|
|
15
|
+
### 🐛 Bug fixes
|
|
16
|
+
|
|
17
|
+
- Add missing import in `NativeView` template file. ([#15363](https://github.com/expo/expo/pull/15363) by [@Simek](https://github.com/Simek))
|
|
18
|
+
|
|
19
|
+
## 10.0.0 — 2021-09-28
|
|
20
|
+
|
|
21
|
+
### 🛠 Breaking changes
|
|
22
|
+
|
|
23
|
+
- Dropped support for iOS 11.0 ([#14383](https://github.com/expo/expo/pull/14383) by [@cruzach](https://github.com/cruzach))
|
|
24
|
+
|
|
25
|
+
### 🐛 Bug fixes
|
|
26
|
+
|
|
27
|
+
- Fix building errors from use_frameworks! in Podfile. ([#14523](https://github.com/expo/expo/pull/14523) by [@kudo](https://github.com/kudo))
|
|
28
|
+
|
|
29
|
+
## 9.1.0 — 2021-06-16
|
|
30
|
+
|
|
31
|
+
### 🐛 Bug fixes
|
|
32
|
+
|
|
33
|
+
- Enable kotlin in all modules. ([#12716](https://github.com/expo/expo/pull/12716) by [@wschurman](https://github.com/wschurman))
|
|
34
|
+
|
|
35
|
+
### 💡 Others
|
|
36
|
+
|
|
37
|
+
- Build Android code using Java 8 to fix Android instrumented test build error. ([#12939](https://github.com/expo/expo/pull/12939) by [@kudo](https://github.com/kudo))
|
|
38
|
+
|
|
39
|
+
## 9.0.1 — 2021-03-10
|
|
40
|
+
|
|
41
|
+
### 🐛 Bug fixes
|
|
42
|
+
|
|
43
|
+
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. ([#11980](https://github.com/expo/expo/pull/11980) by [@brentvatne](https://github.com/brentvatne))
|
|
14
44
|
|
|
15
45
|
## 9.0.0 — 2021-01-15
|
|
16
46
|
|
package/android/build.gradle
CHANGED
|
@@ -4,7 +4,7 @@ apply plugin: 'kotlin-android-extensions'
|
|
|
4
4
|
apply plugin: 'maven'
|
|
5
5
|
|
|
6
6
|
group = 'host.exp.exponent'
|
|
7
|
-
version = '
|
|
7
|
+
version = '10.1.0'
|
|
8
8
|
|
|
9
9
|
buildscript {
|
|
10
10
|
// Simple helper that allows the root project to override versions declared by this library.
|
|
@@ -17,7 +17,7 @@ buildscript {
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
dependencies {
|
|
20
|
-
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${safeExtGet(
|
|
20
|
+
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${safeExtGet('kotlinVersion', '1.4.21')}")
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
|
|
@@ -47,35 +47,33 @@ uploadArchives {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
android {
|
|
50
|
-
compileSdkVersion safeExtGet("compileSdkVersion",
|
|
50
|
+
compileSdkVersion safeExtGet("compileSdkVersion", 30)
|
|
51
|
+
|
|
52
|
+
compileOptions {
|
|
53
|
+
sourceCompatibility JavaVersion.VERSION_1_8
|
|
54
|
+
targetCompatibility JavaVersion.VERSION_1_8
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
kotlinOptions {
|
|
58
|
+
jvmTarget = JavaVersion.VERSION_1_8
|
|
59
|
+
}
|
|
51
60
|
|
|
52
61
|
defaultConfig {
|
|
53
62
|
minSdkVersion safeExtGet("minSdkVersion", 21)
|
|
54
|
-
targetSdkVersion safeExtGet("targetSdkVersion",
|
|
55
|
-
versionCode
|
|
56
|
-
versionName "
|
|
63
|
+
targetSdkVersion safeExtGet("targetSdkVersion", 30)
|
|
64
|
+
versionCode 28
|
|
65
|
+
versionName "10.1.0"
|
|
57
66
|
}
|
|
58
67
|
lintOptions {
|
|
59
68
|
abortOnError false
|
|
60
69
|
}
|
|
61
70
|
}
|
|
62
71
|
|
|
63
|
-
if (new File(rootProject.projectDir.parentFile, 'package.json').exists()) {
|
|
64
|
-
apply from: project(":unimodules-core").file("../unimodules-core.gradle")
|
|
65
|
-
} else {
|
|
66
|
-
throw new GradleException(
|
|
67
|
-
'\'unimodules-core.gradle\' was not found in the usual React Native dependency location. ' +
|
|
68
|
-
'This package can only be used in such projects. Are you sure you\'ve installed the dependencies properly?')
|
|
69
|
-
}
|
|
70
|
-
|
|
71
72
|
repositories {
|
|
72
73
|
mavenCentral()
|
|
73
74
|
}
|
|
74
75
|
|
|
75
76
|
dependencies {
|
|
76
|
-
|
|
77
|
-
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${safeExtGet(
|
|
78
|
-
|
|
79
|
-
testImplementation project(':unimodules-test-core')
|
|
80
|
-
testImplementation 'org.robolectric:robolectric:4.3.1'
|
|
77
|
+
implementation project(':expo-modules-core')
|
|
78
|
+
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${safeExtGet('kotlinVersion', '1.4.21')}"
|
|
81
79
|
}
|
|
@@ -1,30 +1,25 @@
|
|
|
1
1
|
package expo.modules.template
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
companion object {
|
|
27
|
-
private val NAME = "ExpoModuleTemplate"
|
|
28
|
-
private val TAG = ModuleTemplateModule::class.qualifiedName
|
|
3
|
+
import expo.modules.kotlin.modules.Module
|
|
4
|
+
import expo.modules.kotlin.modules.ModuleDefinition
|
|
5
|
+
|
|
6
|
+
class ModuleTemplateModule : Module() {
|
|
7
|
+
override fun definition() = ModuleDefinition {
|
|
8
|
+
name("ExpoModuleTemplate")
|
|
9
|
+
|
|
10
|
+
function("someGreatMethodAsync") { options: Map<String, String> ->
|
|
11
|
+
println("Hello 👋")
|
|
12
|
+
null as Any?
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
viewManager {
|
|
16
|
+
view { context ->
|
|
17
|
+
ModuleTemplateView(context)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
prop("someGreatProp") { view: ModuleTemplateView, prop: Int ->
|
|
21
|
+
println(prop)
|
|
22
|
+
}
|
|
23
|
+
}
|
|
29
24
|
}
|
|
30
25
|
}
|
|
@@ -3,6 +3,4 @@ package expo.modules.template
|
|
|
3
3
|
import android.content.Context
|
|
4
4
|
import android.view.View
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class ModuleTemplateView(context: Context, moduleRegistry: ModuleRegistry) : View(context)
|
|
6
|
+
class ModuleTemplateView(context: Context) : View(context)
|
package/babel.config.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: import("
|
|
1
|
+
declare const _default: import("expo-modules-core").ProxyNativeModule;
|
|
2
2
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoModuleTemplate.js","sourceRoot":"","sources":["../src/ExpoModuleTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ExpoModuleTemplate.js","sourceRoot":"","sources":["../src/ExpoModuleTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,eAAe,kBAAkB,CAAC,kBAAkB,CAAC","sourcesContent":["import { NativeModulesProxy } from 'expo-modules-core';\n\nexport default NativeModulesProxy.ExpoModuleTemplate;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoModuleTemplate.web.js","sourceRoot":"","sources":["../src/ExpoModuleTemplate.web.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,IAAI,IAAI;QACN,OAAO,oBAAoB,CAAC;IAC9B,CAAC;CACF,
|
|
1
|
+
{"version":3,"file":"ExpoModuleTemplate.web.js","sourceRoot":"","sources":["../src/ExpoModuleTemplate.web.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,IAAI,IAAI;QACN,OAAO,oBAAoB,CAAC;IAC9B,CAAC;CACF,CAAC","sourcesContent":["export default {\n get name(): string {\n return 'ExpoModuleTemplate';\n },\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { requireNativeViewManager } from '
|
|
2
|
-
const NativeView = requireNativeViewManager('
|
|
1
|
+
import { requireNativeViewManager } from 'expo-modules-core';
|
|
2
|
+
const NativeView = requireNativeViewManager('ExpoModuleTemplate');
|
|
3
3
|
export default NativeView;
|
|
4
4
|
//# sourceMappingURL=ExpoModuleTemplateNativeView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoModuleTemplateNativeView.js","sourceRoot":"","sources":["../src/ExpoModuleTemplateNativeView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ExpoModuleTemplateNativeView.js","sourceRoot":"","sources":["../src/ExpoModuleTemplateNativeView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAO7D,MAAM,UAAU,GACd,wBAAwB,CAAC,oBAAoB,CAAC,CAAC;AAEjD,eAAe,UAAU,CAAC","sourcesContent":["import { requireNativeViewManager } from 'expo-modules-core';\nimport * as React from 'react';\n\ntype NativeViewProps = {\n someGreatProp: number;\n};\n\nconst NativeView: React.ComponentType<NativeViewProps> =\n requireNativeViewManager('ExpoModuleTemplate');\n\nexport default NativeView;\n"]}
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { View } from 'react-native';
|
|
3
3
|
export default class ExpoModuleTemplateView extends React.Component {
|
|
4
4
|
render() {
|
|
5
|
-
return
|
|
5
|
+
return React.createElement(View, null);
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=ExpoModuleTemplateNativeView.web.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoModuleTemplateNativeView.web.js","sourceRoot":"","sources":["../src/ExpoModuleTemplateNativeView.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ExpoModuleTemplateNativeView.web.js","sourceRoot":"","sources":["../src/ExpoModuleTemplateNativeView.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,KAAK,CAAC,SAAS;IACjE,MAAM;QACJ,OAAO,oBAAC,IAAI,OAAG,CAAC;IAClB,CAAC;CACF","sourcesContent":["import * as React from 'react';\nimport { View } from 'react-native';\n\nexport default class ExpoModuleTemplateView extends React.Component {\n render() {\n return <View />;\n }\n}\n"]}
|
|
@@ -12,7 +12,7 @@ import NativeView from './ExpoModuleTemplateNativeView';
|
|
|
12
12
|
*/
|
|
13
13
|
export default class ExpoModuleTemplateView extends React.Component {
|
|
14
14
|
render() {
|
|
15
|
-
return
|
|
15
|
+
return React.createElement(NativeView, { someGreatProp: this.props.someGreatProp });
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
//# sourceMappingURL=ExpoModuleTemplateView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoModuleTemplateView.js","sourceRoot":"","sources":["../src/ExpoModuleTemplateView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,UAAU,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"ExpoModuleTemplateView.js","sourceRoot":"","sources":["../src/ExpoModuleTemplateView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,UAAU,MAAM,gCAAgC,CAAC;AAQxD;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,KAAK,CAAC,SAGzD;IACC,MAAM;QACJ,OAAO,oBAAC,UAAU,IAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAI,CAAC;IACjE,CAAC;CACF","sourcesContent":["import * as React from 'react';\n\nimport NativeView from './ExpoModuleTemplateNativeView';\n\nexport interface ExpoModuleTemplateViewProps {\n someGreatProp: number;\n}\n\ninterface ExpoModuleTemplateViewState {}\n\n/**\n * Great view that would suit your needs!\n *\n * @example\n * ```tsx\n * <ExpoModuleTemplateNativeView\n * greatProp=\"great\"\n * />\n * ```\n */\nexport default class ExpoModuleTemplateView extends React.Component<\n ExpoModuleTemplateViewProps,\n ExpoModuleTemplateViewState\n> {\n render() {\n return <NativeView someGreatProp={this.props.someGreatProp} />;\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SampleOptions } from './ModuleTemplate.types';
|
|
2
|
-
export { default as ExpoModuleTemplateView, ExpoModuleTemplateViewProps } from './ExpoModuleTemplateView';
|
|
2
|
+
export { default as ExpoModuleTemplateView, ExpoModuleTemplateViewProps, } from './ExpoModuleTemplateView';
|
|
3
3
|
export * from './ModuleTemplate.types';
|
|
4
4
|
/**
|
|
5
5
|
* Great method that does a lot great stuff.
|
package/build/ModuleTemplate.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import ExpoModuleTemplate from './ExpoModuleTemplate';
|
|
2
|
-
export { default as ExpoModuleTemplateView } from './ExpoModuleTemplateView';
|
|
2
|
+
export { default as ExpoModuleTemplateView, } from './ExpoModuleTemplateView';
|
|
3
3
|
export * from './ModuleTemplate.types';
|
|
4
4
|
/**
|
|
5
5
|
* Great method that does a lot great stuff.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleTemplate.js","sourceRoot":"","sources":["../src/ModuleTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAGtD,OAAO,
|
|
1
|
+
{"version":3,"file":"ModuleTemplate.js","sourceRoot":"","sources":["../src/ModuleTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EACL,OAAO,IAAI,sBAAsB,GAElC,MAAM,0BAA0B,CAAC;AAElC,cAAc,wBAAwB,CAAC;AAEvC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAAsB;IAC/D,OAAO,MAAM,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAChE,CAAC","sourcesContent":["import ExpoModuleTemplate from './ExpoModuleTemplate';\nimport { SampleOptions } from './ModuleTemplate.types';\n\nexport {\n default as ExpoModuleTemplateView,\n ExpoModuleTemplateViewProps,\n} from './ExpoModuleTemplateView';\n\nexport * from './ModuleTemplate.types';\n\n/**\n * Great method that does a lot great stuff.\n * @param options specifies what great stuff you really want.\n *\n * @example\n * ```typescript\n * const result = await someGreatMethodAsync({ someOption: 'awesome' });\n * ```\n */\nexport async function someGreatMethodAsync(options: SampleOptions) {\n return await ExpoModuleTemplate.someGreatMethodAsync(options);\n}\n"]}
|
|
@@ -3,18 +3,19 @@ require 'json'
|
|
|
3
3
|
package = JSON.parse(File.read(File.join(__dir__, '..', 'package.json')))
|
|
4
4
|
|
|
5
5
|
Pod::Spec.new do |s|
|
|
6
|
-
s.name = '
|
|
6
|
+
s.name = 'ExpoModuleTemplate'
|
|
7
7
|
s.version = package['version']
|
|
8
8
|
s.summary = package['description']
|
|
9
9
|
s.description = package['description']
|
|
10
10
|
s.license = package['license']
|
|
11
11
|
s.author = package['author']
|
|
12
12
|
s.homepage = package['homepage']
|
|
13
|
-
s.platform = :ios, '
|
|
13
|
+
s.platform = :ios, '12.0'
|
|
14
14
|
s.source = { git: 'https://github.com/expo/expo.git' }
|
|
15
|
-
s.
|
|
16
|
-
s.
|
|
15
|
+
s.static_framework = true
|
|
16
|
+
s.source_files = '**/*.{h,m,swift}'
|
|
17
|
+
s.preserve_paths = '**/*.{h,m,swift}'
|
|
17
18
|
s.requires_arc = true
|
|
18
19
|
|
|
19
|
-
s.dependency '
|
|
20
|
+
s.dependency 'ExpoModulesCore'
|
|
20
21
|
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import ExpoModulesCore
|
|
2
|
+
|
|
3
|
+
public class ExpoModuleTemplateModule: Module {
|
|
4
|
+
public func definition() -> ModuleDefinition {
|
|
5
|
+
name("ExpoModuleTemplate")
|
|
6
|
+
|
|
7
|
+
function("someGreatMethodAsync") { (options: [String: String]) in
|
|
8
|
+
print("Hello 👋")
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
viewManager {
|
|
12
|
+
view {
|
|
13
|
+
ExpoModuleTemplateView()
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
prop("someGreatProp") { (view: ExpoModuleTemplateView, prop: Int) in
|
|
17
|
+
print("prop")
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-module-template",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "10.1.0",
|
|
4
4
|
"description": "ExpoModuleTemplate standalone module",
|
|
5
5
|
"main": "build/ModuleTemplate.js",
|
|
6
6
|
"types": "build/ModuleTemplate.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
|
-
"build": "tsc"
|
|
8
|
+
"build": "tsc",
|
|
9
|
+
"lint": "eslint ."
|
|
9
10
|
},
|
|
10
11
|
"keywords": [
|
|
11
12
|
"react-native",
|
|
@@ -22,13 +23,13 @@
|
|
|
22
23
|
},
|
|
23
24
|
"author": "650 Industries, Inc.",
|
|
24
25
|
"license": "MIT",
|
|
25
|
-
"homepage": "https://docs.expo.
|
|
26
|
-
"
|
|
27
|
-
|
|
26
|
+
"homepage": "https://docs.expo.dev/versions/latest/sdk/module-template",
|
|
27
|
+
"dependencies": {},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"expo-module-scripts": "^2.0.0"
|
|
28
30
|
},
|
|
29
31
|
"peerDependencies": {
|
|
30
|
-
"
|
|
31
|
-
"react-native": "*"
|
|
32
|
+
"expo": "*"
|
|
32
33
|
},
|
|
33
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "2e5c6983b86d5ecfca028ba64002897d8adc2cc4"
|
|
34
35
|
}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
import { requireNativeViewManager } from '
|
|
1
|
+
import { requireNativeViewManager } from 'expo-modules-core';
|
|
2
|
+
import * as React from 'react';
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
type NativeViewProps = {
|
|
5
|
+
someGreatProp: number;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
const NativeView: React.ComponentType<NativeViewProps> =
|
|
9
|
+
requireNativeViewManager('ExpoModuleTemplate');
|
|
4
10
|
|
|
5
11
|
export default NativeView;
|
|
@@ -3,12 +3,10 @@ import * as React from 'react';
|
|
|
3
3
|
import NativeView from './ExpoModuleTemplateNativeView';
|
|
4
4
|
|
|
5
5
|
export interface ExpoModuleTemplateViewProps {
|
|
6
|
-
|
|
6
|
+
someGreatProp: number;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
interface ExpoModuleTemplateViewState {
|
|
10
|
-
|
|
11
|
-
}
|
|
9
|
+
interface ExpoModuleTemplateViewState {}
|
|
12
10
|
|
|
13
11
|
/**
|
|
14
12
|
* Great view that would suit your needs!
|
|
@@ -20,10 +18,11 @@ interface ExpoModuleTemplateViewState {
|
|
|
20
18
|
* />
|
|
21
19
|
* ```
|
|
22
20
|
*/
|
|
23
|
-
export default class ExpoModuleTemplateView extends React.Component<
|
|
21
|
+
export default class ExpoModuleTemplateView extends React.Component<
|
|
22
|
+
ExpoModuleTemplateViewProps,
|
|
23
|
+
ExpoModuleTemplateViewState
|
|
24
|
+
> {
|
|
24
25
|
render() {
|
|
25
|
-
return
|
|
26
|
-
<NativeView />
|
|
27
|
-
);
|
|
26
|
+
return <NativeView someGreatProp={this.props.someGreatProp} />;
|
|
28
27
|
}
|
|
29
28
|
}
|
package/src/ModuleTemplate.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import ExpoModuleTemplate from './ExpoModuleTemplate';
|
|
2
2
|
import { SampleOptions } from './ModuleTemplate.types';
|
|
3
3
|
|
|
4
|
-
export {
|
|
4
|
+
export {
|
|
5
|
+
default as ExpoModuleTemplateView,
|
|
6
|
+
ExpoModuleTemplateViewProps,
|
|
7
|
+
} from './ExpoModuleTemplateView';
|
|
5
8
|
|
|
6
9
|
export * from './ModuleTemplate.types';
|
|
7
10
|
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
package expo.modules.template
|
|
2
|
-
|
|
3
|
-
import android.content.Context
|
|
4
|
-
|
|
5
|
-
import org.unimodules.core.BasePackage
|
|
6
|
-
import org.unimodules.core.ExportedModule
|
|
7
|
-
import org.unimodules.core.ViewManager
|
|
8
|
-
|
|
9
|
-
class ModuleTemplatePackage : BasePackage() {
|
|
10
|
-
override fun createExportedModules(context: Context): List<ExportedModule> {
|
|
11
|
-
return listOf(ModuleTemplateModule(context) as ExportedModule)
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
override fun createViewManagers(context: Context): List<ViewManager<*>> {
|
|
15
|
-
return listOf(ModuleTemplateViewManager() as ViewManager<*>)
|
|
16
|
-
}
|
|
17
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
package expo.modules.template
|
|
2
|
-
|
|
3
|
-
import android.content.Context
|
|
4
|
-
|
|
5
|
-
import java.util.Arrays
|
|
6
|
-
|
|
7
|
-
import org.unimodules.core.ModuleRegistry
|
|
8
|
-
import org.unimodules.core.ViewManager
|
|
9
|
-
|
|
10
|
-
class ModuleTemplateViewManager : ViewManager<ModuleTemplateView>() {
|
|
11
|
-
|
|
12
|
-
private var mModuleRegistry: ModuleRegistry? = null
|
|
13
|
-
|
|
14
|
-
override fun getName(): String {
|
|
15
|
-
return TAG
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
override fun createViewInstance(context: Context): ModuleTemplateView {
|
|
19
|
-
return ModuleTemplateView(context, mModuleRegistry!!)
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
override fun getViewManagerType(): ViewManager.ViewManagerType {
|
|
23
|
-
return ViewManager.ViewManagerType.SIMPLE
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
override fun getExportedEventNames(): List<String> {
|
|
27
|
-
return Arrays.asList("onSomethingHappened")
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
override fun onCreate(moduleRegistry: ModuleRegistry) {
|
|
31
|
-
mModuleRegistry = moduleRegistry
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
companion object {
|
|
35
|
-
private val TAG = "ExpoModuleTemplateView"
|
|
36
|
-
}
|
|
37
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
package expo.modules.template
|
|
2
|
-
|
|
3
|
-
import io.mockk.mockk
|
|
4
|
-
import org.junit.Assert.assertTrue
|
|
5
|
-
import org.junit.Before
|
|
6
|
-
import org.junit.Test
|
|
7
|
-
import org.junit.runner.RunWith
|
|
8
|
-
import org.robolectric.RobolectricTestRunner
|
|
9
|
-
import org.unimodules.test.core.PromiseMock
|
|
10
|
-
import org.unimodules.test.core.moduleRegistryMock
|
|
11
|
-
|
|
12
|
-
@RunWith(RobolectricTestRunner::class)
|
|
13
|
-
class ModuleTemplateModuleTest {
|
|
14
|
-
|
|
15
|
-
private var moduleRegistry = moduleRegistryMock()
|
|
16
|
-
|
|
17
|
-
private lateinit var promise: PromiseMock
|
|
18
|
-
|
|
19
|
-
private lateinit var module: ModuleTemplateModule
|
|
20
|
-
|
|
21
|
-
@Before
|
|
22
|
-
fun initializeMock() {
|
|
23
|
-
promise = PromiseMock()
|
|
24
|
-
module = ModuleTemplateModule(mockk())
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
@Test
|
|
28
|
-
fun testSomeGreatMethodAsync() {
|
|
29
|
-
assertTrue(true)
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
// Copyright 2018-present 650 Industries. All rights reserved.
|
|
2
|
-
|
|
3
|
-
#import <EXModuleTemplate/EXModuleTemplateModule.h>
|
|
4
|
-
|
|
5
|
-
@interface EXModuleTemplateModule ()
|
|
6
|
-
|
|
7
|
-
@property (nonatomic, weak) UMModuleRegistry *moduleRegistry;
|
|
8
|
-
|
|
9
|
-
@end
|
|
10
|
-
|
|
11
|
-
@implementation EXModuleTemplateModule
|
|
12
|
-
|
|
13
|
-
UM_EXPORT_MODULE(ExpoModuleTemplate);
|
|
14
|
-
|
|
15
|
-
- (void)setModuleRegistry:(UMModuleRegistry *)moduleRegistry
|
|
16
|
-
{
|
|
17
|
-
_moduleRegistry = moduleRegistry;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
UM_EXPORT_METHOD_AS(someGreatMethodAsync,
|
|
21
|
-
options:(NSDictionary *)options
|
|
22
|
-
resolve:(UMPromiseResolveBlock)resolve
|
|
23
|
-
reject:(UMPromiseRejectBlock)reject)
|
|
24
|
-
{
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
@end
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
// Copyright 2016-present 650 Industries. All rights reserved.
|
|
2
|
-
|
|
3
|
-
#import <EXModuleTemplate/EXModuleTemplateView.h>
|
|
4
|
-
|
|
5
|
-
@interface EXModuleTemplateView ()
|
|
6
|
-
|
|
7
|
-
@end
|
|
8
|
-
|
|
9
|
-
@implementation EXModuleTemplateView
|
|
10
|
-
|
|
11
|
-
- (instancetype)initWithModuleRegistry:(UMModuleRegistry *)moduleRegistry
|
|
12
|
-
{
|
|
13
|
-
if ((self = [super init])) {
|
|
14
|
-
// some logic here
|
|
15
|
-
}
|
|
16
|
-
return self;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
@end
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
// Copyright 2016-present 650 Industries. All rights reserved.
|
|
2
|
-
|
|
3
|
-
#import <EXModuleTemplate/EXModuleTemplateView.h>
|
|
4
|
-
#import <EXModuleTemplate/EXModuleTemplateViewManager.h>
|
|
5
|
-
|
|
6
|
-
@interface EXModuleTemplateViewManager ()
|
|
7
|
-
|
|
8
|
-
@property (nonatomic, weak) UMModuleRegistry *moduleRegistry;
|
|
9
|
-
|
|
10
|
-
@end
|
|
11
|
-
|
|
12
|
-
@implementation EXModuleTemplateViewManager
|
|
13
|
-
|
|
14
|
-
UM_EXPORT_MODULE(ExpoModuleTemplateViewManager);
|
|
15
|
-
|
|
16
|
-
- (UIView *)view
|
|
17
|
-
{
|
|
18
|
-
return [[EXModuleTemplateView alloc] initWithModuleRegistry:_moduleRegistry];
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
- (NSString *)viewName
|
|
22
|
-
{
|
|
23
|
-
return @"ExpoModuleTemplateView";
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
- (NSArray<NSString *> *)supportedEvents
|
|
27
|
-
{
|
|
28
|
-
return @[@"onSomethingHappened"];
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
- (void)setModuleRegistry:(UMModuleRegistry *)moduleRegistry
|
|
32
|
-
{
|
|
33
|
-
_moduleRegistry = moduleRegistry;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
@end
|
package/unimodule.json
DELETED