@beenotung/tslib
Version:
utils library in Typescript
44 lines • 1.62 kB
JavaScript
;
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