function inject()

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
                }));
            }
        });
    }