UNPKG

@microsoft.azure/autorest.testserver

Version:
49 lines 1.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.processRequest = void 0; const logger_1 = require("../logger"); const services_1 = require("../services"); const mock_request_1 = require("./mock-request"); const validation_error_1 = require("./validation-error"); const processRequest = async (category, name, request, response, func) => { const mockRequest = new mock_request_1.MockRequest(request); const mockResponse = await callHandler(mockRequest, response, func); if (mockResponse === undefined) { return; } if ((mockResponse.status >= 200 && mockResponse.status < 300) || mockResponse.testSuccessful) { if (name) { await services_1.coverageService.track(category, name); } } processResponse(response, mockResponse); }; exports.processRequest = processRequest; const processResponse = (response, mockResponse) => { response.status(mockResponse.status); if (mockResponse.headers) { response.set(mockResponse.headers); } if (mockResponse.body) { response.contentType(mockResponse.body.contentType).send(mockResponse.body.rawContent); } response.end(); }; const callHandler = async (mockRequest, response, func) => { try { return func(mockRequest); } catch (e) { if (!(e instanceof validation_error_1.ValidationError)) { throw e; } logger_1.logger.warn([`Request validation failed: ${e.message}:`, ` Expected:\n${e.expected}`, ` Actual: \n${e.actual}`].join("\n")); response .status(400) .contentType("application/json") .send(e.toJSON ? e.toJSON() : JSON.stringify(e.message)) .end(); return undefined; } }; //# sourceMappingURL=request-processor.js.map