'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 |