@lark-apaas/fullstack-rspack-preset 1.0.12-alpha.patch.3 → 1.0.13-alpha.proxy.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/preset.js CHANGED
@@ -12,6 +12,7 @@ const dev_server_listener_1 = require("./utils/dev-server-listener");
12
12
  const route_parser_plugin_1 = __importDefault(require("./rspack-plugins/route-parser-plugin"));
13
13
  const slardar_performance_monitor_plugin_1 = __importDefault(require("./rspack-plugins/slardar-performance-monitor-plugin"));
14
14
  const view_context_injection_plugin_1 = __importDefault(require("./rspack-plugins/view-context-injection-plugin"));
15
+ const dev_server_snapdom_proxy_1 = require("./utils/dev-server-snapdom-proxy");
15
16
  function createRecommendRspackConfig(options) {
16
17
  const { isDev = true, enableReactRefresh = isDev, needRoutes = true, clientBasePath = '', publicPath = '', // 静态资源路径
17
18
  } = options;
@@ -294,6 +295,7 @@ function createRecommendRspackConfig(options) {
294
295
  },
295
296
  setupMiddlewares: (middlewares, devServer) => {
296
297
  if (devServer.app) {
298
+ (0, dev_server_snapdom_proxy_1.registerSnapDomProxyMiddleware)(devServer.app);
297
299
  (0, devtool_kits_1.registerMiddlewares)(devServer.app, [
298
300
  (0, devtool_kits_1.createDevLogsMiddleware)({ logDir: process.env.LOG_DIR || './logs' }),
299
301
  (0, devtool_kits_1.createOpenapiMiddleware)({
@@ -0,0 +1,5 @@
1
+ interface SnapDomMiddlewareOptions {
2
+ proxyUrl?: string;
3
+ }
4
+ export declare function registerSnapDomProxyMiddleware(serverApp: any, options?: SnapDomMiddlewareOptions): void;
5
+ export {};
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.registerSnapDomProxyMiddleware = registerSnapDomProxyMiddleware;
5
+ function registerSnapDomProxyMiddleware(serverApp, options = {}) {
6
+ const { proxyUrl = '/snapdom-proxy' } = options;
7
+ // req: import('express').Request
8
+ // res: import('express').Response
9
+ serverApp.get(proxyUrl, async (req, res) => {
10
+ try {
11
+ let targetUrl = req.query.url;
12
+ if (!targetUrl) {
13
+ return res.status(400).json({ error: 'Missing url parameter' });
14
+ }
15
+ // 解码 URL
16
+ try {
17
+ const decoded = Buffer.from(targetUrl, 'base64').toString('utf-8');
18
+ if (decoded.startsWith('http')) {
19
+ targetUrl = decoded;
20
+ }
21
+ else {
22
+ targetUrl = decodeURIComponent(targetUrl);
23
+ }
24
+ }
25
+ catch {
26
+ targetUrl = decodeURIComponent(targetUrl);
27
+ }
28
+ // 发起请求(无需特殊的跨域配置)
29
+ const response = await fetch(targetUrl);
30
+ const contentType = response.headers.get('content-type');
31
+ if (contentType) {
32
+ res.setHeader('Content-Type', contentType);
33
+ }
34
+ // 返回内容
35
+ const buffer = await response.arrayBuffer();
36
+ res.send(Buffer.from(buffer));
37
+ }
38
+ catch (error) {
39
+ res.status(500).json({
40
+ error: 'Proxy request failed',
41
+ message: error.message,
42
+ });
43
+ }
44
+ });
45
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lark-apaas/fullstack-rspack-preset",
3
- "version": "1.0.12-alpha.patch.3",
3
+ "version": "1.0.13-alpha.proxy.1",
4
4
  "files": [
5
5
  "lib",
6
6
  "patches",