forked from mockingbot/react-native-zip-archive
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
43 lines (34 loc) · 1.21 KB
/
index.js
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
import ReactNative from 'react-native'
const {
DeviceEventEmitter,
NativeAppEventEmitter,
Platform,
NativeModules
} = ReactNative
const RNZipArchive = NativeModules.RNZipArchive
export const unzip = (source, target, charset = 'UTF-8') => {
return RNZipArchive.unzip(source, target, charset)
}
export const isPasswordProtected = (source) => {
return RNZipArchive.isPasswordProtected(source).then(isEncrypted => !!isEncrypted)
}
export const unzipWithPassword = (source, target, password) => {
return RNZipArchive.unzipWithPassword(source, target, password)
}
export const zipWithPassword = (source, target, password, encryptionMethod = '') => {
return RNZipArchive.zipWithPassword(source, target, password, encryptionMethod)
}
export const zip = (source, target) => {
return RNZipArchive.zip(source, target)
}
export const unzipAssets = (source, target) => {
if (!RNZipArchive.unzipAssets) {
throw new Error('unzipAssets not supported on this platform')
}
return RNZipArchive.unzipAssets(source, target)
}
export const subscribe = callback => {
const emitter =
Platform.OS === 'ios' ? NativeAppEventEmitter : DeviceEventEmitter
return emitter.addListener('zipArchiveProgressEvent', callback)
}