Skip to content
This repository was archived by the owner on Mar 16, 2019. It is now read-only.

Commit d83d800

Browse files
authored
Add missing API Blob.safeClose()
1 parent 712c8a3 commit d83d800

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

polyfill/Blob.js

+16
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,8 @@ export default class Blob extends EventTarget {
130130
// Blob data from file path
131131
else if(typeof data === 'string' && data.startsWith('RNFetchBlob-file://')) {
132132
log.verbose('create Blob cache file from file path', data)
133+
// set this flag so that we know this blob is a wrapper of an existing file
134+
this._isReference = true
133135
this._ref = String(data).replace('RNFetchBlob-file://', '')
134136
let orgPath = this._ref
135137
if(defer)
@@ -282,6 +284,20 @@ export default class Blob extends EventTarget {
282284
})
283285
}
284286

287+
safeClose() {
288+
if(this._closed)
289+
return Promise.reject('Blob has been released.)
290+
this._closed = true
291+
if(!this._isReference) {
292+
return fs.unlink(this._ref).catch((err) => {
293+
console.warn(err)
294+
})
295+
}
296+
else {
297+
return Promise.resolve()
298+
}
299+
}
300+
285301
_invokeOnCreateEvent() {
286302
log.verbose('invoke create event', this._onCreated)
287303
this._blobCreated = true

0 commit comments

Comments
 (0)