保誠-保戶業務員媒合平台
HelenHuang
2022-06-09 9bdb95c9e34cef640534e5e5a1e2225a80442000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
'use strict';
 
const httpProxyMiddleware = require('http-proxy-middleware');
 
function getProxyEntries(proxyOptions, defaults) {
  const applyDefaults = (opts) => ({...defaults, ...opts});
  const normalizeTarget = (input) => typeof input === "object" ? input : {target: input};
  const proxyEntries = [];
  if (!proxyOptions) {
    return proxyEntries;
  }
  if (!Array.isArray(proxyOptions)) {
    for (const key in proxyOptions) {
      proxyEntries.push({
        context: key,
        options: applyDefaults(normalizeTarget(proxyOptions[key]))
      });
    }
    return proxyEntries;
  }
  for (const input of proxyOptions) {
    if (Array.isArray(input)) {
      proxyEntries.push({
        context: input[0],
        options: applyDefaults(normalizeTarget(input[1]))
      });
    } else {
      proxyEntries.push({
        context: input,
        options: applyDefaults()
      });
    }
  }
  return proxyEntries;
}
 
const proxyModule = function(options2) {
  const nuxt = this.nuxt;
  if (!nuxt.options.server || !nuxt.options.proxy) {
    return;
  }
  const defaults = {
    changeOrigin: true,
    ws: true,
    ...options2
  };
  const proxyEntries = getProxyEntries(nuxt.options.proxy, defaults);
  for (const proxyEntry of proxyEntries) {
    this.addServerMiddleware({
      prefix: false,
      handler: httpProxyMiddleware.createProxyMiddleware(proxyEntry.context, proxyEntry.options)
    });
  }
};
proxyModule.meta = require("../package.json");
 
module.exports = proxyModule;