@bbc/spartacus
Version:
64 lines (48 loc) • 2.53 kB
JavaScript
;
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;