forked from revtel/react-native-nfc-manager
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNativeNfcManager.js
More file actions
40 lines (33 loc) · 862 Bytes
/
NativeNfcManager.js
File metadata and controls
40 lines (33 loc) · 862 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
'use strict';
import {
NativeModules,
NativeEventEmitter,
} from 'react-native'
const NativeNfcManager = NativeModules.NfcManager;
const NfcManagerEmitter = new NativeEventEmitter(NativeNfcManager);
function callNative(name, params=[]) {
const nativeMethod = NativeNfcManager[name];
if (!nativeMethod) {
throw new Error(`no sucm native method: "${name}"`);
}
if (!Array.isArray(params)) {
throw new Error(`params must be an array`);
}
const createCallback = (resolve, reject) => (err, result) => {
if (err) {
reject(err);
} else {
resolve(result);
}
};
return new Promise((resolve, reject) => {
const callback = createCallback(resolve, reject);
const inputParams = [...params, callback];
nativeMethod(...inputParams);
});
}
export {
NativeNfcManager,
NfcManagerEmitter,
callNative,
}