in apps/mountebank-mock/mountebank-source/src/models/tcp/tcpServer.js [46:83]
async function respond (payload, request, clientName, socket) {
let formattedRequestData = payload.toString(encoding);
if (formattedRequestData.length > 20) {
formattedRequestData = formattedRequestData.substring(0, 20) + '...';
}
logger.info('%s => %s', clientName, formattedRequestData);
try {
// Translate network request to JSON
const jsonRequest = await tcpRequest.createFrom(request);
logger.debug('%s => %s', clientName, JSON.stringify(jsonRequest.data.toString(encoding)));
// call mountebank with JSON request
const mbResponse = await responseFn(jsonRequest),
processedResponse = mbResponse.data || defaultResponse.data,
buffer = Buffer.isBuffer(processedResponse)
? processedResponse
: Buffer.from(processedResponse, encoding);
if (mbResponse.blocked) {
socket.destroy();
return;
}
if (helpers.simulateFault(socket, mbResponse.fault, logger)) {
return;
}
if (buffer.length > 0) {
socket.write(buffer);
logger.debug('%s <= %s', clientName, JSON.stringify(buffer.toString(encoding)));
}
}
catch (error) {
logger.error('%s X=> %s', clientName, JSON.stringify(errors.details(error)));
socket.write(JSON.stringify({ errors: [error] }), 'utf8');
}
}