UNPKG

@bbc/spartacus

Version:
64 lines (48 loc) 2.53 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _server = require('react-dom/server'); var _app = require('../../app'); var _styles = require('../styles'); var _assets = require('../assets'); var _assets2 = _interopRequireDefault(_assets); var _component = require('./component'); var _component2 = _interopRequireDefault(_component); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } var renderDocument = function () { var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(url, data, routes, ResourceHints, ServerStyleSheet, // pass in the ServerStyleSheet as it needs to remain a singleton - revist in https://github.com/bbc/SPArtacus/issues/41 Helmet) { var sheet, app, headHelmet, assets, doc; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: sheet = new ServerStyleSheet(); app = (0, _server.renderToString)(sheet.collectStyles(_react2.default.createElement(_app.ServerApp, { location: url, routes: routes, data: data, context: {} }))); headHelmet = Helmet.renderStatic(); assets = (0, _assets2.default)(); doc = (0, _server.renderToStaticMarkup)(_react2.default.createElement(_component2.default, { assets: assets, app: app, data: data, styleTags: (0, _styles.getStyleTag)(sheet, data.isAmp), helmet: headHelmet, ResourceHints: ResourceHints })); return _context.abrupt('return', '<!doctype html>' + doc); case 6: case 'end': return _context.stop(); } } }, _callee, undefined); })); return function renderDocument(_x, _x2, _x3, _x4, _x5, _x6) { return _ref.apply(this, arguments); }; }(); exports.default = renderDocument;