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

100% Statements 45/45
100% Branches 18/18
100% Functions 2/2
100% Lines 5/5
8 statements, 7 branches 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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93                                                187×                                                                                                                                  
'use strict';
 
Object.defineProperty(exports, '__esModule', {
    value: true
});
// istanbul ignore next
 
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
 
var _path = require('path');
 
var _path2 = _interopRequireDefault(_path);
 
var _fs = require('fs');
 
var _fs2 = _interopRequireDefault(_fs);
 
var COMMAND_TYPES = ['protocol', 'commands'];
 
/**
 * helper to find all implemented commands
 *
 * @returns {String[]} list of implemented command names
 */
var getImplementedCommands = function getImplementedCommands() {
    var commands = {};
 
    var _iteratorNormalCompletion = true;
    var _didIteratorError = false;
    var _iteratorError = undefined;
 
    try {
        for (var _iterator = COMMAND_TYPES[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
            var commandType = _step.value;
 
            var dir = _path2['default'].join(__dirname, '..', commandType);
            var files = _fs2['default'].readdirSync(dir);
 
            var _iteratorNormalCompletion2 = true;
            var _didIteratorError2 = false;
            var _iteratorError2 = undefined;
 
            try {
                for (var _iterator2 = files[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
                    var filename = _step2.value;
 
                    var commandName = filename.slice(0, -3);
 
                    /**
                     * addCommand only there for documentation purposes
                     */
                    if (commandName === 'addCommand') {
                        continue;
                    }
 
                    commands[commandName] = require(_path2['default'].join(dir, commandName));
                }
            } catch (err) {
                _didIteratorError2 = true;
                _iteratorError2 = err;
            } finally {
                try {
                    if (!_iteratorNormalCompletion2 && _iterator2['return']) {
                        _iterator2['return']();
                    }
                } finally {
                    if (_didIteratorError2) {
                        throw _iteratorError2;
                    }
                }
            }
        }
    } catch (err) {
        _didIteratorError = true;
        _iteratorError = err;
    } finally {
        try {
            if (!_iteratorNormalCompletion && _iterator['return']) {
                _iterator['return']();
            }
        } finally {
            if (_didIteratorError) {
                throw _iteratorError;
            }
        }
    }
 
    return commands;
};
 
exports['default'] = getImplementedCommands;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvaGVscGVycy9nZXRJbXBsZW1lbnRlZENvbW1hbmRzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztvQkFBaUIsTUFBTTs7OztrQkFDUixJQUFJOzs7O0FBRW5CLElBQU0sYUFBYSxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFBOzs7Ozs7O0FBTzlDLElBQUksc0JBQXNCLEdBQUcsU0FBekIsc0JBQXNCLEdBQWU7QUFDckMsUUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFBOzs7Ozs7O0FBRWpCLDZCQUF3QixhQUFhLDhIQUFFO2dCQUE5QixXQUFXOztBQUNoQixnQkFBSSxHQUFHLEdBQUcsa0JBQUssSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUE7QUFDakQsZ0JBQUksS0FBSyxHQUFHLGdCQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQTs7Ozs7OztBQUUvQixzQ0FBcUIsS0FBSyxtSUFBRTt3QkFBbkIsUUFBUTs7QUFDYix3QkFBSSxXQUFXLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTs7Ozs7QUFLdkMsd0JBQUksV0FBVyxLQUFLLFlBQVksRUFBRTtBQUM5QixpQ0FBUTtxQkFDWDs7QUFFRCw0QkFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxrQkFBSyxJQUFJLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUE7aUJBQy9EOzs7Ozs7Ozs7Ozs7Ozs7U0FDSjs7Ozs7Ozs7Ozs7Ozs7OztBQUVELFdBQU8sUUFBUSxDQUFBO0NBQ2xCLENBQUE7O3FCQUVjLHNCQUFzQiIsImZpbGUiOiIvVXNlcnMvY2hyaXN0aWFuYnJvbWFubi9TaXRlcy9XZWJwcm9qZWt0ZS93ZWJkcml2ZXJqcy9ERVYvbGliL2hlbHBlcnMvZ2V0SW1wbGVtZW50ZWRDb21tYW5kcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgZnMgZnJvbSAnZnMnXG5cbmNvbnN0IENPTU1BTkRfVFlQRVMgPSBbJ3Byb3RvY29sJywgJ2NvbW1hbmRzJ11cblxuLyoqXG4gKiBoZWxwZXIgdG8gZmluZCBhbGwgaW1wbGVtZW50ZWQgY29tbWFuZHNcbiAqXG4gKiBAcmV0dXJucyB7U3RyaW5nW119IGxpc3Qgb2YgaW1wbGVtZW50ZWQgY29tbWFuZCBuYW1lc1xuICovXG5sZXQgZ2V0SW1wbGVtZW50ZWRDb21tYW5kcyA9IGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgY29tbWFuZHMgPSB7fVxuXG4gICAgZm9yIChsZXQgY29tbWFuZFR5cGUgb2YgQ09NTUFORF9UWVBFUykge1xuICAgICAgICBsZXQgZGlyID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uJywgY29tbWFuZFR5cGUpXG4gICAgICAgIGxldCBmaWxlcyA9IGZzLnJlYWRkaXJTeW5jKGRpcilcblxuICAgICAgICBmb3IgKGxldCBmaWxlbmFtZSBvZiBmaWxlcykge1xuICAgICAgICAgICAgbGV0IGNvbW1hbmROYW1lID0gZmlsZW5hbWUuc2xpY2UoMCwgLTMpXG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogYWRkQ29tbWFuZCBvbmx5IHRoZXJlIGZvciBkb2N1bWVudGF0aW9uIHB1cnBvc2VzXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChjb21tYW5kTmFtZSA9PT0gJ2FkZENvbW1hbmQnKSB7XG4gICAgICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29tbWFuZHNbY29tbWFuZE5hbWVdID0gcmVxdWlyZShwYXRoLmpvaW4oZGlyLCBjb21tYW5kTmFtZSkpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY29tbWFuZHNcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0SW1wbGVtZW50ZWRDb21tYW5kc1xuIl19