request-mocking-protocol
Version:
A protocol for declarative mocking of HTTP requests
24 lines • 1.06 kB
JavaScript
;
/**
* Global fetch interceptor.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.setupFetchInterceptor = setupFetchInterceptor;
const utils_1 = require("../request-matcher/utils");
const response_builder_1 = require("../response-builder");
const transport_1 = require("../transport");
function setupFetchInterceptor(getIncomingHeaders) {
const originalFetch = globalThis.fetch;
globalThis.fetch = async (input, init) => {
const request = new Request(input, init);
const mockSchemas = await (0, transport_1.extractMockSchemas)(getIncomingHeaders);
const matchResult = await (0, utils_1.matchSchemas)(request, mockSchemas);
if (!matchResult)
return originalFetch(input, init);
const { body, headers, status, statusText } = await new response_builder_1.ResponseBuilder(matchResult, {
bypass: (req) => originalFetch(req),
}).build();
return new Response(body, { status, statusText, headers });
};
}
//# sourceMappingURL=fetch.js.map