@reactant/cli
Version:
80 lines (58 loc) • 10.1 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
require("core-js/modules/es.array.filter");
require("core-js/modules/es.array.iterator");
require("core-js/modules/es.array.map");
require("core-js/modules/es.array.slice");
require("core-js/modules/es.object.entries");
require("core-js/modules/es.object.values");
require("core-js/modules/es.set");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.registerActions = registerActions;
var _fsExtra = _interopRequireDefault(require("fs-extra"));
var _path = _interopRequireDefault(require("path"));
var _node = require("@reactant/context/node");
var _node2 = require("@reactant/config/node");
const platformActions = [];
const pluginActions = [];
let registered = false;
function getContext() {
var _process$argv, _process$argv2;
return (0, _node.bootstrap)((0, _node2.loadConfig)(), (_process$argv = process.argv) === null || _process$argv === void 0 ? void 0 : _process$argv.slice(3).find(arg => arg.length && arg[0] !== '-'), (_process$argv2 = process.argv) === null || _process$argv2 === void 0 ? void 0 : _process$argv2.slice(2).find(arg => arg.length && arg[0] !== '-'), {
args: [],
config: {},
debug: false
}, c => c, c => c);
}
function registerActions(registerActionName = _actionName => {}) {
if (registered) return [pluginActions, platformActions];
const context = getContext();
const commandsPath = _path.default.resolve(__dirname, './commands');
const ignorePlatformActions = new Set(_fsExtra.default.readdirSync(commandsPath).filter(fileName => _fsExtra.default.pathExistsSync(_path.default.resolve(commandsPath, fileName)) && fileName.substr(fileName.length - 3) === '.js').map(fileName => fileName.substr(0, fileName.length - 3)));
const registeredActionNames = new Set(ignorePlatformActions);
if (context.platform) {
Object.entries(context.platform.actions).forEach(([actionName, platformAction]) => {
if ((!context.action.length || context.action === actionName) && !registeredActionNames.has(actionName)) {
platformActions.push(platformAction);
registeredActionNames.add(actionName);
registerActionName(actionName, context);
}
});
}
Object.values(context.plugins).forEach(plugin => {
Object.entries(plugin.actions).forEach(([actionName, pluginAction]) => {
if (!context.action.length || context.action === actionName) {
pluginActions.push(pluginAction);
if (!registeredActionNames.has(actionName)) {
registeredActionNames.add(actionName);
registerActionName(actionName, context);
}
}
});
});
registered = true;
return [pluginActions, platformActions];
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hY3Rpb25zLnRzIl0sIm5hbWVzIjpbInBsYXRmb3JtQWN0aW9ucyIsInBsdWdpbkFjdGlvbnMiLCJyZWdpc3RlcmVkIiwiZ2V0Q29udGV4dCIsInByb2Nlc3MiLCJhcmd2Iiwic2xpY2UiLCJmaW5kIiwiYXJnIiwibGVuZ3RoIiwiYXJncyIsImNvbmZpZyIsImRlYnVnIiwiYyIsInJlZ2lzdGVyQWN0aW9ucyIsInJlZ2lzdGVyQWN0aW9uTmFtZSIsIl9hY3Rpb25OYW1lIiwiY29udGV4dCIsImNvbW1hbmRzUGF0aCIsInBhdGgiLCJyZXNvbHZlIiwiX19kaXJuYW1lIiwiaWdub3JlUGxhdGZvcm1BY3Rpb25zIiwiU2V0IiwiZnMiLCJyZWFkZGlyU3luYyIsImZpbHRlciIsImZpbGVOYW1lIiwicGF0aEV4aXN0c1N5bmMiLCJzdWJzdHIiLCJtYXAiLCJyZWdpc3RlcmVkQWN0aW9uTmFtZXMiLCJwbGF0Zm9ybSIsIk9iamVjdCIsImVudHJpZXMiLCJhY3Rpb25zIiwiZm9yRWFjaCIsImFjdGlvbk5hbWUiLCJwbGF0Zm9ybUFjdGlvbiIsImFjdGlvbiIsImhhcyIsInB1c2giLCJhZGQiLCJ2YWx1ZXMiLCJwbHVnaW5zIiwicGx1Z2luIiwicGx1Z2luQWN0aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQVFBLE1BQU1BLGVBQWlDLEdBQUcsRUFBMUM7QUFDQSxNQUFNQyxhQUE2QixHQUFHLEVBQXRDO0FBQ0EsSUFBSUMsVUFBVSxHQUFHLEtBQWpCOztBQUVBLFNBQVNDLFVBQVQsR0FBc0I7QUFBQTs7QUFDcEIsU0FBTyxxQkFDTCx3QkFESyxtQkFFTEMsT0FBTyxDQUFDQyxJQUZILGtEQUVMLGNBQWNDLEtBQWQsQ0FBb0IsQ0FBcEIsRUFBdUJDLElBQXZCLENBQTZCQyxHQUFELElBQWlCQSxHQUFHLENBQUNDLE1BQUosSUFBY0QsR0FBRyxDQUFDLENBQUQsQ0FBSCxLQUFXLEdB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QXRCLFVBQUFBLGtCQUFrQixDQUFDc0IsVUFBRCxFQUFhcEIsT0FBYixDQUFsQjtBQUNEO0FBQ0Y7QUFDRixLQVRIO0FBV0QsR0FaRDtBQWFBZixFQUFBQSxVQUFVLEdBQUcsSUFBYjtBQUNBLFNBQU8sQ0FBQ0QsYUFBRCxFQUFnQkQsZUFBaEIsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgYm9vdHN0cmFwIH0gZnJvbSAnQHJlYWN0YW50L2NvbnRleHQvbm9kZSc7XG5pbXBvcnQgeyBsb2FkQ29uZmlnIH0gZnJvbSAnQHJlYWN0YW50L2NvbmZpZy9ub2RlJztcbmltcG9ydCB7XG4gIENvbnRleHQsXG4gIExvYWRlZFBsdWdpbixcbiAgUGxhdGZvcm1BY3Rpb24sXG4gIFBsdWdpbkFjdGlvblxufSBmcm9tICdAcmVhY3RhbnQvdHlwZXMnO1xuXG5jb25zdCBwbGF0Zm9ybUFjdGlvbnM6IFBsYXRmb3JtQWN0aW9uW10gPSBbXTtcbmNvbnN0IHBsdWdpbkFjdGlvbnM6IFBsdWdpbkFjdGlvbltdID0gW107XG5sZXQgcmVnaXN0ZXJlZCA9IGZhbHNlO1xuXG5mdW5jdGlvbiBnZXRDb250ZXh0KCkge1xuICByZXR1cm4gYm9vdHN0cmFwKFxuICAgIGxvYWRDb25maWcoKSxcbiAgICBwcm9jZXNzLmFyZ3Y/LnNsaWNlKDMpLmZpbmQoKGFyZzogc3RyaW5nKSA9PiBhcmcubGVuZ3RoICYmIGFyZ1swXSAhPT0gJy0nKSxcbiAgICBwcm9jZXNzLmFyZ3Y/LnNsaWNlKDIpLmZpbmQoKGFyZzogc3RyaW5nKSA9PiBhcmcubGVuZ3RoICYmIGFyZ1swXSAhPT0gJy0nKSxcbiAgICB7XG4gICAgICBhcmdzOiBbXSxcbiAgICAgIGNvbmZpZzoge30sXG4gICAgICBkZWJ1ZzogZmFsc2VcbiAgICB9LFxuICAgIChjOiBDb250ZXh0KTogQ29udGV4dCA9PiBjLFxuICAgIChjOiBDb250ZXh0KTogQ29udGV4dCA9PiBjXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckFjdGlvbnMoXG4gIHJlZ2lzdGVyQWN0aW9uTmFtZTogKGFjdGlvbk5hbWU6IHN0cmluZywgY29udGV4dDogQ29udGV4dCkgPT4gdm9pZCA9IChcbiAgICBfYWN0aW9uTmFtZTogc3RyaW5nXG4gICkgPT4ge31cbik6IFtQbHVnaW5BY3Rpb25bXSwgUGxhdGZvcm1BY3Rpb25bXV0ge1xuICBpZiAocmVnaXN0ZXJlZCkgcmV0dXJuIFtwbHVnaW5BY3Rpb25zLCBwbGF0Zm9ybUFjdGlvbnNdO1xuICBjb25zdCBjb250ZXh0ID0gZ2V0Q29udGV4dCgpO1xuICBjb25zdCBjb21tYW5kc1BhdGggPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi9jb21tYW5kcycpO1xuICBjb25zdCBpZ25vcmVQbGF0Zm9ybUFjdGlvbnMgPSBuZXcgU2V0KFxuICAgIGZzXG4gICAgICAucmVhZGRpclN5bmMoY29tbWFuZHNQYXRoKVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKGZpbGVOYW1lOiBzdHJpbmcpID0+XG4gICAgICAgICAgZnMucGF0aEV4aXN0c1N5bmMocGF0aC5yZXNvbHZlKGNvbW1hbmRzUGF0aCwgZmlsZU5hbWUpKSAmJlxuICAgICAgICAgIGZpbGVOYW1lLnN1YnN0cihmaWxlTmFtZS5sZW5ndGggLSAzKSA9PT0gJy5qcydcbiAgICAgIClcbiAgICAgIC5tYXAoKGZpbGVOYW1lKSA9PiBmaWxlTmFtZS5zdWJzdHIoMCwgZmlsZU5hbWUubGVuZ3RoIC0gMykpXG4gICk7XG4gIGNvbnN0IHJlZ2lzdGVyZWRBY3Rpb25OYW1lczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KGlnbm9yZVBsYXRmb3JtQWN0aW9ucyk7XG4gIGlmIChjb250ZXh0LnBsYXRmb3JtKSB7XG4gICAgT2JqZWN0LmVudHJpZXMoY29udGV4dC5wbGF0Zm9ybS5hY3Rpb25zKS5mb3JFYWNoKFxuICAgICAgKFthY3Rpb25OYW1lLCBwbGF0Zm9ybUFjdGlvbl06IFtzdHJpbmcsIFBsYXRmb3JtQWN0aW9uXSkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKCFjb250ZXh0LmFjdGlvbi5sZW5ndGggfHwgY29udGV4dC5hY3Rpb24gPT09IGFjdGlvbk5hbWUpICYmXG4gICAgICAgICAgIXJlZ2lzdGVyZWRBY3Rpb25OYW1lcy5oYXMoYWN0aW9uTmFtZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcGxhdGZvcm1BY3Rpb25zLnB1c2gocGxhdGZvcm1BY3Rpb24pO1xuICAgICAgICAgIHJlZ2lzdGVyZWRBY3Rpb25OYW1lcy5hZGQoYWN0aW9uTmFtZSk7XG4gICAgICAgICAgcmVnaXN0ZXJBY3Rpb25OYW1lKGFjdGlvbk5hbWUsIGNvbnRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuICBPYmplY3QudmFsdWVzKGNvbnRleHQucGx1Z2lucykuZm9yRWFjaCgocGx1Z2luOiBMb2FkZWRQbHVnaW4pID0+IHtcbiAgICBPYmplY3QuZW50cmllcyhwbHVnaW4uYWN0aW9ucykuZm9yRWFjaChcbiAgICAgIChbYWN0aW9uTmFtZSwgcGx1Z2luQWN0aW9uXTogW3N0cmluZywgUGx1Z2luQWN0aW9uXSkgPT4ge1xuICAgICAgICBpZiAoIWNvbnRleHQuYWN0aW9uLmxlbmd0aCB8fCBjb250ZXh0LmFjdGlvbiA9PT0gYWN0aW9uTmFtZSkge1xuICAgICAgICAgIHBsdWdpbkFjdGlvbnMucHVzaChwbHVnaW5BY3Rpb24pO1xuICAgICAgICAgIGlmICghcmVnaXN0ZXJlZEFjdGlvbk5hbWVzLmhhcyhhY3Rpb25OYW1lKSkge1xuICAgICAgICAgICAgcmVnaXN0ZXJlZEFjdGlvbk5hbWVzLmFkZChhY3Rpb25OYW1lKTtcbiAgICAgICAgICAgIHJlZ2lzdGVyQWN0aW9uTmFtZShhY3Rpb25OYW1lLCBjb250ZXh0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9KTtcbiAgcmVnaXN0ZXJlZCA9IHRydWU7XG4gIHJldHVybiBbcGx1Z2luQWN0aW9ucywgcGxhdGZvcm1BY3Rpb25zXTtcbn1cbiJdfQ==