Skip to content

Commit 4841767

Browse files
authored
Merge pull request facebook#27 from BuckleTypes/native-modules
Add NativeModules and NativeEventEmitter
2 parents 5ebefe1 + 16a4606 commit 4841767

File tree

5 files changed

+43
-0
lines changed

5 files changed

+43
-0
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,9 @@ let styles =
9999
- [ ] Keyboard
100100
- [ ] LayoutAnimation
101101
- [ ] Linking
102+
- [x] NativeEventEmitter
102103
- [ ] NativeMethodsMixin
104+
- [x] NativeModules
103105
- [ ] NetInfo
104106
- [x] PanResponder
105107
- [ ] PermissionsAndroid

src/NativeEventEmitter.re

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
type t;
2+
3+
type emitterSubscription;
4+
5+
external create : NativeModules.t => t =
6+
"NativeEventEmitter" [@@bs.new] [@@bs.module "react-native"];
7+
8+
external addListener : t => string => (Js.Dict.t 'a => unit) => emitterSubscription = "" [@@bs.send];
9+
10+
external removeAllListeners : t => string => unit = "" [@@bs.send];
11+
12+
external removeSubscription : t => emitterSubscription => unit = "" [@@bs.send];
13+
14+
module Subscription = {
15+
external remove : emitterSubscription => unit => unit = "" [@@bs.send];
16+
};
17+

src/NativeEventEmitter.rei

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
type t;
2+
3+
type emitterSubscription;
4+
5+
let create: NativeModules.t => t;
6+
7+
let addListener: t => string => (Js.Dict.t 'a => unit) => emitterSubscription;
8+
9+
let removeAllListeners: t => string => unit;
10+
11+
let removeSubscription: t => emitterSubscription => unit;
12+
13+
module Subscription: {let remove: emitterSubscription => unit => unit;};

src/NativeModules.re

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
type t;
2+
3+
external nativeModules : Js.Dict.t 'a = "NativeModules" [@@bs.module "react-native"];
4+
5+
let _get name: t => Js.Dict.unsafeGet nativeModules name;
6+
7+
let get name => _get name;
8+

src/NativeModules.rei

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
type t;
2+
3+
let get: string => t;

0 commit comments

Comments
 (0)