@graphql-mesh/serve-runtime
Version:
31 lines (30 loc) • 1.09 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.useRequestId = useRequestId;
const utils_1 = require("@graphql-mesh/utils");
function useRequestId() {
return {
onRequest({ request, fetchAPI }) {
const requestId = request.headers.get('x-request-id') || fetchAPI.crypto.randomUUID();
utils_1.requestIdByRequest.set(request, requestId);
},
onFetch({ context, options, setOptions }) {
const requestId = utils_1.requestIdByRequest.get(context?.request);
if (requestId) {
setOptions({
...(options || {}),
headers: {
...(options.headers || {}),
'x-request-id': requestId,
},
});
}
},
onResponse({ request, response }) {
const requestId = utils_1.requestIdByRequest.get(request);
if (requestId) {
response.headers.set('x-request-id', requestId);
}
},
};
}
;