import { EggAppConfig, EggAppInfo, PowerPartial } from 'egg';
const path = require('path');

export default (appInfo: EggAppInfo) => {
  const config = {} as PowerPartial<EggAppConfig>;

  // override config from framework / plugin
  // use for cookie sign key, should change to your own and keep security
  config.keys = appInfo.name + '_1597499383757_3508';
  config.security = {
    csrf: {
      enable: false,
    },
    domainWhiteList: [ '*' ],
  };
  config.cors = {
    origin: '*', // 匹配规则  域名+端口  *则为全匹配
    allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH',
  };
  // add your egg config in here
  config.middleware = [ 'parmsDecode' ];

  config.mongoose = {
    url: 'mongodb://127.0.0.1/zyz', // 内网
    options: { useNewUrlParser: true, useUnifiedTopology: true },
  };
  config.redis = {
    url: '127.0.0.1', // 内网
    pw: ''
  };

  // config.alinode = {
  //   appid: '86043',
  //   secret: '54ef0364995b0c4f2ab42150e29ad30df8327a3a',
  //   error_log: [ '${appInfo.root}/logs/${appInfo.name}/zyz-web.log', '${appInfo.root}/logs/${appInfo.name}/common-error.log', '${appInfo.root}/logs/${appInfo.name}/egg-agent.log' ],
  //   packages: [ '${appInfo.baseDir}/package.json' ],
  // };

  config.xtransit = {
    server: 'ws://127.0.0.1:9092',
    appId: 1,
    appSecret: '6b7b40d3787d9f041b0f9d2688c28631'
  };

  config.view = {
    root: path.join(appInfo.baseDir, '/app/public'),
    defaultViewEngine: 'nunjucks',
    mapping: {
      '.html': 'nunjucks' //左边写成.html后缀，会自动渲染.html文件
    },
  };

  config.decodeParm = false;
  
  config.static = {
    prefix: '/',
    dir: path.join(appInfo.baseDir, '/app/public'),
  };


  // add your special config in here
  const bizConfig = {
    sourceUrl: `https://github.com/eggjs/examples/tree/master/${appInfo.name}`,
  };

  // the return config will combines to EggAppConfig
  return {
    ...config,
    ...bizConfig,
  };
};
