in apps/mountebank-mock/mountebank-source/src/models/responseResolver.js [45:79]
function inject (request, fn, logger, imposterState) {
if (request.isDryRun) {
return Promise.resolve({});
}
return new Promise((done, reject) => {
// Leave parameters for older interface
const injected = `(${fn})(config, injectState, logger, done, imposterState);`,
config = {
request: helpers.clone(request),
state: imposterState,
logger: logger,
callback: done
};
compatibility.downcastInjectionConfig(config);
try {
const response = eval(injected);
if (helpers.defined(response)) {
done(response);
}
}
catch (error) {
logger.error(`injection X=> ${error}`);
logger.error(` full source: ${JSON.stringify(injected)}`);
logger.error(` config.request: ${JSON.stringify(config.request)}`);
logger.error(` config.state: ${JSON.stringify(config.state)}`);
reject(exceptions.InjectionError('invalid response injection', {
source: injected,
data: error.message
}));
}
});
}