@modern-js/server-core
Version:
A Progressive React Framework for modern web development.
116 lines (115 loc) • 4.66 kB
JavaScript
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
import { _ as _type_of } from "@swc/helpers/_/_type_of";
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
import { createRender } from "./render";
var injectRenderHandlerPlugin = function(param) {
var staticGenerate = param.staticGenerate, cacheConfig = param.cacheConfig;
return {
name: "@modern-js/plugin-inject-render",
setup: function setup(api) {
return {
prepare: function prepare() {
return _async_to_generator(function() {
var _api_useAppContext, pwd, routes, metaName, config, hookRunner, onFallback, getRenderHandlerOptions, render;
return _ts_generator(this, function(_state) {
switch (_state.label) {
case 0:
_api_useAppContext = api.useAppContext(), pwd = _api_useAppContext.distDirectory, routes = _api_useAppContext.routes, metaName = _api_useAppContext.metaName;
config = api.useConfigContext();
hookRunner = api.useHookRunners();
if (!routes) {
return [
2
];
}
onFallback = function() {
var _ref = _async_to_generator(function(reason, utils, error) {
return _ts_generator(this, function(_state2) {
switch (_state2.label) {
case 0:
return [
4,
hookRunner.fallback(_object_spread_props(_object_spread({
reason
}, utils), {
error
}))
];
case 1:
_state2.sent();
return [
2
];
}
});
});
return function onFallback2(reason, utils, error) {
return _ref.apply(this, arguments);
};
}();
getRenderHandlerOptions = {
pwd,
routes,
config,
metaName,
// TODO: support modern.server.ts cache config
cacheConfig,
staticGenerate,
onFallback
};
return [
4,
getRenderHandler(getRenderHandlerOptions)
];
case 1:
render = _state.sent();
api.setAppContext(_object_spread_props(_object_spread({}, api.useAppContext()), {
render,
getRenderOptions: getRenderHandlerOptions
}));
return [
2
];
}
});
})();
}
};
}
};
};
function getRenderHandler(_) {
return _getRenderHandler.apply(this, arguments);
}
function _getRenderHandler() {
_getRenderHandler = _async_to_generator(function(param) {
var pwd, routes, config, cacheConfig, metaName, staticGenerate, onFallback, _config_server, _config_security, ssrConfig, forceCSR, render;
return _ts_generator(this, function(_state) {
pwd = param.pwd, routes = param.routes, config = param.config, cacheConfig = param.cacheConfig, metaName = param.metaName, staticGenerate = param.staticGenerate, onFallback = param.onFallback;
ssrConfig = (_config_server = config.server) === null || _config_server === void 0 ? void 0 : _config_server.ssr;
forceCSR = (typeof ssrConfig === "undefined" ? "undefined" : _type_of(ssrConfig)) === "object" ? ssrConfig.forceCSR : false;
render = createRender({
routes,
pwd,
config,
staticGenerate,
cacheConfig,
forceCSR,
nonce: (_config_security = config.security) === null || _config_security === void 0 ? void 0 : _config_security.nonce,
metaName: metaName || "modern-js",
onFallback
});
return [
2,
render
];
});
});
return _getRenderHandler.apply(this, arguments);
}
export {
getRenderHandler,
injectRenderHandlerPlugin
};