react-static
Version:
A progressive static site generator for React
62 lines (47 loc) • 4.44 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = createIndexPlaceholder;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _react = _interopRequireDefault(require("react"));
var _server = require("react-dom/server");
var _fsExtra = _interopRequireDefault(require("fs-extra"));
var _RootComponents = require("../static/components/RootComponents");
function createIndexPlaceholder(_x) {
return _createIndexPlaceholder.apply(this, arguments);
}
function _createIndexPlaceholder() {
_createIndexPlaceholder = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(state) {
var _state$config, Document, paths, Component, DocumentHtml, html;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_state$config = state.config, Document = _state$config.Document, paths = _state$config.paths; // Render the base document component to string with siteprops
Component = Document || _RootComponents.DefaultDocument;
DocumentHtml = (0, _server.renderToString)( /*#__PURE__*/_react["default"].createElement(Component, {
Html: _RootComponents.Html,
Head: _RootComponents.Head,
Body: _RootComponents.Body,
state: state
}, /*#__PURE__*/_react["default"].createElement("div", {
id: "root"
})));
html = "<!DOCTYPE html>".concat(DocumentHtml); // Write the Document to index.html
_context.next = 6;
return _fsExtra["default"].outputFile(paths.HTML_TEMPLATE, html);
case 6:
return _context.abrupt("return", state);
case 7:
case "end":
return _context.stop();
}
}
}, _callee);
}));
return _createIndexPlaceholder.apply(this, arguments);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9jcmVhdGVJbmRleFBsYWNlaG9sZGVyLmpzIl0sIm5hbWVzIjpbImNyZWF0ZUluZGV4UGxhY2Vob2xkZXIiLCJzdGF0ZSIsImNvbmZpZyIsIkRvY3VtZW50IiwicGF0aHMiLCJDb21wb25lbnQiLCJEZWZhdWx0RG9jdW1lbnQiLCJEb2N1bWVudEh0bWwiLCJIdG1sIiwiSGVhZCIsIkJvZHkiLCJodG1sIiwiZnMiLCJvdXRwdXRGaWxlIiwiSFRNTF9URU1QTEFURSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztTQU84QkEsc0I7Ozs7OzBHQUFmLGlCQUFzQ0MsS0FBdEM7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDRCQUdUQSxLQUhTLENBRVhDLE1BRlcsRUFFREMsUUFGQyxpQkFFREEsUUFGQyxFQUVTQyxLQUZULGlCQUVTQSxLQUZULEVBSWI7O0FBQ01DLFlBQUFBLFNBTE8sR0FLS0YsUUFBUSxJQUFJRywrQkFMakI7QUFNUEMsWUFBQUEsWUFOTyxHQU1RLDBDQUNuQixnQ0FBQyxTQUFEO0FBQVcsY0FBQSxJQUFJLEVBQUVDLG9CQUFqQjtBQUF1QixjQUFBLElBQUksRUFBRUMsb0JBQTdCO0FBQW1DLGNBQUEsSUFBSSxFQUFFQyxvQkFBekM7QUFBK0MsY0FBQSxLQUFLLEVBQUVUO0FBQXRELDRCQUNFO0FBQUssY0FBQSxFQUFFLEVBQUM7QUFBUixjQURGLENBRG1CLENBTlI7QUFXUFUsWUFBQUEsSUFYTyw0QkFXa0JKLFlBWGxCLEdBYWI7O0FBYmE7QUFBQSxtQkFjUEssb0JBQUdDLFVBQUgsQ0FBY1QsS0FBSyxDQUFDVSxhQUFwQixFQUFtQ0gsSUFBbkMsQ0FkTzs7QUFBQTtBQUFBLDZDQWdCTlYsS0FoQk07O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHJlbmRlclRvU3RyaW5nIH0gZnJvbSAncmVhY3QtZG9tL3NlcnZlcidcbmltcG9ydCBmcyBmcm9tICdmcy1leHRyYSdcbmltcG9ydCB7XG4gIERlZmF1bHREb2N1bWVudCxcbiAgSHRtbCxcbiAgSGVhZCxcbiAgQm9keSxcbn0gZnJvbSAnLi4vc3RhdGljL2NvbXBvbmVudHMvUm9vdENvbXBvbmVudHMnXG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUluZGV4UGxhY2Vob2xkZXIoc3RhdGUpIHtcbiAgY29uc3Qge1xuICAgIGNvbmZpZzogeyBEb2N1bWVudCwgcGF0aHMgfSxcbiAgfSA9IHN0YXRlXG4gIC8vIFJlbmRlciB0aGUgYmFzZSBkb2N1bWVudCBjb21wb25lbnQgdG8gc3RyaW5nIHdpdGggc2l0ZXByb3BzXG4gIGNvbnN0IENvbXBvbmVudCA9IERvY3VtZW50IHx8IERlZmF1bHREb2N1bWVudFxuICBjb25zdCBEb2N1bWVudEh0bWwgPSByZW5kZXJUb1N0cmluZyhcbiAgICA8Q29tcG9uZW50IEh0bWw9e0h0bWx9IEhlYWQ9e0hlYWR9IEJvZHk9e0JvZHl9IHN0YXRlPXtzdGF0ZX0+XG4gICAgICA8ZGl2IGlkPVwicm9vdFwiIC8+XG4gICAgPC9Db21wb25lbnQ+XG4gIClcbiAgY29uc3QgaHRtbCA9IGA8IURPQ1RZUEUgaHRtbD4ke0RvY3VtZW50SHRtbH1gXG5cbiAgLy8gV3JpdGUgdGhlIERvY3VtZW50IHRvIGluZGV4Lmh0bWxcbiAgYXdhaXQgZnMub3V0cHV0RmlsZShwYXRocy5IVE1MX1RFTVBMQVRFLCBodG1sKVxuXG4gIHJldHVybiBzdGF0ZVxufVxuIl19