123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- // Copyright 2016 wkh237@github. All rights reserved.
- // Use of this source code is governed by a MIT-style license that can be
- // found in the LICENSE file.
-
- import {
- NativeModules,
- DeviceEventEmitter,
- NativeAppEventEmitter,
- } from 'react-native'
-
- const RNFetchBlob = NativeModules.RNFetchBlob
-
- let sessions = {}
-
- export default class RNFetchBlobSession {
-
- name : string;
-
- static getSession(name:string):any {
- return sessions[name]
- }
-
- static setSession(name:string, val:any) {
- sessions[name] = val
- }
-
- static removeSession(name:string) {
- delete sessions[name]
- }
-
- constructor(name:string, list:Array<string>) {
- this.name = name
- if(!sessions[name]) {
- if(Array.isArray(list))
- sessions[name] = list
- else
- sessions[name] = []
- }
- }
-
- add(path:string):RNFetchBlobSession {
- sessions[this.name].push(path)
- return this
- }
-
- remove(path:string):RNFetchBlobSession {
- let list = sessions[this.name]
- for(let i of list) {
- if(list[i] === path) {
- sessions[this.name].splice(i, 1)
- break;
- }
- }
- return this
- }
-
- list():Array<string> {
- return sessions[this.name]
- }
-
- dispose():Promise {
- return new Promise((resolve, reject) => {
- RNFetchBlob.removeSession(sessions[this.name], (err) => {
- if(err)
- reject(new Error(err))
- else {
- delete sessions[this.name]
- resolve()
- }
- })
- })
- }
-
- }
|