code: function normalizeConfig(config, data) {
    const newConfig = Object.assign({}, data.callback.baseConfig, config)
    const { dest, src, watch } = newConfig
    const errors = []
  
    if (dest != null && typeof dest !== 'string' && typeof dest !== 'function') {
      errors.push(`- 'dest' must be a string or a function`)
    }
  
    if (src != null) {
      newConfig.src = toUniqueStrings(newConfig.src)
      if (newConfig.src.length === 0) {
        errors.push(`- 'src' must be a string or an array of strings`)
      }
    }
  
    if (watch === true) {
      if (Array.isArray(newConfig.src) && newConfig.src.length) {
        newConfig.watch = [].concat(newConfig.src)
      }
    } else if (watch) {
      newConfig.watch = toUniqueStrings(newConfig.watch)
      if (newConfig.watch.length === 0) {
        errors.push(`- 'watch' must be boolean, a string or an array of strings`)
      }
    }
  
    if (errors.length > 0) {
      const msg = [
        `Invalid config for '${data.name}'`,
        errors.join('\n'),
        JSON.stringify(config, null, 2)
      ].join('\n')
      handleError(new Error(msg), options.strict ? null : data.errors)
      return
    }
  
    return newConfig
  }
docs: Normalize config object:
  - Merge with baseConfig
  - Check the 'dest', 'src' and 'watch' properties of config objects.
  (They can be missing, but if present they should be valid.)
  @param {object} config
  @param {object} data
  @return {object|undefined}