all files / DEV/lib/helpers/ safeExecute.js

93.33% Statements 14/15
75% Branches 3/4
100% Functions 2/2
100% Lines 5/5
2 statements, 1 branch Ignored     
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39      17×   17×                       17×                                        
/**
 * executes methods in try/catch block
 */
'use strict';

Object.defineProperty(exports, '__esModule', {
    value: true
});
var safeExecute = function safeExecute(f, param) {
    return function exec() {
        for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
            args[_key] = arguments[_key];
        }
 
        var result = undefined;
        args = param || args;
 
        if (typeof f !== 'function') {
            return args[0];
        }
 
        /**
         * we need to catch errors here as we would stop the
         * execution and the promise (and the test) will never
         * finish
         */
        try {
            result = f.apply(this, args);
        } catch (e) {
            return e;
        }
 
        return result;
    };
};
 
exports['default'] = safeExecute;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvaGVscGVycy9zYWZlRXhlY3V0ZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUdBLElBQUksV0FBVyxHQUFHLFNBQWQsV0FBVyxDQUFhLENBQUMsRUFBRSxLQUFLLEVBQUU7QUFDbEMsV0FBTyxTQUFTLElBQUksR0FBVzswQ0FBTixJQUFJO0FBQUosZ0JBQUk7OztBQUN6QixZQUFJLE1BQU0sWUFBQSxDQUFBO0FBQ1YsWUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUE7O0FBRXBCLFlBQUksT0FBTyxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3pCLG1CQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtTQUNqQjs7Ozs7OztBQU9ELFlBQUk7QUFDQSxrQkFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO1NBQy9CLENBQUMsT0FBTyxDQUFDLEVBQUU7QUFDUixtQkFBTyxDQUFDLENBQUE7U0FDWDs7QUFFRCxlQUFPLE1BQU0sQ0FBQTtLQUNoQixDQUFBO0NBQ0osQ0FBQTs7cUJBRWMsV0FBVyIsImZpbGUiOiIvVXNlcnMvY2hyaXN0aWFuYnJvbWFubi9TaXRlcy9XZWJwcm9qZWt0ZS93ZWJkcml2ZXJqcy9ERVYvbGliL2hlbHBlcnMvc2FmZUV4ZWN1dGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGV4ZWN1dGVzIG1ldGhvZHMgaW4gdHJ5L2NhdGNoIGJsb2NrXG4gKi9cbmxldCBzYWZlRXhlY3V0ZSA9IGZ1bmN0aW9uIChmLCBwYXJhbSkge1xuICAgIHJldHVybiBmdW5jdGlvbiBleGVjICguLi5hcmdzKSB7XG4gICAgICAgIGxldCByZXN1bHRcbiAgICAgICAgYXJncyA9IHBhcmFtIHx8IGFyZ3NcblxuICAgICAgICBpZiAodHlwZW9mIGYgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBhcmdzWzBdXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogd2UgbmVlZCB0byBjYXRjaCBlcnJvcnMgaGVyZSBhcyB3ZSB3b3VsZCBzdG9wIHRoZVxuICAgICAgICAgKiBleGVjdXRpb24gYW5kIHRoZSBwcm9taXNlIChhbmQgdGhlIHRlc3QpIHdpbGwgbmV2ZXJcbiAgICAgICAgICogZmluaXNoXG4gICAgICAgICAqL1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmVzdWx0ID0gZi5hcHBseSh0aGlzLCBhcmdzKVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gZVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgc2FmZUV4ZWN1dGVcbiJdfQ==