react-static
Version:
A progressive static site generator for React
67 lines (52 loc) • 8.03 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _path = _interopRequireDefault(require("path"));
var _fsExtra = _interopRequireDefault(require("fs-extra"));
var _chunkBuilder = require("../utils/chunkBuilder");
var _default = /*#__PURE__*/function () {
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(state) {
var paths, templates, file, dynamicRoutesPath;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
paths = state.config.paths, templates = state.templates;
file = "\n".concat(process.env.NODE_ENV === 'production' ? "\nimport React from 'react'\nimport universal, { setHasBabelPlugin } from 'react-universal-component'\n\nsetHasBabelPlugin()\n\nconst universalOptions = {\n loading: () => null,\n error: props => {\n console.error(props.error);\n return <div>An error occurred loading this page's template. More information is available in the console.</div>;\n },\n ignoreBabelRename: true\n}\n\n".concat(templates.map(function (template, index) {
var chunkName = ''; // relative resolving produces the wrong path, a "../" is missing
// as the files looks equal, we simple use an absolute path then
if (!paths.DIST.startsWith(paths.ROOT)) {
chunkName = "/* webpackChunkName: \"".concat((0, _chunkBuilder.chunkNameFromFile)(template), "\" */");
}
return "const t_".concat(index, " = universal(import('").concat(template, "'").concat(chunkName, "), universalOptions)\n t_").concat(index, ".template = '").concat(template, "'\n ");
}).join('\n'), "\n\n// Template Map\nexport default {\n ").concat(templates.map(function (template, index) {
return "'".concat(template, "': t_").concat(index);
}).join(',\n'), "\n}\n// Not Found Template\nexport const notFoundTemplate = ").concat(JSON.stringify(templates[0]), "\n") : "\n\n// Template Map\nexport default {\n ".concat(templates.map(function (template) {
return "'".concat(template, "': require('").concat(template, "').default");
}).join(',\n'), "\n}\n\nexport const notFoundTemplate = '").concat(templates[0], "'\n"), "\n");
dynamicRoutesPath = _path["default"].join(process.env.REACT_STATIC_TEMPLATES_PATH);
_context.next = 5;
return _fsExtra["default"].remove(dynamicRoutesPath);
case 5:
_context.next = 7;
return _fsExtra["default"].outputFile(dynamicRoutesPath, file);
case 7:
return _context.abrupt("return", state);
case 8:
case "end":
return _context.stop();
}
}
}, _callee);
}));
return function (_x) {
return _ref.apply(this, arguments);
};
}();
exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGF0aWMvZ2VuZXJhdGVUZW1wbGF0ZXMuanMiXSwibmFtZXMiOlsic3RhdGUiLCJwYXRocyIsImNvbmZpZyIsInRlbXBsYXRlcyIsImZpbGUiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJtYXAiLCJ0ZW1wbGF0ZSIsImluZGV4IiwiY2h1bmtOYW1lIiwiRElTVCIsInN0YXJ0c1dpdGgiLCJST09UIiwiam9pbiIsIkpTT04iLCJzdHJpbmdpZnkiLCJkeW5hbWljUm91dGVzUGF0aCIsInBhdGgiLCJSRUFDVF9TVEFUSUNfVEVNUExBVEVTX1BBVEgiLCJmcyIsInJlbW92ZSIsIm91dHB1dEZpbGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7OzJGQUVlLGlCQUFNQSxLQUFOO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVEQyxZQUFBQSxLQUZDLEdBSVRELEtBSlMsQ0FFWEUsTUFGVyxDQUVERCxLQUZDLEVBR1hFLFNBSFcsR0FJVEgsS0FKUyxDQUdYRyxTQUhXO0FBTVBDLFlBQUFBLElBTk8sZUFRYkMsT0FBTyxDQUFDQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsbVpBZ0JBSixTQUFTLENBQ1JLLEdBREQsQ0FDSyxVQUFDQyxRQUFELEVBQVdDLEtBQVgsRUFBcUI7QUFDeEIsa0JBQUlDLFNBQVMsR0FBRyxFQUFoQixDQUR3QixDQUd4QjtBQUNBOztBQUVBLGtCQUFJLENBQUNWLEtBQUssQ0FBQ1csSUFBTixDQUFXQyxVQUFYLENBQXNCWixLQUFLLENBQUNhLElBQTVCLENBQUwsRUFBd0M7QUFDdENILGdCQUFBQSxTQUFTLG9DQUE0QixxQ0FBa0JGLFFBQWxCLENBQTVCLFVBQVQ7QUFDRDs7QUFFRCx1Q0FBa0JDLEtBQWxCLGtDQUErQ0QsUUFBL0MsY0FBMkRFLFNBQTNELDJDQUNNRCxLQUROLDBCQUMyQkQsUUFEM0I7QUFHRCxhQWRELEVBZUNNLElBZkQsQ0FlTSxJQWZOLENBaEJBLHNEQW1DRVosU0FBUyxDQUFDSyxHQUFWLENBQWMsVUFBQ0MsUUFBRCxFQUFXQyxLQUFYO0FBQUEsZ0NBQXlCRCxRQUF6QixrQkFBeUNDLEtBQXpDO0FBQUEsYUFBZCxFQUFnRUssSUFBaEUsQ0FBcUUsS0FBckUsQ0FuQ0YseUVBc0NnQ0MsSUFBSSxDQUFDQyxTQUFMLENBQWVkLFNBQVMsQ0FBQyxDQUFELENBQXhCLENBdENoQyw2REE0Q0VBLFNBQVMsQ0FDUkssR0FERCxDQUNLLFVBQUFDLFFBQVE7QUFBQSxnQ0FBUUEsUUFBUix5QkFBK0JBLFFBQS9CO0FBQUEsYUFEYixFQUVDTSxJQUZELENBRU0sS0FGTixDQTVDRixxREFpRGlDWixTQUFTLENBQUMsQ0FBRCxDQWpEMUMsUUFSYTtBQThEUGUsWUFBQUEsaUJBOURPLEdBOERhQyxpQkFBS0osSUFBTCxDQUFVVixPQUFPLENBQUNDLEdBQVIsQ0FBWWMsMkJBQXRCLENBOURiO0FBQUE7QUFBQSxtQkErRFBDLG9CQUFHQyxNQUFILENBQVVKLGlCQUFWLENBL0RPOztBQUFBO0FBQUE7QUFBQSxtQkFnRVBHLG9CQUFHRSxVQUFILENBQWNMLGlCQUFkLEVBQWlDZCxJQUFqQyxDQWhFTzs7QUFBQTtBQUFBLDZDQXNFTkosS0F0RU07O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgZnMgZnJvbSAnZnMtZXh0cmEnXG5pbXBvcnQgeyBjaHVua05hbWVGcm9tRmlsZSB9IGZyb20gJy4uL3V0aWxzL2NodW5rQnVpbGRlcidcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgc3RhdGUgPT4ge1xuICBjb25zdCB7XG4gICAgY29uZmlnOiB7IHBhdGhzIH0sXG4gICAgdGVtcGxhdGVzLFxuICB9ID0gc3RhdGVcblxuICBjb25zdCBmaWxlID0gYFxuJHtcbiAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJ1xuICAgID8gYFxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHVuaXZlcnNhbCwgeyBzZXRIYXNCYWJlbFBsdWdpbiB9IGZyb20gJ3JlYWN0LXVuaXZlcnNhbC1jb21wb25lbnQnXG5cbnNldEhhc0JhYmVsUGx1Z2luKClcblxuY29uc3QgdW5pdmVyc2FsT3B0aW9ucyA9IHtcbiAgbG9hZGluZzogKCkgPT4gbnVsbCxcbiAgZXJyb3I6IHByb3BzID0+IHtcbiAgICBjb25zb2xlLmVycm9yKHByb3BzLmVycm9yKTtcbiAgICByZXR1cm4gPGRpdj5BbiBlcnJvciBvY2N1cnJlZCBsb2FkaW5nIHRoaXMgcGFnZSdzIHRlbXBsYXRlLiBNb3JlIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgY29uc29sZS48L2Rpdj47XG4gIH0sXG4gIGlnbm9yZUJhYmVsUmVuYW1lOiB0cnVlXG59XG5cbiR7dGVtcGxhdGVzXG4gIC5tYXAoKHRlbXBsYXRlLCBpbmRleCkgPT4ge1xuICAgIGxldCBjaHVua05hbWUgPSAnJ1xuXG4gICAgLy8gcmVsYXRpdmUgcmVzb2x2aW5nIHByb2R1Y2VzIHRoZSB3cm9uZyBwYXRoLCBhIFwiLi4vXCIgaXMgbWlzc2luZ1xuICAgIC8vIGFzIHRoZSBmaWxlcyBsb29rcyBlcXVhbCwgd2Ugc2ltcGxlIHVzZSBhbiBhYnNvbHV0ZSBwYXRoIHRoZW5cblxuICAgIGlmICghcGF0aHMuRElTVC5zdGFydHNXaXRoKHBhdGhzLlJPT1QpKSB7XG4gICAgICBjaHVua05hbWUgPSBgLyogd2VicGFja0NodW5rTmFtZTogXCIke2NodW5rTmFtZUZyb21GaWxlKHRlbXBsYXRlKX1cIiAqL2BcbiAgICB9XG5cbiAgICByZXR1cm4gYGNvbnN0IHRfJHtpbmRleH0gPSB1bml2ZXJzYWwoaW1wb3J0KCcke3RlbXBsYXRlfScke2NodW5rTmFtZX0pLCB1bml2ZXJzYWxPcHRpb25zKVxuICAgICAgdF8ke2luZGV4fS50ZW1wbGF0ZSA9ICcke3RlbXBsYXRlfSdcbiAgICAgIGBcbiAgfSlcbiAgLmpvaW4oJ1xcbicpfVxuXG4vLyBUZW1wbGF0ZSBNYXBcbmV4cG9ydCBkZWZhdWx0IHtcbiAgJHt0ZW1wbGF0ZXMubWFwKCh0ZW1wbGF0ZSwgaW5kZXgpID0+IGAnJHt0ZW1wbGF0ZX0nOiB0XyR7aW5kZXh9YCkuam9pbignLFxcbicpfVxufVxuLy8gTm90IEZvdW5kIFRlbXBsYXRlXG5leHBvcnQgY29uc3Qgbm90Rm91bmRUZW1wbGF0ZSA9ICR7SlNPTi5zdHJpbmdpZnkodGVtcGxhdGVzWzBdKX1cbmBcbiAgICA6IGBcblxuLy8gVGVtcGxhdGUgTWFwXG5leHBvcnQgZGVmYXVsdCB7XG4gICR7dGVtcGxhdGVzXG4gICAgLm1hcCh0ZW1wbGF0ZSA9PiBgJyR7dGVtcGxhdGV9JzogcmVxdWlyZSgnJHt0ZW1wbGF0ZX0nKS5kZWZhdWx0YClcbiAgICAuam9pbignLFxcbicpfVxufVxuXG5leHBvcnQgY29uc3Qgbm90Rm91bmRUZW1wbGF0ZSA9ICcke3RlbXBsYXRlc1swXX0nXG5gXG59XG5gXG5cbiAgY29uc3QgZHluYW1pY1JvdXRlc1BhdGggPSBwYXRoLmpvaW4ocHJvY2Vzcy5lbnYuUkVBQ1RfU1RBVElDX1RFTVBMQVRFU19QQVRIKVxuICBhd2FpdCBmcy5yZW1vdmUoZHluYW1pY1JvdXRlc1BhdGgpXG4gIGF3YWl0IGZzLm91dHB1dEZpbGUoZHluYW1pY1JvdXRlc1BhdGgsIGZpbGUpXG5cbiAgLy8gV2UgaGF2ZSB0byB3YWl0IGhlcmUgZm9yIGEgc21pZGdlLCBiZWNhdXNlIHdlYnBhY2sgd2F0Y2hlciBpc1xuICAvLyBvdmVybHkgYWdncmVzc2l2ZSBvbiBmaXJzdCBzdGFydFxuICAvLyBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgNTAwKSlcblxuICByZXR1cm4gc3RhdGVcbn1cbiJdfQ==