graphql-yoga
Version:
27 lines (26 loc) • 1.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parsePOSTMultipartRequest = exports.isPOSTMultipartRequest = void 0;
const dset_1 = require("dset");
const utils_js_1 = require("./utils.js");
function isPOSTMultipartRequest(request) {
return (request.method === 'POST' &&
(0, utils_js_1.isContentTypeMatch)(request, 'multipart/form-data'));
}
exports.isPOSTMultipartRequest = isPOSTMultipartRequest;
async function parsePOSTMultipartRequest(request) {
const requestBody = await request.formData();
const operationsStr = requestBody.get('operations')?.toString() || '{}';
const operations = JSON.parse(operationsStr);
const mapStr = requestBody.get('map')?.toString() || '{}';
const map = JSON.parse(mapStr);
for (const fileIndex in map) {
const file = requestBody.get(fileIndex);
const keys = map[fileIndex];
for (const key of keys) {
(0, dset_1.dset)(operations, key, file);
}
}
return operations;
}
exports.parsePOSTMultipartRequest = parsePOSTMultipartRequest;