UNPKG

breact

Version:
43 lines (35 loc) 3.62 kB
/** * Mount an element into dom * @function mount * @param {string|Object} container - Container element or it's id * @param {Object} element - React element to mount. * @returns {Promise} */ 'use strict'; var _promise = require('babel-runtime/core-js/promise'); var _promise2 = _interopRequireDefault(_promise); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var _require = require('bwindow'); var get = _require.get; var ReactDOM = require('react-dom'); /** @lends mount */ function mount(container, element) { if (!container) { return _promise2.default.reject(new Error('Container not found')); } if (typeof container === 'string') { var document = get('document', { strict: true }); var found = document.getElementById(container); if (!container) { return _promise2.default.reject(new Error('Container not found: ' + container)); } container = found; } return new _promise2.default(function (resolve, reject) { return ReactDOM.render(element, container, function () { return resolve(); }); }); } module.exports = mount; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1vdW50LmpzIl0sIm5hbWVzIjpbInJlcXVpcmUiLCJnZXQiLCJSZWFjdERPTSIsIm1vdW50IiwiY29udGFpbmVyIiwiZWxlbWVudCIsInJlamVjdCIsIkVycm9yIiwiZG9jdW1lbnQiLCJzdHJpY3QiLCJmb3VuZCIsImdldEVsZW1lbnRCeUlkIiwicmVzb2x2ZSIsInJlbmRlciIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0FBT0E7Ozs7Ozs7O2VBRWdCQSxRQUFRLFNBQVIsQzs7SUFBUkMsRyxZQUFBQSxHOztBQUNSLElBQU1DLFdBQVdGLFFBQVEsV0FBUixDQUFqQjs7QUFFQTtBQUNBLFNBQVNHLEtBQVQsQ0FBZ0JDLFNBQWhCLEVBQTJCQyxPQUEzQixFQUFvQztBQUNsQyxNQUFJLENBQUNELFNBQUwsRUFBZ0I7QUFDZCxXQUFPLGtCQUFRRSxNQUFSLENBQWUsSUFBSUMsS0FBSixDQUFVLHFCQUFWLENBQWYsQ0FBUDtBQUNEO0FBQ0QsTUFBSSxPQUFPSCxTQUFQLEtBQXFCLFFBQXpCLEVBQW1DO0FBQ2pDLFFBQU1JLFdBQVdQLElBQUksVUFBSixFQUFnQixFQUFFUSxRQUFRLElBQVYsRUFBaEIsQ0FBakI7QUFDQSxRQUFJQyxRQUFRRixTQUFTRyxjQUFULENBQXdCUCxTQUF4QixDQUFaO0FBQ0EsUUFBSSxDQUFDQSxTQUFMLEVBQWdCO0FBQ2QsYUFBTyxrQkFBUUUsTUFBUixDQUFlLElBQUlDLEtBQUosMkJBQWtDSCxTQUFsQyxDQUFmLENBQVA7QUFDRDtBQUNEQSxnQkFBWU0sS0FBWjtBQUNEOztBQUVELFNBQU8sc0JBQVksVUFBQ0UsT0FBRCxFQUFVTixNQUFWO0FBQUEsV0FDakJKLFNBQVNXLE1BQVQsQ0FBZ0JSLE9BQWhCLEVBQXlCRCxTQUF6QixFQUFvQztBQUFBLGFBQU1RLFNBQU47QUFBQSxLQUFwQyxDQURpQjtBQUFBLEdBQVosQ0FBUDtBQUdEO0FBQ0RFLE9BQU9DLE9BQVAsR0FBaUJaLEtBQWpCIiwiZmlsZSI6Im1vdW50LmpzIiwic291cmNlUm9vdCI6ImxpYiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTW91bnQgYW4gZWxlbWVudCBpbnRvIGRvbVxuICogQGZ1bmN0aW9uIG1vdW50XG4gKiBAcGFyYW0ge3N0cmluZ3xPYmplY3R9IGNvbnRhaW5lciAtIENvbnRhaW5lciBlbGVtZW50IG9yIGl0J3MgaWRcbiAqIEBwYXJhbSB7T2JqZWN0fSBlbGVtZW50IC0gUmVhY3QgZWxlbWVudCB0byBtb3VudC5cbiAqIEByZXR1cm5zIHtQcm9taXNlfVxuICovXG4ndXNlIHN0cmljdCdcblxuY29uc3QgeyBnZXQgfSA9IHJlcXVpcmUoJ2J3aW5kb3cnKVxuY29uc3QgUmVhY3RET00gPSByZXF1aXJlKCdyZWFjdC1kb20nKVxuXG4vKiogQGxlbmRzIG1vdW50ICovXG5mdW5jdGlvbiBtb3VudCAoY29udGFpbmVyLCBlbGVtZW50KSB7XG4gIGlmICghY29udGFpbmVyKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignQ29udGFpbmVyIG5vdCBmb3VuZCcpKVxuICB9XG4gIGlmICh0eXBlb2YgY29udGFpbmVyID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IGRvY3VtZW50ID0gZ2V0KCdkb2N1bWVudCcsIHsgc3RyaWN0OiB0cnVlIH0pXG4gICAgbGV0IGZvdW5kID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoY29udGFpbmVyKVxuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKGBDb250YWluZXIgbm90IGZvdW5kOiAke2NvbnRhaW5lcn1gKSlcbiAgICB9XG4gICAgY29udGFpbmVyID0gZm91bmRcbiAgfVxuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PlxuICAgIFJlYWN0RE9NLnJlbmRlcihlbGVtZW50LCBjb250YWluZXIsICgpID0+IHJlc29sdmUoKSlcbiAgKVxufVxubW9kdWxlLmV4cG9ydHMgPSBtb3VudFxuIl19