graphql-yoga
Version:
18 lines (17 loc) • 674 B
JavaScript
import { isAcceptableByRequest } from './resultProcessor/accept.js';
export function useResultProcessor(options) {
return {
onResultProcess({ request, acceptableMediaTypes, setResultProcessor }) {
let acceptedMediaType;
for (const mediaType of options.mediaTypes) {
if (!acceptedMediaType && isAcceptableByRequest(mediaType, request)) {
acceptedMediaType = mediaType;
}
acceptableMediaTypes.add(mediaType);
}
if (acceptedMediaType) {
setResultProcessor(options.processResult, acceptedMediaType);
}
},
};
}