Sha256: 4c6dae87f1b8104230ca34fb97d3521896bc8c46dc992f0f0064dcffedf174ab
Contents?: true
Size: 1.74 KB
Versions: 26
Compression:
Stored size: 1.74 KB
Contents
import { Interceptor, BatchInterceptor, HttpRequestEventMap, } from '@mswjs/interceptors' import { FetchInterceptor } from '@mswjs/interceptors/fetch' import { XMLHttpRequestInterceptor } from '@mswjs/interceptors/XMLHttpRequest' import { SetupWorkerInternalContext, StartOptions } from '../glossary' import type { RequiredDeep } from '~/core/typeUtils' import { handleRequest } from '~/core/utils/handleRequest' export function createFallbackRequestListener( context: SetupWorkerInternalContext, options: RequiredDeep<StartOptions>, ): Interceptor<HttpRequestEventMap> { const interceptor = new BatchInterceptor({ name: 'fallback', interceptors: [new FetchInterceptor(), new XMLHttpRequestInterceptor()], }) interceptor.on('request', async ({ request, requestId, controller }) => { const requestCloneForLogs = request.clone() const response = await handleRequest( request, requestId, context.getRequestHandlers(), options, context.emitter, { onMockedResponse(_, { handler, parsedResult }) { if (!options.quiet) { context.emitter.once('response:mocked', ({ response }) => { handler.log({ request: requestCloneForLogs, response, parsedResult, }) }) } }, }, ) if (response) { controller.respondWith(response) } }) interceptor.on( 'response', ({ response, isMockedResponse, request, requestId }) => { context.emitter.emit( isMockedResponse ? 'response:mocked' : 'response:bypass', { response, request, requestId, }, ) }, ) interceptor.apply() return interceptor }
Version data entries
26 entries across 26 versions & 1 rubygems