inventor-view-react-redux
Version:
144 lines (128 loc) • 6 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = _default;
var _react = _interopRequireDefault(require("react"));
/**
* 通用页面框架
*
* @author : sunkeysun
*/
function _getAssetLink() {
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
publicHost: ''
},
link = _ref.link,
publicHost = _ref.publicHost;
return /^(https?:)|(\/\/)/.test(link) ? link : "".concat(publicHost).concat(link);
}
function _default() {
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var _props$locals = props.locals,
locals = _props$locals === void 0 ? {} : _props$locals,
_props$nodeEnv = props.nodeEnv,
nodeEnv = _props$nodeEnv === void 0 ? '' : _props$nodeEnv,
_props$appHTML = props.appHTML,
appHTML = _props$appHTML === void 0 ? '' : _props$appHTML,
_props$initialState = props.initialState,
initialState = _props$initialState === void 0 ? {} : _props$initialState,
_props$appPath = props.appPath,
appPath = _props$appPath === void 0 ? '' : _props$appPath,
_props$appName = props.appName,
appName = _props$appName === void 0 ? '' : _props$appName,
_props$commonPath = props.commonPath,
commonPath = _props$commonPath === void 0 ? '' : _props$commonPath,
_props$vendorPath = props.vendorPath,
vendorPath = _props$vendorPath === void 0 ? '' : _props$vendorPath,
_props$ssr = props.ssr,
ssr = _props$ssr === void 0 ? false : _props$ssr,
_props$publicHost = props.publicHost,
publicHost = _props$publicHost === void 0 ? '' : _props$publicHost,
_props$rootDomId = props.rootDomId,
rootDomId = _props$rootDomId === void 0 ? '' : _props$rootDomId,
_props$constants = props.constants,
constants = _props$constants === void 0 ? {} : _props$constants,
_props$ignoreAssetHas = props.ignoreAssetHash,
ignoreAssetHash = _props$ignoreAssetHas === void 0 ? false : _props$ignoreAssetHas;
var _require = require("".concat(vendorPath, "/addon")),
_require$jsList = _require.jsList,
vendorJsList = _require$jsList === void 0 ? [] : _require$jsList,
_require$cssList = _require.cssList,
vendorCssList = _require$cssList === void 0 ? [] : _require$cssList;
var _require2 = require("".concat(commonPath, "/addon")),
_require2$jsList = _require2.jsList,
commonJsList = _require2$jsList === void 0 ? [] : _require2$jsList,
_require2$cssList = _require2.cssList,
commonCssList = _require2$cssList === void 0 ? [] : _require2$cssList;
var _require3 = require("".concat(appPath, "/").concat(appName, "/addon")),
_require3$jsList = _require3.jsList,
appJsList = _require3$jsList === void 0 ? [] : _require3$jsList,
_require3$cssList = _require3.cssList,
appCssList = _require3$cssList === void 0 ? [] : _require3$cssList;
var realJsList = vendorJsList.concat(commonJsList).concat(appJsList);
var realCssList = vendorCssList.concat(commonCssList).concat(appCssList);
var localJsList = _.get(locals, 'JS_LIST', []);
var localCssList = _.get(locals, 'CSS_LIST', []);
if (localJsList.length) {
realJsList = localJsList;
}
if (localCssList.length) {
realCssList = localCssList;
}
if (ignoreAssetHash) {
realJsList = _.map(realJsList, function (js) {
return js.replace(/(.*)\.\w{10,}\.js$/, '$1.js');
});
realCssList = _.map(realCssList, function (css) {
return css.replace(/(.*)\.\w{10,}\.css$/, '$1.css');
});
}
var initialStateJson = JSON.stringify(initialState);
var contantsJson = JSON.stringify(locals.CONSTANTS);
return /*#__PURE__*/_react["default"].createElement("html", null, /*#__PURE__*/_react["default"].createElement("head", null, /*#__PURE__*/_react["default"].createElement("meta", {
httpEquiv: "keywords",
content: locals.PAGE_KEYWORDS
}), /*#__PURE__*/_react["default"].createElement("meta", {
httpEquiv: "description",
content: locals.PAGE_DESCRIPTION
}), /*#__PURE__*/_react["default"].createElement("meta", {
httpEquiv: "Content-Type",
content: "text/html; charset=UTF-8"
}), /*#__PURE__*/_react["default"].createElement("meta", {
httpEquiv: "X-UA-Compatible",
content: "IE=edge,chrome=1"
}), /*#__PURE__*/_react["default"].createElement("meta", {
name: "viewport",
content: "width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1"
}), /*#__PURE__*/_react["default"].createElement("title", null, locals.PAGE_TITLE), _.map(realCssList, function (css, index) {
return /*#__PURE__*/_react["default"].createElement("link", {
key: index,
href: _getAssetLink({
link: css,
publicHost: publicHost
}),
rel: "stylesheet",
media: "screen"
});
}), /*#__PURE__*/_react["default"].createElement("script", {
dangerouslySetInnerHTML: {
__html: "\n window.__SSR__ = ".concat(ssr, "\n window.__INITIAL_STATE__ = ").concat(initialStateJson, "\n window.__NODE_ENV__ = '").concat(nodeEnv, "'\n window.__APP_NAME__ = '").concat(appName, "'\n window.__ROOT_DOM_ID__ = '").concat(rootDomId, "'\n window.__CONSTANTS__ = ").concat(contantsJson, "\n ")
}
})), /*#__PURE__*/_react["default"].createElement("body", null, /*#__PURE__*/_react["default"].createElement("div", {
id: rootDomId,
dangerouslySetInnerHTML: {
__html: appHTML
}
}), _.map(realJsList, function (js, index) {
return /*#__PURE__*/_react["default"].createElement("script", {
key: index,
type: "text/javascript",
src: _getAssetLink({
link: js,
publicHost: publicHost
})
});
})));
}