UNPKG

breact

Version:
38 lines (29 loc) 3.03 kB
/** * Create an element * @function create * @param {Object} Component * @param {Object} props * @param {...Object} children - Child elements * @returns {Object} */ 'use strict'; var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray'); var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); var _assign = require('babel-runtime/core-js/object/assign'); var _assign2 = _interopRequireDefault(_assign); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var React = require('react'); /** @lends create */ function create(Component, props) { for (var _len = arguments.length, children = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { children[_key - 2] = arguments[_key]; } Component = Component.default || Component; props = (0, _assign2.default)({}, props); // Copy props to cut prototype chain children = [].concat(children || []).reduce(function (children, child) { return children.concat(child); }, []); return React.createElement.apply(React, [Component, props].concat((0, _toConsumableArray3.default)(children))); } module.exports = create; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNyZWF0ZS5qcyJdLCJuYW1lcyI6WyJSZWFjdCIsInJlcXVpcmUiLCJjcmVhdGUiLCJDb21wb25lbnQiLCJwcm9wcyIsImNoaWxkcmVuIiwiZGVmYXVsdCIsImNvbmNhdCIsInJlZHVjZSIsImNoaWxkIiwiY3JlYXRlRWxlbWVudCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztBQVFBOzs7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxRQUFRQyxRQUFRLE9BQVIsQ0FBZDs7QUFFQTtBQUNBLFNBQVNDLE1BQVQsQ0FBaUJDLFNBQWpCLEVBQTRCQyxLQUE1QixFQUFnRDtBQUFBLG9DQUFWQyxRQUFVO0FBQVZBLFlBQVU7QUFBQTs7QUFDOUNGLGNBQVlBLFVBQVVHLE9BQVYsSUFBcUJILFNBQWpDO0FBQ0FDLFVBQVEsc0JBQWMsRUFBZCxFQUFrQkEsS0FBbEIsQ0FBUixDQUY4QyxDQUViO0FBQ2pDQyxhQUFXLEdBQUdFLE1BQUgsQ0FBVUYsWUFBWSxFQUF0QixFQUEwQkcsTUFBMUIsQ0FBaUMsVUFBQ0gsUUFBRCxFQUFXSSxLQUFYO0FBQUEsV0FBcUJKLFNBQVNFLE1BQVQsQ0FBZ0JFLEtBQWhCLENBQXJCO0FBQUEsR0FBakMsRUFBOEUsRUFBOUUsQ0FBWDtBQUNBLFNBQU9ULE1BQU1VLGFBQU4sZUFBb0JQLFNBQXBCLEVBQStCQyxLQUEvQiwwQ0FBeUNDLFFBQXpDLEdBQVA7QUFDRDs7QUFFRE0sT0FBT0MsT0FBUCxHQUFpQlYsTUFBakIiLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6ImxpYiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ3JlYXRlIGFuIGVsZW1lbnRcbiAqIEBmdW5jdGlvbiBjcmVhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBDb21wb25lbnRcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wc1xuICogQHBhcmFtIHsuLi5PYmplY3R9IGNoaWxkcmVuIC0gQ2hpbGQgZWxlbWVudHNcbiAqIEByZXR1cm5zIHtPYmplY3R9XG4gKi9cbid1c2Ugc3RyaWN0J1xuXG5jb25zdCBSZWFjdCA9IHJlcXVpcmUoJ3JlYWN0JylcblxuLyoqIEBsZW5kcyBjcmVhdGUgKi9cbmZ1bmN0aW9uIGNyZWF0ZSAoQ29tcG9uZW50LCBwcm9wcywgLi4uY2hpbGRyZW4pIHtcbiAgQ29tcG9uZW50ID0gQ29tcG9uZW50LmRlZmF1bHQgfHwgQ29tcG9uZW50XG4gIHByb3BzID0gT2JqZWN0LmFzc2lnbih7fSwgcHJvcHMpIC8vIENvcHkgcHJvcHMgdG8gY3V0IHByb3RvdHlwZSBjaGFpblxuICBjaGlsZHJlbiA9IFtdLmNvbmNhdChjaGlsZHJlbiB8fCBbXSkucmVkdWNlKChjaGlsZHJlbiwgY2hpbGQpID0+IGNoaWxkcmVuLmNvbmNhdChjaGlsZCksIFtdKVxuICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChDb21wb25lbnQsIHByb3BzLCAuLi5jaGlsZHJlbilcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVcbiJdfQ==