@sheto/static
Version:
一个简单易用的前端静态网页运行工具库
57 lines (56 loc) • 2.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = default_1;
var logger_1 = require("../core/logger");
/**
* @name 解析代理配置字符串
* @param {string} _Str 传入的代理配置
*/
function ParseProxyString(_Str) {
if (_Str === void 0) { _Str = '/'; }
// 是否只设置了前缀
var proxyString = /^\//.test(_Str) ? "127.0.0.1".concat(_Str) : _Str;
// 分割prefix和server
var _a = proxyString.split(/(?<!\/)\/(?!\/)/), server = _a[0], _b = _a[1], prefix = _b === void 0 ? 'api' : _b;
// 是否传递了协议
// 如果没有传递协议,默认http
if (/^(http)/.test(server) === false) {
server = "http://".concat(server);
}
return { server: server, prefix: prefix };
}
/**
* @param {{proxy:string}} _Config 传入的配置
*/
function default_1(_Config) {
var _a;
// 更新参数配置
Object.assign(_Config, ParseProxyString(_Config.proxy));
try {
var createProxyMiddleware = require('http-proxy-middleware').createProxyMiddleware;
// 相关配置信息提示
logger_1.default.info("\u4EE3\u7406\u670D\u52A1\u542F\u52A8\u6210\u529F\uFF0C/".concat(_Config.prefix, "\u5F00\u5934\u7684\u8BF7\u6C42\u5C06\u88AB\u8F6C\u53D1\u5230").concat(_Config.server));
if (createProxyMiddleware) {
return createProxyMiddleware({
target: _Config.server,
changeOrigin: true,
logger: logger_1.default,
pathRewrite: (_a = {},
_a["^/".concat(_Config.prefix)] = '',
_a)
});
}
}
catch (_b) {
var tips_1 = '如需代理,你需要自己安装代理相关依赖,npm install http-proxy-middleware -D';
// 失败后进行友情提示
logger_1.default.warn(tips_1);
return function (_req, _res) {
// 结束请求
_res.end(tips_1, 'utf-8');
// 进行友情提示
logger_1.default.warn(tips_1);
};
}
}
;