UNPKG

@graphql-tools/links

Version:

A set of utils for faster development of GraphQL tools

26 lines (25 loc) 1.04 kB
import formDataAppendFile from 'apollo-upload-client/formDataAppendFile.mjs'; import isExtractableFile from 'apollo-upload-client/isExtractableFile.mjs'; import UploadHttpLink from 'apollo-upload-client/UploadHttpLink.mjs'; import FormData from 'form-data'; import fetch from 'node-fetch'; import * as apolloImport from '@apollo/client'; import { AwaitVariablesLink } from './AwaitVariablesLink.js'; const apollo = apolloImport?.default ?? apolloImport; export const createServerHttpLink = (options) => apollo.concat(new AwaitVariablesLink(), new UploadHttpLink({ ...options, fetch, FormData, isExtractableFile: (value) => isExtractableFile(value) || value?.createReadStream, formDataAppendFile: (form, index, file) => { if (file.createReadStream != null) { form.append(index, file.createReadStream(), { filename: file.filename, contentType: file.mimetype, }); } else { formDataAppendFile(form, index, file); } }, }));