UNPKG

@tableau/taco-toolkit

Version:
112 lines 6.83 kB
"use strict"; var __values = (this && this.__values) || function(o) { var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; if (m) return m.call(o); if (o && typeof o.length === "number") return { next: function () { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); }; var __read = (this && this.__read) || function (o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.isRedirectCode = exports.parseFormData = exports.getContentType = exports.composeFetchOption = exports.isResponseError = void 0; var request_1 = require("../../shared/app-transport/request"); var type_utils_1 = require("../../shared/type-utils"); /** * Check if Error is thrown from superagent due to reponse with 4xx, 5xx status. * For 4xx, 5xx status, superagent throws Error object with status and response. */ function isResponseError(value) { if (value === null || typeof value !== 'object') { return false; } return 'status' in value && 'response' in value; } exports.isResponseError = isResponseError; function composeFetchOption(method, headers, body) { var e_1, _a; var requestHeaders = headers ? (0, request_1.normalizeHeaders)(headers) : {}; var requestBody = body; // serialize object typed body if (typeof requestBody === 'object') { var contentType = requestHeaders['Content-Type']; if (contentType === undefined) { contentType = 'application/json'; requestHeaders['Content-Type'] = contentType; } contentType = getContentType(contentType); if (contentType === 'application/x-www-form-urlencoded') { var params = new URLSearchParams(); try { for (var _b = __values(Object.entries(requestBody)), _c = _b.next(); !_c.done; _c = _b.next()) { var _d = __read(_c.value, 2), key = _d[0], value = _d[1]; params.append(key, (0, type_utils_1.stringifyUnknown)(value)); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (_c && !_c.done && (_a = _b.return)) _a.call(_b); } finally { if (e_1) throw e_1.error; } } requestBody = params.toString(); } else { requestBody = JSON.stringify(requestBody); } } var fetchOption = { method: method, }; if (Object.keys(requestHeaders).length > 0) { fetchOption.headers = requestHeaders; } if (body !== undefined) { fetchOption.body = requestBody; } return fetchOption; } exports.composeFetchOption = composeFetchOption; /** * Get media type part from Content-Type header value, and returns it in lowercase. * * Reference: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type#syntax */ function getContentType(contentTypeHeader) { var mediaType = contentTypeHeader.split(';')[0]; return mediaType.toLowerCase(); } exports.getContentType = getContentType; /** * Parse form string into key-value pair object. */ function parseFormData(value) { var searchParams = new URLSearchParams(value); return Object.fromEntries(searchParams); } exports.parseFormData = parseFormData; var REDIRECT_CODES = new Set([301, 302, 303, 305, 307, 308]); function isRedirectCode(code) { return REDIRECT_CODES.has(code); } exports.isRedirectCode = isRedirectCode; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lcHMvdXRpbHMvcmVxdWVzdC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSw4REFBcUU7QUFDckUsc0RBQTBEO0FBTzFEOzs7R0FHRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxLQUFjO0lBQzVDLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDL0MsT0FBTyxLQUFLLENBQUE7S0FDYjtJQUVELE9BQU8sUUFBUSxJQUFJLEtBQUssSUFBSSxVQUFVLElBQUksS0FBSyxDQUFBO0FBQ2pELENBQUM7QUFORCwwQ0FNQztBQUVELFNBQWdCLGtCQUFrQixDQUNoQyxNQUEyQyxFQUMzQyxPQUE0QyxFQUM1QyxJQUFpQzs7SUFFakMsSUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFBLDBCQUFnQixFQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFFL0QsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFBO0lBQ3RCLDhCQUE4QjtJQUM5QixJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRTtRQUNuQyxJQUFJLFdBQVcsR0FBRyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDaEQsSUFBSSxXQUFXLEtBQUssU0FBUyxFQUFFO1lBQzdCLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQTtZQUNoQyxjQUFjLENBQUMsY0FBYyxDQUFDLEdBQUcsV0FBVyxDQUFBO1NBQzdDO1FBRUQsV0FBVyxHQUFHLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUN6QyxJQUFJLFdBQVcsS0FBSyxtQ0FBbUMsRUFBRTtZQUN2RCxJQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFBOztnQkFDcEMsS0FBMkIsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtvQkFBN0MsSUFBQSxLQUFBLG1CQUFZLEVBQVgsR0FBRyxRQUFBLEVBQUUsS0FBSyxRQUFBO29CQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFBLDZCQUFnQixFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7aUJBQzVDOzs7Ozs7Ozs7WUFDRCxXQUFXLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFBO1NBQ2hDO2FBQU07WUFDTCxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtTQUMxQztLQUNGO0lBRUQsSUFBTSxXQUFXLEdBQStCO1FBQzlDLE1BQU0sUUFBQTtLQUNQLENBQUE7SUFFRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUMxQyxXQUFXLENBQUMsT0FBTyxHQUFHLGNBQWMsQ0FBQTtLQUNyQztJQUVELElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtRQUN0QixXQUFXLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQTtLQUMvQjtJQUVELE9BQU8sV0FBVyxDQUFBO0FBQ3BCLENBQUM7QUF6Q0QsZ0RBeUNDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxpQkFBeUI7SUFDdEQsSUFBTSxTQUFTLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pELE9BQU8sU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFBO0FBQ2hDLENBQUM7QUFIRCx3Q0FHQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLEtBQWE7SUFDekMsSUFBTSxZQUFZLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDL0MsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFBO0FBQ3pDLENBQUM7QUFIRCxzQ0FHQztBQUVELElBQU0sY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFBO0FBRTlELFNBQWdCLGNBQWMsQ0FBQyxJQUFZO0lBQ3pDLE9BQU8sY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUNqQyxDQUFDO0FBRkQsd0NBRUMifQ==