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.
Files changed (44) hide show
  1. package/.eslintrc.js +5 -0
  2. package/CHANGELOG.md +32 -2
  3. package/android/build.gradle +17 -19
  4. package/android/src/main/java/expo/modules/template/ModuleTemplateModule.kt +21 -26
  5. package/android/src/main/java/expo/modules/template/ModuleTemplateView.kt +1 -3
  6. package/babel.config.js +1 -1
  7. package/build/ExpoModuleTemplate.d.ts +1 -1
  8. package/build/ExpoModuleTemplate.js +1 -1
  9. package/build/ExpoModuleTemplate.js.map +1 -1
  10. package/build/ExpoModuleTemplate.web.d.ts +1 -1
  11. package/build/ExpoModuleTemplate.web.js +1 -1
  12. package/build/ExpoModuleTemplate.web.js.map +1 -1
  13. package/build/ExpoModuleTemplateNativeView.d.ts +5 -1
  14. package/build/ExpoModuleTemplateNativeView.js +2 -2
  15. package/build/ExpoModuleTemplateNativeView.js.map +1 -1
  16. package/build/ExpoModuleTemplateNativeView.web.js +1 -1
  17. package/build/ExpoModuleTemplateNativeView.web.js.map +1 -1
  18. package/build/ExpoModuleTemplateView.d.ts +1 -1
  19. package/build/ExpoModuleTemplateView.js +1 -1
  20. package/build/ExpoModuleTemplateView.js.map +1 -1
  21. package/build/ModuleTemplate.d.ts +1 -1
  22. package/build/ModuleTemplate.js +1 -1
  23. package/build/ModuleTemplate.js.map +1 -1
  24. package/expo-module.config.json +10 -0
  25. package/ios/{EXModuleTemplate.podspec → ExpoModuleTemplate.podspec} +6 -5
  26. package/ios/ExpoModuleTemplateModule.swift +21 -0
  27. package/ios/ExpoModuleTemplateView.swift +3 -0
  28. package/package.json +9 -8
  29. package/src/ExpoModuleTemplate.ts +1 -1
  30. package/src/ExpoModuleTemplate.web.ts +3 -3
  31. package/src/ExpoModuleTemplateNativeView.ts +8 -2
  32. package/src/ExpoModuleTemplateNativeView.web.tsx +2 -5
  33. package/src/ExpoModuleTemplateView.tsx +7 -8
  34. package/src/ModuleTemplate.ts +4 -1
  35. package/android/src/main/java/expo/modules/template/ModuleTemplatePackage.kt +0 -17
  36. package/android/src/main/java/expo/modules/template/ModuleTemplateViewManager.kt +0 -37
  37. package/android/src/test/java/expo/modules/template/ModuleTemplateModuleTest.kt +0 -32
  38. package/ios/EXModuleTemplate/EXModuleTemplateModule.h +0 -7
  39. package/ios/EXModuleTemplate/EXModuleTemplateModule.m +0 -27
  40. package/ios/EXModuleTemplate/EXModuleTemplateView.h +0 -9
  41. package/ios/EXModuleTemplate/EXModuleTemplateView.m +0 -19
  42. package/ios/EXModuleTemplate/EXModuleTemplateViewManager.h +0 -8
  43. package/ios/EXModuleTemplate/EXModuleTemplateViewManager.m +0 -36
  44. package/unimodule.json +0 -4
package/.eslintrc.js ADDED
@@ -0,0 +1,5 @@
1
+ module.exports = {
2
+ root: true,
3
+ extends: ['universe/native', 'universe/web'],
4
+ ignorePatterns: ['build'],
5
+ };
package/CHANGELOG.md CHANGED
@@ -8,9 +8,39 @@
8
8
 
9
9
  ### 🐛 Bug fixes
10
10
 
11
- ## 9.0.0 — 2021-01-15
11
+ ### 💡 Others
12
12
 
13
- _This version does not introduce any user-facing changes._
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
 
@@ -4,7 +4,7 @@ apply plugin: 'kotlin-android-extensions'
4
4
  apply plugin: 'maven'
5
5
 
6
6
  group = 'host.exp.exponent'
7
- version = '9.0.0'
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("kotlinVersion", "1.3.50")}")
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", 29)
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", 28)
55
- versionCode 29
56
- versionName "9.0.0"
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
- unimodule 'unimodules-core'
77
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${safeExtGet("kotlinVersion", "1.3.50")}"
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 android.content.Context
4
-
5
- import org.unimodules.core.ExportedModule
6
- import org.unimodules.core.ModuleRegistry
7
- import org.unimodules.core.Promise
8
- import org.unimodules.core.interfaces.ExpoMethod
9
-
10
- class ModuleTemplateModule(context: Context) : ExportedModule(context) {
11
-
12
- private var mModuleRegistry: ModuleRegistry? = null
13
-
14
- override fun getName(): String {
15
- return NAME
16
- }
17
-
18
- override fun onCreate(moduleRegistry: ModuleRegistry) {
19
- mModuleRegistry = moduleRegistry
20
- }
21
-
22
- @ExpoMethod
23
- fun someGreatMethodAsync(options: Map<String, Any>, promise: Promise) {
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
- import org.unimodules.core.ModuleRegistry
7
-
8
- class ModuleTemplateView(context: Context, moduleRegistry: ModuleRegistry) : View(context)
6
+ class ModuleTemplateView(context: Context) : View(context)
package/babel.config.js CHANGED
@@ -1,4 +1,4 @@
1
- module.exports = function(api) {
1
+ module.exports = function (api) {
2
2
  api.cache(true);
3
3
  return {
4
4
  presets: ['babel-preset-expo'],
@@ -1,2 +1,2 @@
1
- declare const _default: import("@unimodules/core").ProxyNativeModule;
1
+ declare const _default: import("expo-modules-core").ProxyNativeModule;
2
2
  export default _default;
@@ -1,3 +1,3 @@
1
- import { NativeModulesProxy } from '@unimodules/core';
1
+ import { NativeModulesProxy } from 'expo-modules-core';
2
2
  export default NativeModulesProxy.ExpoModuleTemplate;
3
3
  //# sourceMappingURL=ExpoModuleTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoModuleTemplate.js","sourceRoot":"","sources":["../src/ExpoModuleTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,eAAe,kBAAkB,CAAC,kBAAkB,CAAC","sourcesContent":["import { NativeModulesProxy } from '@unimodules/core';\n\nexport default NativeModulesProxy.ExpoModuleTemplate;\n"]}
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,4 +1,4 @@
1
1
  declare const _default: {
2
- readonly name: String;
2
+ readonly name: string;
3
3
  };
4
4
  export default _default;
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  get name() {
3
3
  return 'ExpoModuleTemplate';
4
- }
4
+ },
5
5
  };
6
6
  //# sourceMappingURL=ExpoModuleTemplate.web.js.map
@@ -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,CAAA","sourcesContent":["export default {\n get name(): String {\n return 'ExpoModuleTemplate';\n }\n}\n"]}
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,2 +1,6 @@
1
- declare const NativeView: import("react").ComponentType<any>;
1
+ import * as React from 'react';
2
+ declare type NativeViewProps = {
3
+ someGreatProp: number;
4
+ };
5
+ declare const NativeView: React.ComponentType<NativeViewProps>;
2
6
  export default NativeView;
@@ -1,4 +1,4 @@
1
- import { requireNativeViewManager } from '@unimodules/core';
2
- const NativeView = requireNativeViewManager('ExpoModuleTemplateView');
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,kBAAkB,CAAC;AAE5D,MAAM,UAAU,GAAG,wBAAwB,CAAC,wBAAwB,CAAC,CAAC;AAEtE,eAAe,UAAU,CAAC","sourcesContent":["import { requireNativeViewManager } from '@unimodules/core';\n\nconst NativeView = requireNativeViewManager('ExpoModuleTemplateView');\n\nexport default NativeView;\n"]}
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 (React.createElement(View, null));
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;AAE/B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEnC,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,KAAK,CAAC,SAAS;IACjE,MAAM;QACJ,OAAO,CACL,oBAAC,IAAI,OAAG,CACT,CAAC;IACJ,CAAC;CACF","sourcesContent":["import * as React from 'react';\n\nimport { View } from 'react-native'\n\nexport default class ExpoModuleTemplateView extends React.Component {\n render() {\n return (\n <View />\n );\n }\n}\n"]}
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"]}
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  export interface ExpoModuleTemplateViewProps {
3
- greatProp: string;
3
+ someGreatProp: number;
4
4
  }
5
5
  interface ExpoModuleTemplateViewState {
6
6
  }
@@ -12,7 +12,7 @@ import NativeView from './ExpoModuleTemplateNativeView';
12
12
  */
13
13
  export default class ExpoModuleTemplateView extends React.Component {
14
14
  render() {
15
- return (React.createElement(NativeView, null));
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;AAUxD;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,KAAK,CAAC,SAAmE;IAC3H,MAAM;QACJ,OAAO,CACL,oBAAC,UAAU,OAAG,CACf,CAAC;IACJ,CAAC;CACF","sourcesContent":["import * as React from 'react';\n\nimport NativeView from './ExpoModuleTemplateNativeView';\n\nexport interface ExpoModuleTemplateViewProps {\n greatProp: string;\n}\n\ninterface ExpoModuleTemplateViewState {\n\n}\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<ExpoModuleTemplateViewProps, ExpoModuleTemplateViewState> {\n render() {\n return (\n <NativeView />\n );\n }\n}\n"]}
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.
@@ -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,EAAE,OAAO,IAAI,sBAAsB,EAA+B,MAAM,0BAA0B,CAAC;AAE1G,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 { default as ExpoModuleTemplateView, ExpoModuleTemplateViewProps } 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"]}
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"]}
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "expo-module-template",
3
+ "platforms": ["ios", "android", "web"],
4
+ "ios": {
5
+ "modulesClassNames": ["ExpoModule"]
6
+ },
7
+ "android": {
8
+ "modulesClassNames": ["expo.modules.expomodule.ExpoModule"]
9
+ }
10
+ }
@@ -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 = 'EXModuleTemplate'
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, '11.0'
13
+ s.platform = :ios, '12.0'
14
14
  s.source = { git: 'https://github.com/expo/expo.git' }
15
- s.source_files = 'EXModuleTemplate/**/*.{h,m}'
16
- s.preserve_paths = 'EXModuleTemplate/**/*.{h,m}'
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 'UMCore'
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
+ }
@@ -0,0 +1,3 @@
1
+ import UIKit
2
+
3
+ class ExpoModuleTemplateView: UIView {}
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "expo-module-template",
3
- "version": "9.0.0",
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.io/versions/latest/sdk/module-template",
26
- "unimodulePeerDependencies": {
27
- "@unimodules/core": "*"
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
- "react": "*",
31
- "react-native": "*"
32
+ "expo": "*"
32
33
  },
33
- "gitHead": "e362887ddc6ba4e3518efd623d64b3cbd301a6a9"
34
+ "gitHead": "2e5c6983b86d5ecfca028ba64002897d8adc2cc4"
34
35
  }
@@ -1,3 +1,3 @@
1
- import { NativeModulesProxy } from '@unimodules/core';
1
+ import { NativeModulesProxy } from 'expo-modules-core';
2
2
 
3
3
  export default NativeModulesProxy.ExpoModuleTemplate;
@@ -1,5 +1,5 @@
1
1
  export default {
2
- get name(): String {
2
+ get name(): string {
3
3
  return 'ExpoModuleTemplate';
4
- }
5
- }
4
+ },
5
+ };
@@ -1,5 +1,11 @@
1
- import { requireNativeViewManager } from '@unimodules/core';
1
+ import { requireNativeViewManager } from 'expo-modules-core';
2
+ import * as React from 'react';
2
3
 
3
- const NativeView = requireNativeViewManager('ExpoModuleTemplateView');
4
+ type NativeViewProps = {
5
+ someGreatProp: number;
6
+ };
7
+
8
+ const NativeView: React.ComponentType<NativeViewProps> =
9
+ requireNativeViewManager('ExpoModuleTemplate');
4
10
 
5
11
  export default NativeView;
@@ -1,11 +1,8 @@
1
1
  import * as React from 'react';
2
-
3
- import { View } from 'react-native'
2
+ import { View } from 'react-native';
4
3
 
5
4
  export default class ExpoModuleTemplateView extends React.Component {
6
5
  render() {
7
- return (
8
- <View />
9
- );
6
+ return <View />;
10
7
  }
11
8
  }
@@ -3,12 +3,10 @@ import * as React from 'react';
3
3
  import NativeView from './ExpoModuleTemplateNativeView';
4
4
 
5
5
  export interface ExpoModuleTemplateViewProps {
6
- greatProp: string;
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<ExpoModuleTemplateViewProps, ExpoModuleTemplateViewState> {
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
  }
@@ -1,7 +1,10 @@
1
1
  import ExpoModuleTemplate from './ExpoModuleTemplate';
2
2
  import { SampleOptions } from './ModuleTemplate.types';
3
3
 
4
- export { default as ExpoModuleTemplateView, ExpoModuleTemplateViewProps } from './ExpoModuleTemplateView';
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,7 +0,0 @@
1
- // Copyright © 2018 650 Industries. All rights reserved.
2
-
3
- #import <UMCore/UMExportedModule.h>
4
- #import <UMCore/UMModuleRegistryConsumer.h>
5
-
6
- @interface EXModuleTemplateModule : UMExportedModule <UMModuleRegistryConsumer>
7
- @end
@@ -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,9 +0,0 @@
1
- // Copyright 2016-present 650 Industries. All rights reserved.
2
-
3
- #import <UMCore/UMModuleRegistry.h>
4
-
5
- @interface EXModuleTemplateView : UIView
6
-
7
- - (instancetype)initWithModuleRegistry:(UMModuleRegistry *)moduleRegistry;
8
-
9
- @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,8 +0,0 @@
1
- // Copyright 2016-present 650 Industries. All rights reserved.
2
-
3
- #import <UMCore/UMViewManager.h>
4
- #import <UMCore/UMModuleRegistryConsumer.h>
5
-
6
- @interface EXModuleTemplateViewManager : UMViewManager <UMModuleRegistryConsumer>
7
-
8
- @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
@@ -1,4 +0,0 @@
1
- {
2
- "name": "expo-module-template",
3
- "platforms": ["ios", "android", "web"]
4
- }