Skip to content

PeterEmanuel/react-native-zip-archive

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

React Native Zip Archive npm npm

Zip archive utility for react-native

This is a Fork

I want to have control over the progress callback, giving me info for each unzipped entry

Do NOT rely on this fork, please use the original repo.

Peter

Installation

npm install react-native-zip-archive --save
react-native link react-native-zip-archive

Usage

import it into your code

import { zip, unzip, unzipAssets, subscribe } from 'react-native-zip-archive'

you may also want to use something like react-native-fs to access the file system (check its repo for more information)

import { MainBundlePath, DocumentDirectoryPath } from 'react-native-fs'

API

zip(source: string, target: string): Promise

zip source to target

Example

const targetPath = `${DocumentDirectoryPath}/myFile.zip`
const sourcePath = DocumentDirectoryPath

zip(sourcePath, targetPath)
.then((path) => {
  console.log(`zip completed at ${path}`)
})
.catch((error) => {
  console.log(error)
})

unzip(source: string, target: string): Promise

unzip from source to target

Example

const sourcePath = `${DocumentDirectoryPath}/myFile.zip`
const targetPath = DocumentDirectoryPath

unzip(sourcePath, targetPath)
.then((path) => {
  console.log(`unzip completed at ${path}`)
})
.catch((error) => {
  console.log(error)
})

unzipAssets(assetPath: string, target: string): Promise

unzip file from Android assets folder to target path

Note: Android only.

assetPath is the relative path to the file inside the pre-bundled assets folder, e.g. folder/myFile.zip. Do not pass an absolute directory.

const assetPath = `${DocumentDirectoryPath}/myFile.zip`
const targetPath = DocumentDirectoryPath

unzipAssets(assetPath, targetPath)
.then(() => {
  console.log('unzip completed!')
})
.catch((error) => {
  console.log(error)
})

subscribe(callback: ({ progress: number })): EmitterSubscription

Subscribe to unzip progress callbacks. Useful for displaying a progress bar on your UI during the unzip process.

Your callback will be passed an object with the following fields:

  • progress (number) a value from 0 to 1 representing the progress of the unzip method. 1 is completed.

Note: Remember to unsubscribe! Run .remove() on the object returned by this method.

componentWillMount() {
  this.zipProgress = subscribe((e) => {
    this.setState({ zipProgress: e.progress })
  })
}

componentWillUnmount() {
  // Important: Unsubscribe from the progress events
  this.zipProgress.remove()
}

Related Projects

About

Zip archive utility for react-native

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C 78.3%
  • Objective-C 10.8%
  • C++ 6.6%
  • Java 2.6%
  • JavaScript 1.1%
  • Python 0.4%
  • Ruby 0.2%