UNPKG

graphql-yoga

Version:
31 lines (30 loc) 1.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useResultProcessors = void 0; const core_1 = require("@envelop/core"); const accept_js_1 = require("./resultProcessor/accept.js"); function useResultProcessors(resultProcessors) { return { onResultProcess({ request, result, acceptableMediaTypes, setResultProcessor, }) { const requestMediaTypes = (0, accept_js_1.getMediaTypesForRequestInOrder)(request); for (const requestMediaType of requestMediaTypes) { for (const resultProcessorConfig of resultProcessors) { if ((0, core_1.isAsyncIterable)(result) && resultProcessorConfig.noAsyncIterable) { continue; } const processorMediaTypesInOrder = [ ...resultProcessorConfig.mediaTypes, ].reverse(); for (const processorMediaType of processorMediaTypesInOrder) { acceptableMediaTypes.push(processorMediaType); if ((0, accept_js_1.isMatchingMediaType)(processorMediaType, requestMediaType)) { setResultProcessor(resultProcessorConfig.processResult, processorMediaType); } } } } }, }; } exports.useResultProcessors = useResultProcessors;