const slash = require('slash2');
const proxy = require('./proxy');
const defaultSetting = require('./defaultSetting');
const { REACT_APP_ENV } = process.env;
module.exports = {
  // mfsu: {},
  webpack5: {},
  base: '/civbase',
  title: '熊猫智慧城市监控管理解决方案',
  hash: true,
  layout: {
    siderWidth: '145px',
    locale: true,
    ...defaultSetting,
  },
  fastRefresh: true,
  useHash: true,
  locale: {
    default: 'zh-CN',
    antd: true,
    baseNavigator: true,
  },
  dynamicImport: {
    loading: '@ant-design/pro-layout/es/PageLoading',
  },
  // theme: {
  //   '@primary-color': '#ff9600',
  // },
  ignoreMomentLocale: true,
  nodeModulesTransform: {
    type: 'none',
    exclude: [
      '@wisdom-map/arcgismap',
      '@wisdom-map/arcgismap/lib/arcgisapi',
      'swagger-ui-react',
    ],
  },
  proxy: proxy[REACT_APP_ENV || 'dev'],
  // openAPI: {
  //   requestLibPath: "import { request } from '@wisdom-utils/utils'",
  //   schemaPath: 'http://192.168.10.150:8777/Publish/OMS/swagger/v1/swagger.json',
  //   mock: false,
  // },
  postcssLoader: {},
  styleLoader: {},
  cssLoader: {
    modules: {
      getLocalIdent: (context, _, localName) => {
        if (
          context.resourcePath.includes('node_modules') ||
          context.resourcePath.includes('ant.design.pro.less') ||
          context.resourcePath.includes('global.less') ||
          context.resourcePath.includes('ThemeColor.less')
        ) {
          return localName;
        }

        const match = context.resourcePath.match(/src(.*)/);

        if (match && match[1]) {
          const antdProPath = match[1].replace('.less', '');
          const arr = slash(antdProPath)
            .split('/')
            .map(a => a.replace(/([A-Z])/g, '-$1'))
            .map(a => a.toLowerCase());
          return `panda-console-base${arr.join('-')}-${localName}`.replace(
            /--/g,
            '-',
          );
        }
        return localName;
      },
    },
  },
  lessLoader: {
    modifyVars: {
      // hack: `true; @import "~@/global.less";`,
      '@ant-prefix': 'panda-console-base',
      '@iconPrefixCls': 'panda-console-base-icon',
    },
    javascriptEnabled: true,
  },
  workerLoader: {},
  // esbuild: {}
};
