INNER CODE UNIT · TypeScript
multipart
logaretm/villus · packages/multipart/src/index.ts:5
export function multipart() {
return definePlugin(function multipartPlugin(context) {
const { operation, opContext } = context;
const { files, clone: variables } = extractFiles({ ...(operation?.variables || {}) });
if (!files.size) {
return;
}
// cleanup content-type
if ((opContext.headers as any)['content-type'] === 'application/json') {
delete (opContext.headers as any)['content-type'];
}
const body = new FormData();
body.append('operations', JSON.stringify({ query: normalizeQuery(operation.query), variables }));
const map: Record<number, string[]> = {};