UNPKG

taro-hooks

Version:
75 lines (74 loc) 2.9 kB
"use strict"; var _excluded = ["progress", "headersReceive", "afterSend"], _excluded2 = ["afterSend"]; function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; } function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } Object.defineProperty(exports, "__esModule", { value: true }); var taro_1 = require("@tarojs/taro"); var tool_1 = require("../utils/tool"); function useFile() { var upload = function upload(option) { return new Promise(function (resolve, reject) { try { var _filterOptions = filterOptions(option), uploadOption = _filterOptions[0], listenOptions = _filterOptions[1]; var uploadTask = (0, taro_1.uploadFile)(_extends({}, uploadOption || {}, { success: resolve, fail: reject })); autoListenWithTask(uploadTask, listenOptions); } catch (e) { reject((0, tool_1.generateGeneralFail)('uploadFile', e.message)); } }); }; var download = function download(option) { return new Promise(function (resolve, reject) { try { var _filterOptions2 = filterOptions(option), downloadOption = _filterOptions2[0], listenOptions = _filterOptions2[1]; var downloadTask = (0, taro_1.downloadFile)(_extends({}, downloadOption || {}, { success: resolve, fail: reject })); autoListenWithTask(downloadTask, listenOptions); } catch (e) { reject((0, tool_1.generateGeneralFail)('downloadFile', e.message)); } }); }; return { upload: upload, download: download }; } exports["default"] = useFile; function filterOptions(options) { var progress = options.progress, headersReceive = options.headersReceive, afterSend = options.afterSend, normalOption = _objectWithoutPropertiesLoose(options, _excluded); var listenOptions = { progress: progress, headersReceive: headersReceive, afterSend: afterSend }; return [normalOption, listenOptions]; } function autoListenWithTask(task, listenOptions) { var afterSend = listenOptions.afterSend, eventListener = _objectWithoutPropertiesLoose(listenOptions, _excluded2); afterSend == null ? void 0 : afterSend(task); Object.entries(eventListener).filter(function (v) { return v[1]; }).forEach(function (_ref) { var _task$eventName; var eventName = _ref[0], eventHandler = _ref[1]; return task == null ? void 0 : (_task$eventName = task[eventName]) == null ? void 0 : _task$eventName.call(task, eventHandler); }); }