-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathindex.js
More file actions
63 lines (52 loc) · 1.39 KB
/
index.js
File metadata and controls
63 lines (52 loc) · 1.39 KB
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import { NativeModules, Platform } from 'react-native'
import { SDKStatus, VerificationStatus } from './constants'
import * as defaults from './defaults'
import { VerificationPendingError, NotInitializedError } from './errors'
import statusToString from './status'
export const status = {
sdk: SDKStatus,
verification: VerificationStatus,
}
const wrapNative = native => {
let initialized
let verifying
const initialize = async opts => {
initialized = false
const result = await native.initialize({
...defaults.initialize,
...opts,
// backwards compat
licenseKey: opts.licenseKey || opts.appToken
})
initialized = result.success
return result
}
const getVersion = () => native.getVersion()
const verify = async (opts = {}) => {
if (!initialized) {
throw new NotInitializedError('initialize me first!')
}
if (verifying) {
throw new VerificationPendingError('only one verification can be done at a time')
}
let result
try {
result = await native.verify({
...defaults.verify,
...opts,
})
result.status = statusToString(result.status)
return result
} finally {
verifying = false
}
}
return {
preload: native.preload,
initialize,
verify,
getVersion,
}
}
const zoomAuth = wrapNative(NativeModules.RNReactNativeZoomSdk)
export default zoomAuth