"use strict"; var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); var utils_request_core_request = require("../core/request.js"); var utils_request_upload_utils = require("./utils.js"); var utils_request_core_utils = require("../core/utils.js"); class fileUpload extends utils_request_core_request.request { constructor(props) { super(props); } async ossImagUpload(options = {}) { try { const files = await utils_request_upload_utils.chooseImage(options); const data = []; for (let item of files) { let params = { size: item.size, model: "image" }; if (item.name) { params.name = item.name; params.path = item.path; } else if (item.path) { if (item.path.indexOf("/") > -1) { let names = item.path.split("/"); params.name = names[names.length - 1]; } params.path = item.path; } options.onSelectComplete && options.onSelectComplete(files); data.push(params); } return Promise.resolve(data); } catch (err) { return Promise.reject(err); } } async ossVideoUpload(options = {}) { let files; try { files = await utils_request_upload_utils.chooseVideo(options); let file = files[0]; let params = { size: file.size, model: "video" }; if (file.name) { params.name = file.name; params.path = file.path; } else if (file.path) { if (file.path.indexOf("/") > -1) { let names = file.path.split("/"); params.name = names[names.length - 1]; } params.path = file.path; } options.onSelectComplete && options.onSelectComplete(files); return Promise.resolve(params); } catch (err) { return Promise.reject(err); } } async qnImgUpload(options = {}) { let files; try { files = await utils_request_upload_utils.chooseImage(options); options.onSelectComplete && options.onSelectComplete(files); } catch (err) { this.requestError && this.requestError(err); return Promise.reject(err); } if (files) { return this.qnFileUpload(__spreadProps(__spreadValues({}, options), { files })); } } async qnVideoUpload(options = {}) { let files; try { files = await utils_request_upload_utils.chooseVideo(options); options.onSelectComplete && options.onSelectComplete(files); } catch (err) { this.requestError && this.requestError(err); return Promise.reject(err); } if (files) { return this.qnFileUpload(__spreadProps(__spreadValues({}, options), { files })); } } async qnFileUpload(options = {}) { let requestInfo; try { requestInfo = __spreadProps(__spreadValues(__spreadValues({}, this.config), options), { header: {}, method: "FILE" }); if (this.requestStart) { let requestStart = this.requestStart(requestInfo); if (typeof requestStart == "object") { let changekeys = ["load", "files"]; changekeys.forEach((key) => { requestInfo[key] = requestStart[key]; }); } else { throw { errMsg: "\u3010request\u3011\u8BF7\u6C42\u5F00\u59CB\u62E6\u622A\u5668\u672A\u901A\u8FC7", statusCode: 0, data: requestInfo.data, method: requestInfo.method, header: requestInfo.header, url: requestInfo.url }; } } let requestResult = await utils_request_upload_utils.qiniuUpload(requestInfo, this.getQnToken); return Promise.resolve(requestResult); } catch (err) { this.requestError && this.requestError(err); return Promise.reject(err); } finally { this.requestEnd && this.requestEnd(requestInfo); } } async urlImgUpload() { let options = {}; if (arguments[0]) { if (typeof arguments[0] == "string") { options.url = arguments[0]; } else if (typeof arguments[0] == "object") { options = Object.assign(options, arguments[0]); } } if (arguments[1] && typeof arguments[1] == "object") { options = Object.assign(options, arguments[1]); } try { options.files = await utils_request_upload_utils.chooseImage(options); options.onSelectComplete && options.onSelectComplete(options.files); } catch (err) { this.requestError && this.requestError(err); return Promise.reject(err); } if (options.files) { return this.urlFileUpload(options); } } async urlVideoUpload() { let options = {}; if (arguments[0]) { if (typeof arguments[0] == "string") { options.url = arguments[0]; } else if (typeof arguments[0] == "object") { options = Object.assign(options, arguments[0]); } } if (arguments[1] && typeof arguments[1] == "object") { options = Object.assign(options, arguments[1]); } try { options.files = await utils_request_upload_utils.chooseVideo(options); options.onSelectComplete && options.onSelectComplete(options.files); } catch (err) { this.requestError && this.requestError(err); return Promise.reject(err); } if (options.files) { return this.urlFileUpload(options); } } async urlFileUpload() { let requestInfo = { method: "FILE" }; if (arguments[0]) { if (typeof arguments[0] == "string") { requestInfo.url = arguments[0]; } else if (typeof arguments[0] == "object") { requestInfo = Object.assign(requestInfo, arguments[0]); } } if (arguments[1] && typeof arguments[1] == "object") { requestInfo = Object.assign(requestInfo, arguments[1]); } if (!requestInfo.url && this.defaultUploadUrl) { requestInfo.url = this.defaultUploadUrl; } let runRequestStart = false; try { if (!requestInfo.url) { throw { errMsg: "\u3010request\u3011\u6587\u4EF6\u4E0A\u4F20\u7F3A\u5931\u6570\u636Eurl", statusCode: 0, data: requestInfo.data, method: requestInfo.method, header: requestInfo.header, url: requestInfo.url }; } requestInfo = utils_request_core_utils.mergeConfig(this, requestInfo); runRequestStart = true; if (this.requestStart) { let requestStart = this.requestStart(requestInfo); if (typeof requestStart == "object") { let changekeys = ["data", "header", "isPrompt", "load", "isFactory", "files"]; changekeys.forEach((key) => { requestInfo[key] = requestStart[key]; }); } else { throw { errMsg: "\u3010request\u3011\u8BF7\u6C42\u5F00\u59CB\u62E6\u622A\u5668\u672A\u901A\u8FC7", statusCode: 0, data: requestInfo.data, method: requestInfo.method, header: requestInfo.header, url: requestInfo.url }; } } let requestResult = await utils_request_upload_utils.urlUpload(requestInfo, this.dataFactory); return Promise.resolve(requestResult); } catch (err) { this.requestError && this.requestError(err); return Promise.reject(err); } finally { if (runRequestStart) { this.requestEnd && this.requestEnd(requestInfo); } } } } exports.fileUpload = fileUpload;