UNPKG

@jeetiss/upload

Version:
56 lines (55 loc) 2.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var request_node_1 = require("../request/request.node"); var buildFormData_1 = require("../tools/buildFormData"); var getUrl_1 = require("../tools/getUrl"); var defaultSettings_1 = require("../defaultSettings"); var userAgent_1 = require("../tools/userAgent"); var camelizeKeys_1 = require("../tools/camelizeKeys"); var errors_1 = require("../tools/errors"); var retryIfThrottled_1 = require("../tools/retryIfThrottled"); /** * Performs file uploading request to Uploadcare Upload API. * Can be canceled and has progress. */ function base(file, _a) { var publicKey = _a.publicKey, fileName = _a.fileName, _b = _a.baseURL, baseURL = _b === void 0 ? defaultSettings_1.default.baseURL : _b, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, store = _a.store, cancel = _a.cancel, onProgress = _a.onProgress, _c = _a.source, source = _c === void 0 ? 'local' : _c, integration = _a.integration, _d = _a.retryThrottledRequestMaxTimes, retryThrottledRequestMaxTimes = _d === void 0 ? defaultSettings_1.default.retryThrottledRequestMaxTimes : _d; return retryIfThrottled_1.default(function () { return request_node_1.default({ method: 'POST', url: getUrl_1.default(baseURL, '/base/', { jsonerrors: 1 }), headers: { 'X-UC-User-Agent': userAgent_1.getUserAgent({ publicKey: publicKey, integration: integration }) }, data: buildFormData_1.default([ [ 'file', file, fileName || file.name || defaultSettings_1.default.fileName ], ['UPLOADCARE_PUB_KEY', publicKey], [ 'UPLOADCARE_STORE', typeof store === 'undefined' ? 'auto' : store ? 1 : 0 ], ['signature', secureSignature], ['expire', secureExpire], ['source', source] ]), cancel: cancel, onProgress: onProgress }).then(function (_a) { var data = _a.data, headers = _a.headers, request = _a.request; var response = camelizeKeys_1.default(JSON.parse(data)); if ('error' in response) { throw new errors_1.UploadClientError("[" + response.error.statusCode + "] " + response.error.content, request, response.error, headers); } else { return response; } }); }, retryThrottledRequestMaxTimes); } exports.default = base;