function getProxyConfig()

in modules/builders/src/ssr-dev-server/index.ts [337:371]


function getProxyConfig(root: string, proxyConfig: string): browserSync.MiddlewareHandler[] {
  const proxyPath = pathResolve(root, proxyConfig);
  let proxySettings: any;
  try {
    proxySettings = require(proxyPath);
  } catch (error) {
    if (error.code === 'MODULE_NOT_FOUND') {
      throw new Error(`Proxy config file ${proxyPath} does not exist.`);
    }

    throw error;
  }

  const proxies = Array.isArray(proxySettings) ? proxySettings : [proxySettings];
  const createdProxies = [];

  for (const proxy of proxies) {
    for (const [key, context] of Object.entries(proxy)) {
      if (typeof key === 'string') {
        createdProxies.push(
          createProxyMiddleware(
            key.replace(/^\*$/, '**').replace(/\/\*$/, ''),
            context as any,
          ) as browserSync.MiddlewareHandler,
        );
      } else {
        createdProxies.push(
          createProxyMiddleware(key, context as any) as browserSync.MiddlewareHandler,
        );
      }
    }
  }

  return createdProxies;
}