UNPKG

@sanpjs/core

Version:

@sanpjs/core

68 lines 1.89 kB
"use strict"; 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