UNPKG

@beenotung/tslib

Version:
44 lines 1.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.postMultipartFormData = exports.jsonToFormData = void 0; const tslib_1 = require("tslib"); const form_data_1 = tslib_1.__importDefault(require("form-data")); const fetch_1 = require("./fetch"); const response_1 = require("./response"); function jsonToFormData(json, formData = new form_data_1.default()) { Object.keys(json).forEach(key => { const value = json[key]; switch (typeof value) { case 'string': case 'number': case 'boolean': formData.append(key, value.toString()); break; default: if (typeof File !== 'undefined' && value instanceof File) { formData.append(key, value); } else if (Array.isArray(value)) { value.forEach(value => formData.append(key, value)); } else { formData.append(key, JSON.stringify(value)); } } }); return formData; } exports.jsonToFormData = jsonToFormData; function postMultipartFormData(url, json) { const formData = new form_data_1.default(); jsonToFormData(json, formData); return fetch_1.fetch(url, { method: 'POST', body: formData }).then(res => response_1.decodeResponse(res).then((data) => { return { status: res.status, statusText: res.statusText, data: data, }; })); } exports.postMultipartFormData = postMultipartFormData; //# sourceMappingURL=form.js.map