UNPKG

graphql-yoga

Version:
27 lines (26 loc) 1.09 kB
"use strict"; 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;