From 0e92b36dbf891f41b819dc3b76cfcf7688382bea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tolgahan=20=C3=87elik?= Date: Tue, 26 Jul 2022 19:48:18 +0300 Subject: [PATCH] Metadata support for initial creation phase. --- index.js | 11 ++++++----- lib/downloadTask.js | 16 ++++++---------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/index.js b/index.js index 0713215..2362734 100644 --- a/index.js +++ b/index.js @@ -84,14 +84,15 @@ export function download (options) { else options.headers = headers - if (options.metadata && typeof options.metadata === 'object') - options.metadata = JSON.stringify(options.metadata) - else - options.metadata = JSON.stringify({}) + const metadata = options.metadata && typeof options.metadata === 'object' + ? options.metadata + : {} + + options.metadata = JSON.stringify(metadata) RNBackgroundDownloader.download(options) - const task = new DownloadTask(options.id) + const task = new DownloadTask({ id: options.id, metadata: metadata}) tasksMap.set(options.id, task) return task } diff --git a/lib/downloadTask.js b/lib/downloadTask.js index 80c341f..c11d8d5 100644 --- a/lib/downloadTask.js +++ b/lib/downloadTask.js @@ -13,17 +13,13 @@ export default class DownloadTask { metadata = {} constructor (taskInfo, originalTask) { - if (typeof taskInfo === 'string') { - this.id = taskInfo - } else { - this.id = taskInfo.id - this.percent = taskInfo.percent - this.bytesWritten = taskInfo.bytesWritten - this.totalBytes = taskInfo.totalBytes + this.id = taskInfo.id + this.percent = taskInfo.percent ?? 0 + this.bytesWritten = taskInfo.bytesWritten ?? 0 + this.totalBytes = taskInfo.totalBytes ?? 0 - if (this.#parseable(taskInfo.metadata)) { - this.metadata = JSON.parse(taskInfo.metadata); - } + if (this.#parseable(taskInfo.metadata)) { + this.metadata = JSON.parse(taskInfo.metadata); } if (originalTask) {