Source

removeNodebffPrefix.js

/**
 * add host for url & remove node bff
 * @param {string} url url needed to be handle
 * @param {string} env the build env
 * @param {boolean} forceAddHost is force to add host to all url
 * @param {string} prefix url with special prefix will be replace to empty
 * @returns {string} the new url be handled
 */
function removeNodebffPrefix(url, env = 'prod', forceAddHost = false, prefix = '/bendbff') {
  const isWholeUrl = url.indexOf('http') === 0 || url.indexOf('//') === 0;
  const isNeedUpdate = url.indexOf(prefix) === 0;
  if (isWholeUrl) {
    // 完整url不需要处理
    return url;
  }
  if (!forceAddHost && !isNeedUpdate) {
    // 没有特殊前缀,且不需要强制添加host的,不需要处理
    return url;
  }
  let hostname = '//gateway.ewt360.com';
  switch (env) {
    case 'sit':
    case 'sit-local':
      hostname = '//gateway.test.mistong.com';
      break;
    case 'pre':
    case 'pre-local':
    case 'prod':
    case 'prod-local':
      // 预发和生产环境保持域名一致,确保预发看到的和生产看到的代码是一致的
      // 现在web项目没有预发域名,这里配置预发域名以后
      // 本地仍然要切到预发host才可以查看预发效果
      // 所以暂时不使用预发域名
      // hostname = '//pre-gateway.ewt360.com';
      // break;
      hostname = '//gateway.ewt360.com';
      break;
    default:
      hostname = '//gateway.ewt360.com';
  }
  return `${hostname}${url.replace(prefix, '')}`;
}

export default removeNodebffPrefix;