@reactant/cli
Version:
97 lines (68 loc) • 7.48 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createDynamicPlugin = createDynamicPlugin;
exports.default = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _fsExtra = _interopRequireDefault(require("fs-extra"));
var _path = _interopRequireDefault(require("path"));
var _pkgDir = _interopRequireDefault(require("pkg-dir"));
var _command = require("@oclif/command");
var _config = require("@oclif/config");
var _core = require("@reactant/core");
var _actions = require("../actions");
// eslint-disable-next-line max-classes-per-file
let platformActions = [];
let pluginActions = [];
function createDynamicPlugin(hookContext, commandName, context) {
class DynamicPlugin extends _config.Plugin {
get hooks() {
return {};
}
get topics() {
return [];
}
get commandIDs() {
return [commandName];
}
get commands() {
var _class, _temp;
const cmd = (_temp = _class = class cmd extends _command.Command {
static load() {
return cmd;
}
run() {
return (0, _asyncToGenerator2.default)(function* () {
const logger = new _core.Logger(context.logLevel);
yield (0, _core.runActions)(context, logger, pluginActions, platformActions);
})();
}
}, _class.id = commandName, _temp); // @ts-ignore
return [cmd];
}
}
return new DynamicPlugin(hookContext.config);
} // eslint-disable-next-line func-names
const hook = /*#__PURE__*/function () {
var _ref = (0, _asyncToGenerator2.default)(function* () {
if (!_fsExtra.default.pathExistsSync(_path.default.resolve(_pkgDir.default.sync(process.cwd()) || process.cwd(), 'package.json'))) {
process.stdout.write('must run inside a reactant project\n');
process.exit();
}
var _registerActions = (0, _actions.registerActions)((actionName, context) => {
this.config.plugins.push(createDynamicPlugin(this, actionName, context));
});
var _registerActions2 = (0, _slicedToArray2.default)(_registerActions, 2);
pluginActions = _registerActions2[0];
platformActions = _registerActions2[1];
});
return function hook() {
return _ref.apply(this, arguments);
};
}();
var _default = hook;
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy9pbml0LnRzIl0sIm5hbWVzIjpbInBsYXRmb3JtQWN0aW9ucyIsInBsdWdpbkFjdGlvbnMiLCJjcmVhdGVEeW5hbWljUGx1Z2luIiwiaG9va0NvbnRleHQiLCJjb21tYW5kTmFtZSIsImNvbnRleHQiLCJEeW5hbWljUGx1Z2luIiwiUGx1Z2luIiwiaG9va3MiLCJ0b3BpY3MiLCJjb21tYW5kSURzIiwiY29tbWFuZHMiLCJjbWQiLCJDb21tYW5kIiwibG9hZCIsInJ1biIsImxvZ2dlciIsIkxvZ2dlciIsImxvZ0xldmVsIiwiaWQiLCJjb25maWciLCJob29rIiwiZnMiLCJwYXRoRXhpc3RzU3luYyIsInBhdGgiLCJyZXNvbHZlIiwicGtnRGlyIiwic3luYyIsInByb2Nlc3MiLCJjd2QiLCJzdGRvdXQiLCJ3cml0ZSIsImV4aXQiLCJhY3Rpb25OYW1lIiwicGx1Z2lucyIsInB1c2giXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBUkE7QUFVQSxJQUFJQSxlQUFpQyxHQUFHLEVBQXhDO0FBQ0EsSUFBSUMsYUFBNkIsR0FBRyxFQUFwQzs7QUFFTyxTQUFTQyxtQkFBVCxDQUNMQyxXQURLLEVBRUxDLFdBRkssRUFHTEMsT0FISyxFQUlHO0FBQ1IsUUFBTUMsYUFBTixTQUE0QkMsY0FBNUIsQ0FBbUM7QUFDakMsUUFBSUMsS0FBSixHQUFZO0FBQ1YsYUFBTyxFQUFQO0FBQ0Q7O0FBRUQsUUFBSUMsTUFBSixHQUFhO0FBQ1gsYUFBTyxFQUFQO0FBQ0Q7O0FBRUQsUUFBSUMsVUFBSixHQUFpQjtBQUNmLGFBQU8sQ0FBQ04sV0FBRCxDQUFQO0FBQ0Q7O0FBRUQsUUFBSU8sUUFBSixHQUF1QztBQUFBOztBQUNyQyxZQUFNQyxHQUFHLHFCQUFHLE1BQU5BLEdBQU0sU0FBY0MsZ0JBQWQsQ0FBc0I7QUFHaEMsZUFBT0MsSUFBUCxHQUFjO0FBQ1osaUJBQU9GLEdBQVA7QUFDRDs7QUFFS0csUUFBQUEsR0FBTixHQUFZO0FBQUE7QUFDVixrQkFBTUMsTUFBTSxHQUFHLElBQUlDLFlBQUosQ0FBV1osT0FBTyxDQUFDYSxRQUFuQixDQUFmO0FBQ0Esa0JBQU0sc0JBQVdiLE9BQVgsRUFBb0JXLE1BQXBCLEVBQTRCZixhQUE1QixFQUEyQ0QsZUFBM0MsQ0FBTjtBQUZVO0FBR1g7O0FBVitCLE9BQXpCLFNBQ0FtQixFQURBLEdBQ0tmLFdBREwsUUFBVCxDQURxQyxDQWFyQzs7QUFDQSxhQUFPLENBQUNRLEdBQUQsQ0FBUDtBQUNEOztBQTVCZ0M7O0FBOEJuQyxTQUFPLElBQUlOLGFBQUosQ0FBa0JILFdBQVcsQ0FBQ2lCLE1BQTlCLENBQVA7QUFDRCxDLENBRUQ7OztBQUNBLE1BQU1DLElBQWtCO0FBQUEsNkNBQUcsYUFBa0I7QUFDM0MsUUFDRSxDQUFDQyxpQkFBR0MsY0FBSCxDQUNDQyxjQUFLQyxPQUFMLENBQWFDLGdCQUFPQyxJQUFQLENBQVlDLE9BQU8sQ0FBQ0MsR0FBUixFQUFaLEtBQThCRCxPQUFPLENBQUNDLEdBQVIsRUFBM0MsRUFBMEQsY0FBMUQsQ0FERCxDQURILEVBSUU7QUFDQUQsTUFBQUEsT0FBTyxDQUFDRSxNQUFSLENBQWVDLEtBQWYsQ0FBcUIsc0NBQXJCO0FBQ0FILE1BQUFBLE9BQU8sQ0FBQ0ksSUFBUjtBQUNEOztBQVIwQywyQkFTUiw4QkFDakMsQ0FBQ0MsVUFBRCxFQUFxQjVCLE9BQXJCLEtBQTBDO0FBQ3hDLFdBQUtlLE1BQUwsQ0FBWWMsT0FBWixDQUFvQkMsSUFBcEIsQ0FBeUJqQyxtQkFBbUIsQ0FBQyxJQUFELEVBQU8rQixVQUFQLEVBQW1CNUIsT0FBbkIsQ0FBNUM7QUFDRCxLQUhnQyxDQVRROztBQUFBOztBQVMxQ0osSUFBQUEsYUFUMEM7QUFTM0JELElBQUFBLGVBVDJCO0FBYzVDLEdBZHVCOztBQUFBLGtCQUFsQnFCLElBQWtCO0FBQUE7QUFBQTtBQUFBLEdBQXhCOztlQWdCZUEsSSIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtY2xhc3Nlcy1wZXItZmlsZVxuaW1wb3J0IGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHBrZ0RpciBmcm9tICdwa2ctZGlyJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdAb2NsaWYvY29tbWFuZCc7XG5pbXBvcnQgeyBDb250ZXh0LCBQbHVnaW5BY3Rpb24sIFBsYXRmb3JtQWN0aW9uIH0gZnJvbSAnQHJlYWN0YW50L3R5cGVzJztcbmltcG9ydCB7IEhvb2ssIFBsdWdpbiwgQ29tbWFuZCBhcyBDb25maWdDb21tYW5kIH0gZnJvbSAnQG9jbGlmL2NvbmZpZyc7XG5pbXBvcnQgeyBMb2dnZXIsIHJ1bkFjdGlvbnMgfSBmcm9tICdAcmVhY3RhbnQvY29yZSc7XG5pbXBvcnQgeyByZWdpc3RlckFjdGlvbnMgfSBmcm9tICcuLi9hY3Rpb25zJztcblxubGV0IHBsYXRmb3JtQWN0aW9uczogUGxhdGZvcm1BY3Rpb25bXSA9IFtdO1xubGV0IHBsdWdpbkFjdGlvbnM6IFBsdWdpbkFjdGlvbltdID0gW107XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEeW5hbWljUGx1Z2luKFxuICBob29rQ29udGV4dDogSG9vay5Db250ZXh0LFxuICBjb21tYW5kTmFtZTogc3RyaW5nLFxuICBjb250ZXh0OiBDb250ZXh0XG4pOiBQbHVnaW4ge1xuICBjbGFzcyBEeW5hbWljUGx1Z2luIGV4dGVuZHMgUGx1Z2luIHtcbiAgICBnZXQgaG9va3MoKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgZ2V0IHRvcGljcygpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBnZXQgY29tbWFuZElEcygpIHtcbiAgICAgIHJldHVybiBbY29tbWFuZE5hbWVdO1xuICAgIH1cblxuICAgIGdldCBjb21tYW5kcygpOiBDb25maWdDb21tYW5kLlBsdWdpbltdIHtcbiAgICAgIGNvbnN0IGNtZCA9IGNsYXNzIGV4dGVuZHMgQ29tbWFuZCB7XG4gICAgICAgIHN0YXRpYyBpZCA9IGNvbW1hbmROYW1lO1xuXG4gICAgICAgIHN0YXRpYyBsb2FkKCkge1xuICAgICAgICAgIHJldHVybiBjbWQ7XG4gICAgICAgIH1cblxuICAgICAgICBhc3luYyBydW4oKSB7XG4gICAgICAgICAgY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcihjb250ZXh0LmxvZ0xldmVsKTtcbiAgICAgICAgICBhd2FpdCBydW5BY3Rpb25zKGNvbnRleHQsIGxvZ2dlciwgcGx1Z2luQWN0aW9ucywgcGxhdGZvcm1BY3Rpb25zKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHJldHVybiBbY21kXTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ldyBEeW5hbWljUGx1Z2luKGhvb2tDb250ZXh0LmNvbmZpZyk7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG5jb25zdCBob29rOiBIb29rPCdpbml0Jz4gPSBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIGlmIChcbiAgICAhZnMucGF0aEV4aXN0c1N5bmMoXG4gICAgICBwYXRoLnJlc29sdmUocGtnRGlyLnN5bmMocHJvY2Vzcy5jd2QoKSkgfHwgcHJvY2Vzcy5jd2QoKSwgJ3BhY2thZ2UuanNvbicpXG4gICAgKVxuICApIHtcbiAgICBwcm9jZXNzLnN0ZG91dC53cml0ZSgnbXVzdCBydW4gaW5zaWRlIGEgcmVhY3RhbnQgcHJvamVjdFxcbicpO1xuICAgIHByb2Nlc3MuZXhpdCgpO1xuICB9XG4gIFtwbHVnaW5BY3Rpb25zLCBwbGF0Zm9ybUFjdGlvbnNdID0gcmVnaXN0ZXJBY3Rpb25zKFxuICAgIChhY3Rpb25OYW1lOiBzdHJpbmcsIGNvbnRleHQ6IENvbnRleHQpID0+IHtcbiAgICAgIHRoaXMuY29uZmlnLnBsdWdpbnMucHVzaChjcmVhdGVEeW5hbWljUGx1Z2luKHRoaXMsIGFjdGlvbk5hbWUsIGNvbnRleHQpKTtcbiAgICB9XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBob29rO1xuIl19