All files / koa-proxy-middleware/lib/base check_params.js

94.12% Statements 16/17
80% Branches 8/10
83.33% Functions 5/6
100% Lines 12/12
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  1x 1x             1x 2x 2x 2x 2x   2x                 2x 1x   5x   2x    
'use strict';
const assert = require('power-assert');
const packageInfo = require('../../package.json');
 
/**
 * 校验参数
 * @param {*} option 代理所需的参数
 * @return {object} 处理后的参数
 */
module.exports = option => {
  const { name } = packageInfo;
  assert.ok(option, `${name}: missing main parameters`);
  assert.ok(option.proxies && Array.isArray(option.proxies), `${name}: missing main parameters`);
  assert.ok(!option.rewrite || typeof option.rewrite === 'function', `${name}: missing main parameters`);
  // 校验全局参数
  const options = {
    proxyTimeout: option.proxyTimeout || 30000,
    logLevel: option.logLevel,
    proxies: option.proxies,
    handleReq: option.handleReq,
    handleRes: option.handleRes,
    handleError: option.error,
  };
  // 判断全局rewrite
  if (option.rewrite === false) {
    options.rewrite = () => path => path.replace(/^\//, '');
  } else {
    options.rewrite = option.rewrite ? () => option.rewrite : pattern => path => path.replace(pattern, '');
  }
  return options;
};