@reactant/context
Version:
96 lines (67 loc) • 10.7 kB
JavaScript
;
require("core-js/modules/es.symbol");
require("core-js/modules/es.array.filter");
require("core-js/modules/es.array.for-each");
require("core-js/modules/es.array.iterator");
require("core-js/modules/es.array.reduce");
require("core-js/modules/es.function.name");
require("core-js/modules/es.object.get-own-property-descriptor");
require("core-js/modules/es.object.get-own-property-descriptors");
require("core-js/modules/es.object.keys");
require("core-js/modules/es.object.to-string");
require("core-js/modules/es.set");
require("core-js/modules/es.string.iterator");
require("core-js/modules/web.dom-collections.for-each");
require("core-js/modules/web.dom-collections.iterator");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getPlugins = getPlugins;
exports.getPlugin = getPlugin;
var _fsExtra = _interopRequireDefault(require("fs-extra"));
var _path = _interopRequireDefault(require("path"));
var _merge = _interopRequireDefault(require("./merge"));
var _node = require("./node");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var _plugins;
function getPlugins(rootPath, pkg) {
if (_plugins && Object.keys(_plugins).length) return _plugins;
var dependencyNames = Object.keys(_objectSpread(_objectSpread({}, pkg.dependencies), pkg.devDependencies));
_plugins = dependencyNames.filter(function (dependencyName) {
var pkgPath = _path.default.resolve(rootPath, 'node_modules', dependencyName, 'package.json');
if (!_fsExtra.default.pathExistsSync(pkgPath)) return false; // eslint-disable-next-line global-require,import/no-dynamic-require
return !!require(pkgPath).reactantPlugin;
}).reduce(function (plugins, moduleName) {
var pluginPath = _path.default.resolve(rootPath, 'node_modules', moduleName, // eslint-disable-next-line global-require,import/no-dynamic-require
require(_path.default.resolve(rootPath, 'node_modules', moduleName, 'package.json')).reactantPlugin);
var requiredPlugin = (0, _node.requireDefault)(pluginPath);
var plugin = {
actions: requiredPlugin.actions || {},
disabledPlatforms: new Set(requiredPlugin.disabledPlatforms || []),
moduleName: moduleName,
name: requiredPlugin.name || moduleName,
options: requiredPlugin.defaultOptions || {},
path: pluginPath,
supportedPlatforms: new Set(requiredPlugin.supportedPlatforms || []),
config: requiredPlugin.config || function (config, _context, _options) {
return config;
}
};
plugins[plugin.name] = plugin;
return plugins;
}, {});
return _plugins;
}
function getPlugin(pluginName, rootPath) {
var pluginOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var pkg = arguments.length > 3 ? arguments[3] : undefined;
var plugins = getPlugins(rootPath, pkg);
var plugin = plugins[pluginName];
if (!plugin) return null;
plugin.options = (0, _merge.default)(plugin.options, pluginOptions || {});
return plugin;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wbHVnaW4udHMiXSwibmFtZXMiOlsiX3BsdWdpbnMiLCJnZXRQbHVnaW5zIiwicm9vdFBhdGgiLCJwa2ciLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwiZGVwZW5kZW5jeU5hbWVzIiwiZGVwZW5kZW5jaWVzIiwiZGV2RGVwZW5kZW5jaWVzIiwiZmlsdGVyIiwiZGVwZW5kZW5jeU5hbWUiLCJwa2dQYXRoIiwicGF0aCIsInJlc29sdmUiLCJmcyIsInBhdGhFeGlzdHNTeW5jIiwicmVxdWlyZSIsInJlYWN0YW50UGx1Z2luIiwicmVkdWNlIiwicGx1Z2lucyIsIm1vZHVsZU5hbWUiLCJwbHVnaW5QYXRoIiwicmVxdWlyZWRQbHVnaW4iLCJwbHVnaW4iLCJhY3Rpb25zIiwiZGlzYWJsZWRQbGF0Zm9ybXMiLCJTZXQiLCJuYW1lIiwib3B0aW9ucyIsImRlZmF1bHRPcHRpb25zIiwic3VwcG9ydGVkUGxhdGZvcm1zIiwiY29uZmlnIiwiX2NvbnRleHQiLCJfb3B0aW9ucyIsImdldFBsdWdpbiIsInBsdWdpbk5hbWUiLCJwbHVnaW5PcHRpb25zIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFVQTs7QUFDQTs7Ozs7Ozs7OztBQUVBLElBQUlBLFFBQUo7O0FBRU8sU0FBU0MsVUFBVCxDQUFvQkMsUUFBcEIsRUFBc0NDLEdBQXRDLEVBQStEO0FBQ3BFLE1BQUlILFFBQVEsSUFBSUksTUFBTSxDQUFDQyxJQUFQLENBQVlMLFFBQVosRUFBc0JNLE1BQXRDLEVBQThDLE9BQU9OLFFBQVA7QUFDOUMsTUFBTU8sZUFBeUIsR0FBR0gsTUFBTSxDQUFDQyxJQUFQLGlDQUM3QkYsR0FBRyxDQUFDSyxZQUR5QixHQUU3QkwsR0FBRyxDQUFDTSxlQUZ5QixFQUFsQztBQUlBVCxFQUFBQSxRQUFRLEdBQUdPLGVBQWUsQ0FDdkJHLE1BRFEsQ0FDRCxVQUFDQyxjQUFELEVBQTRCO0FBQ2xDLFFBQU1DLE9BQU8sR0FBR0MsY0FBS0MsT0FBTCxDQUNkWixRQURjLEVBRWQsY0FGYyxFQUdkUyxjQUhjLEVBSWQsY0FKYyxDQUFoQjs7QUFNQSxRQUFJLENBQUNJLGlCQUFHQyxjQUFILENBQWtCSixPQUFsQixDQUFMLEVBQWlDLE9BQU8sS0FBUCxDQVBDLENBUWxDOztBQUNBLFdBQU8sQ0FBQyxDQUFDSyxPQUFPLENBQUNMLE9BQUQsQ0FBUCxDQUFpQk0sY0FBMUI7QUFDRCxHQVhRLEVBWVJDLE1BWlEsQ0FZRCxVQUFDQyxPQUFELEVBQXlCQyxVQUF6QixFQUFnRDtBQUN0RCxRQUFNQyxVQUFVLEdBQUdULGNBQUtDLE9BQUwsQ0FDakJaLFFBRGlCLEVBRWpCLGNBRmlCLEVBR2pCbUIsVUFIaUIsRUFJakI7QUFDQUosSUFBQUEsT0FBTyxDQUFDSixjQUFLQyxPQUFMLENBQ05aLFFBRE0sRUFFTixjQUZNLEVBR05tQixVQUhNLEVBSU4sY0FKTSxDQUFELENBQVAsQ0FLR0gsY0FWYyxDQUFuQjs7QUFZQSxRQUFNSyxjQUFzQixHQUFHLDBCQUF1QkQsVUFBdkIsQ0FBL0I7QUFDQSxRQUFNRSxNQUFvQixHQUFHO0FBQzNCQyxNQUFBQSxPQUFPLEVBQUVGLGNBQWMsQ0FBQ0UsT0FBZixJQUEwQixFQURSO0FBRTNCQyxNQUFBQSxpQkFBaUIsRUFBRSxJQUFJQyxHQUFKLENBQVFKLGNBQWMsQ0FBQ0csaUJBQWYsSUFBb0MsRUFBNUMsQ0FGUTtBQUczQkwsTUFBQUEsVUFBVSxFQUFWQSxVQUgyQjtBQUkzQk8sTUFBQUEsSUFBSSxFQUFFTCxjQUFjLENBQUNLLElBQWYsSUFBdUJQLFVBSkY7QUFLM0JRLE1BQUFBLE9BQU8sRUFBRU4sY0FBYyxDQUFDTyxjQUFmLElBQWlDLEVBTGY7QUFNM0JqQixNQUFBQSxJQUFJLEVBQUVTLFVBTnFCO0FBTzNCUyxNQUFBQSxrQkFBa0IsRUFBRSxJQUFJSixHQUFKLENBQVFKLGNBQWMsQ0FBQ1Esa0JBQWYsSUFBcUMsRUFBN0MsQ0FQTztBQVEzQkMsTUFBQUEsTUFBTSxFQUNKVCxjQUFjLENBQUNTLE1BQWYsSUFDQyxVQUNDQSxNQURELEVBRUNDLFFBRkQsRUFHQ0MsUUFIRDtBQUFBLGVBSUlGLE1BSko7QUFBQTtBQVZ3QixLQUE3QjtBQWdCQVosSUFBQUEsT0FBTyxDQUFDSSxNQUFNLENBQUNJLElBQVIsQ0FBUCxHQUF1QkosTUFBdkI7QUFDQSxXQUFPSixPQUFQO0FBQ0QsR0E1Q1EsRUE0Q04sRUE1Q00sQ0FBWDtBQTZDQSxTQUFPcEIsUUFBUDtBQUNEOztBQUVNLFNBQVNtQyxTQUFULENBQ0xDLFVBREssRUFFTGxDLFFBRkssRUFLZ0I7QUFBQSxNQUZyQm1DLGFBRXFCLHVFQUZVLEVBRVY7QUFBQSxNQURyQmxDLEdBQ3FCO0FBQ3JCLE1BQU1pQixPQUFPLEdBQUduQixVQUFVLENBQUNDLFFBQUQsRUFBV0MsR0FBWCxDQUExQjtBQUNBLE1BQU1xQixNQUFNLEdBQUdKLE9BQU8sQ0FBQ2dCLFVBQUQsQ0FBdEI7QUFDQSxNQUFJLENBQUNaLE1BQUwsRUFBYSxPQUFPLElBQVA7QUFDYkEsRUFBQUEsTUFBTSxDQUFDSyxPQUFQLEdBQWlCLG9CQUFxQkwsTUFBTSxDQUFDSyxPQUE1QixFQUFxQ1EsYUFBYSxJQUFJLEVBQXRELENBQWpCO0FBQ0EsU0FBT2IsTUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtcbiAgQ29uZmlnLFxuICBDb250ZXh0LFxuICBMb2FkZWRQbHVnaW4sXG4gIExvYWRlZFBsdWdpbnMsXG4gIFBrZyxcbiAgUGx1Z2luLFxuICBQbHVnaW5PcHRpb25zXG59IGZyb20gJ0ByZWFjdGFudC90eXBlcyc7XG5pbXBvcnQgbWVyZ2UgZnJvbSAnLi9tZXJnZSc7XG5pbXBvcnQgeyByZXF1aXJlRGVmYXVsdCB9IGZyb20gJy4vbm9kZSc7XG5cbmxldCBfcGx1Z2luczogTG9hZGVkUGx1Z2lucztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBsdWdpbnMocm9vdFBhdGg6IHN0cmluZywgcGtnOiBQa2cpOiBMb2FkZWRQbHVnaW5zIHtcbiAgaWYgKF9wbHVnaW5zICYmIE9iamVjdC5rZXlzKF9wbHVnaW5zKS5sZW5ndGgpIHJldHVybiBfcGx1Z2lucztcbiAgY29uc3QgZGVwZW5kZW5jeU5hbWVzOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKHtcbiAgICAuLi5wa2cuZGVwZW5kZW5jaWVzLFxuICAgIC4uLnBrZy5kZXZEZXBlbmRlbmNpZXNcbiAgfSk7XG4gIF9wbHVnaW5zID0gZGVwZW5kZW5jeU5hbWVzXG4gICAgLmZpbHRlcigoZGVwZW5kZW5jeU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgcGtnUGF0aCA9IHBhdGgucmVzb2x2ZShcbiAgICAgICAgcm9vdFBhdGgsXG4gICAgICAgICdub2RlX21vZHVsZXMnLFxuICAgICAgICBkZXBlbmRlbmN5TmFtZSxcbiAgICAgICAgJ3BhY2thZ2UuanNvbidcbiAgICAgICk7XG4gICAgICBpZiAoIWZzLnBhdGhFeGlzdHNTeW5jKHBrZ1BhdGgpKSByZXR1cm4gZmFsc2U7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ2xvYmFsLXJlcXVpcmUsaW1wb3J0L25vLWR5bmFtaWMtcmVxdWlyZVxuICAgICAgcmV0dXJuICEhcmVxdWlyZShwa2dQYXRoKS5yZWFjdGFudFBsdWdpbjtcbiAgICB9KVxuICAgIC5yZWR1Y2UoKHBsdWdpbnM6IExvYWRlZFBsdWdpbnMsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgcGx1Z2luUGF0aCA9IHBhdGgucmVzb2x2ZShcbiAgICAgICAgcm9vdFBhdGgsXG4gICAgICAgICdub2RlX21vZHVsZXMnLFxuICAgICAgICBtb2R1bGVOYW1lLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ2xvYmFsLXJlcXVpcmUsaW1wb3J0L25vLWR5bmFtaWMtcmVxdWlyZVxuICAgICAgICByZXF1aXJlKHBhdGgucmVzb2x2ZShcbiAgICAgICAgICByb290UGF0aCxcbiAgICAgICAgICAnbm9kZV9tb2R1bGVzJyxcbiAgICAgICAgICBtb2R1bGVOYW1lLFxuICAgICAgICAgICdwYWNrYWdlLmpzb24nXG4gICAgICAgICkpLnJlYWN0YW50UGx1Z2luXG4gICAgICApO1xuICAgICAgY29uc3QgcmVxdWlyZWRQbHVnaW46IFBsdWdpbiA9IHJlcXVpcmVEZWZhdWx0PFBsdWdpbj4ocGx1Z2luUGF0aCk7XG4gICAgICBjb25zdCBwbHVnaW46IExvYWRlZFBsdWdpbiA9IHtcbiAgICAgICAgYWN0aW9uczogcmVxdWlyZWRQbHVnaW4uYWN0aW9ucyB8fCB7fSxcbiAgICAgICAgZGlzYWJsZWRQbGF0Zm9ybXM6IG5ldyBTZXQocmVxdWlyZWRQbHVnaW4uZGlzYWJsZWRQbGF0Zm9ybXMgfHwgW10pLFxuICAgICAgICBtb2R1bGVOYW1lLFxuICAgICAgICBuYW1lOiByZXF1aXJlZFBsdWdpbi5uYW1lIHx8IG1vZHVsZU5hbWUsXG4gICAgICAgIG9wdGlvbnM6IHJlcXVpcmVkUGx1Z2luLmRlZmF1bHRPcHRpb25zIHx8IHt9LFxuICAgICAgICBwYXRoOiBwbHVnaW5QYXRoLFxuICAgICAgICBzdXBwb3J0ZWRQbGF0Zm9ybXM6IG5ldyBTZXQocmVxdWlyZWRQbHVnaW4uc3VwcG9ydGVkUGxhdGZvcm1zIHx8IFtdKSxcbiAgICAgICAgY29uZmlnOlxuICAgICAgICAgIHJlcXVpcmVkUGx1Z2luLmNvbmZpZyB8fFxuICAgICAgICAgICgoXG4gICAgICAgICAgICBjb25maWc6IFBhcnRpYWw8Q29uZmlnPixcbiAgICAgICAgICAgIF9jb250ZXh0OiBDb250ZXh0LFxuICAgICAgICAgICAgX29wdGlvbnM6IFBsdWdpbk9wdGlvbnNcbiAgICAgICAgICApID0+IGNvbmZpZylcbiAgICAgIH07XG4gICAgICBwbHVnaW5zW3BsdWdpbi5uYW1lXSA9IHBsdWdpbjtcbiAgICAgIHJldHVybiBwbHVnaW5zO1xuICAgIH0sIHt9KTtcbiAgcmV0dXJuIF9wbHVnaW5zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGx1Z2luKFxuICBwbHVnaW5OYW1lOiBzdHJpbmcsXG4gIHJvb3RQYXRoOiBzdHJpbmcsXG4gIHBsdWdpbk9wdGlvbnM6IFBsdWdpbk9wdGlvbnMgPSB7fSxcbiAgcGtnOiBQa2dcbik6IExvYWRlZFBsdWdpbiB8IG51bGwge1xuICBjb25zdCBwbHVnaW5zID0gZ2V0UGx1Z2lucyhyb290UGF0aCwgcGtnKTtcbiAgY29uc3QgcGx1Z2luID0gcGx1Z2luc1twbHVnaW5OYW1lXTtcbiAgaWYgKCFwbHVnaW4pIHJldHVybiBudWxsO1xuICBwbHVnaW4ub3B0aW9ucyA9IG1lcmdlPFBsdWdpbk9wdGlvbnM+KHBsdWdpbi5vcHRpb25zLCBwbHVnaW5PcHRpb25zIHx8IHt9KTtcbiAgcmV0dXJuIHBsdWdpbjtcbn1cbiJdfQ==