request-mocking-protocol
Version:
A protocol for declarative mocking of HTTP requests
23 lines • 965 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createHandler = createHandler;
/**
* MSW interceptor.
*/
const msw_1 = require("msw");
const transport_1 = require("../transport");
const utils_1 = require("../request-matcher/utils");
const response_builder_1 = require("../response-builder");
function createHandler(getIncomingHeaders) {
return msw_1.http.all('*', async ({ request }) => {
const mockSchemas = await (0, transport_1.extractMockSchemas)(getIncomingHeaders);
const matchResult = await (0, utils_1.matchSchemas)(request, mockSchemas);
if (!matchResult)
return;
const { body, headers, status, statusText } = await new response_builder_1.ResponseBuilder(matchResult, {
bypass: (req) => fetch((0, msw_1.bypass)(req)),
}).build();
return new msw_1.HttpResponse(body, { status, statusText, headers });
});
}
//# sourceMappingURL=msw.js.map