@dazejs/framework
Version:
Daze.js - A powerful web framework for Node.js
65 lines • 2.09 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseBody = void 0;
const co_body_1 = __importDefault(require("co-body"));
const formidable_1 = __importDefault(require("formidable"));
function parseForm(req) {
return new Promise(((resolve, reject) => {
const fields = {};
const files = {};
const form = new formidable_1.default.IncomingForm();
form.on('end', () => resolve({
fields,
files,
})).on('error', (err) => reject(err)).on('field', (field, value) => {
if (fields[field]) {
if (Array.isArray(fields[field])) {
fields[field].push(value);
}
else {
fields[field] = [fields[field], value];
}
}
else {
fields[field] = value;
}
}).on('file', (field, file) => {
if (files[field]) {
if (Array.isArray(files[field])) {
files[field].push(file);
}
else {
files[field] = [files[field], file];
}
}
else {
files[field] = file;
}
});
form.parse(req);
}));
}
async function parseBody(request) {
let body = {};
if (request.is('json')) {
body.fields = await co_body_1.default.json(request.req);
}
else if (request.is('urlencoded')) {
body.fields = await co_body_1.default.form(request.req);
}
else if (request.is('text')) {
body.fields = await co_body_1.default.text(request.req);
}
else if (request.is('multipart')) {
body = await parseForm(request.req);
}
else {
body.fields = await co_body_1.default.text(request.req);
}
return body;
}
exports.parseBody = parseBody;
//# sourceMappingURL=parse-body.js.map