UNPKG

@patternplate/client

Version:

Universal javascript client application for patternplate

85 lines (63 loc) 3.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.client = client; exports.default = void 0; var _url = _interopRequireDefault(require("url")); var _react = _interopRequireDefault(require("react")); var _reactDom = _interopRequireDefault(require("react-dom")); var _server = _interopRequireDefault(require("react-dom/server")); var _reactRouter = _interopRequireWildcard(require("@marionebl/react-router")); var _events = require("events"); var _components = _interopRequireDefault(require("./components")); var _content = _interopRequireDefault(require("./components/content")); var _documentation = _interopRequireDefault(require("./containers/documentation")); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function getRoutes(base = "/") { return _react.default.createElement(_reactRouter.Route, { name: "root", path: base, handler: _components.default }, _react.default.createElement(DefaultRoute, { handler: _documentation.default }), _react.default.createElement(_reactRouter.Route, { name: "doc", path: "/doc/*", handler: _documentation.default }), _react.default.createElement(_reactRouter.Route, { name: "pattern", path: "/pattern/*", handler: _content.default })); } function router(path = "/", data) { return new Promise(resolve => { const eventEmitter = new _events.EventEmitter(); _reactRouter.default.run(getRoutes(), path, (Handler, state) => { const appData = _extends({}, data, state, { eventEmitter, base: "/" }); resolve(_server.default.renderToString(_react.default.createElement(Handler, appData))); }); }); } function client(data, el) { return new Promise(resolve => { const eventEmitter = new _events.EventEmitter(); const base = _url.default.resolve(global.location.pathname, data.base); _reactRouter.default.run(getRoutes(base), _reactRouter.default.HistoryLocation, (Handler, state) => { const appData = _extends({}, data, state, { eventEmitter, base }); resolve(_reactDom.default.render(_react.default.createElement(Handler, appData), el)); }); }); } var _default = router; exports.default = _default; //# sourceMappingURL=entry.js.map