@sanpjs/core
Version:
@sanpjs/core
68 lines • 1.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/* eslint-disable no-unused-vars */
var ServerType;
(function (ServerType) {
ServerType["HTTP"] = "http";
ServerType["EXPRESS"] = "express";
ServerType["KOA"] = "koa";
})(ServerType || (ServerType = {}));
;
/* eslint-enable no-unused-vars */
let serverType = ServerType.HTTP;
const createHttpRequest = (request, response) => {
return {
request,
response,
};
};
const createExpressContext = (request, response) => {
return {
query: request.query,
request,
response,
};
};
const createKoaContext = (request, response) => {
return {
query: request.query,
request: request.req,
response: response.res,
};
};
const createWebContext = () => {
const url = new URL(window.location.href);
const query = {};
url.searchParams.forEach((value, key) => {
query[key] = value;
});
return {
query: query,
};
};
exports.default = ({ request, response }) => {
const isServer = typeof window === 'undefined';
let context = {
isServer
};
if (isServer) {
switch (serverType) {
case ServerType.EXPRESS:
Object.assign(context, createExpressContext(request, response));
break;
case ServerType.KOA:
Object.assign(context, createKoaContext(request, response));
break;
case ServerType.HTTP:
Object.assign(context, createHttpRequest(request, response));
break;
default:
throw new Error('未知的服务端类型, 当前支持:Express,Koa,http');
}
}
else {
Object.assign(context, createWebContext());
}
return context;
};
//# sourceMappingURL=createRenderContext.js.map