code: function validateOptions (options) {
    // doesn't make sense to pass both, so prevent it
    if (options.includeSheets && options.excludeSheets) {
      throw new Error("Do not pass both `includeSheets` and `excludeSheets`. It's confusing.")
    }
  
    // if `includeSheets` exists and isn't an Array, make it so
    if (options.includeSheets) {
      if (!Array.isArray(options.includeSheets)) options.includeSheets = [options.includeSheets]
    }
  
    // if `excludeSheets` exists and isn't an Array, make it so
    if (options.excludeSheets) {
      if (!Array.isArray(options.excludeSheets)) options.excludeSheets = [options.excludeSheets]
    }
  
    // if `excludeSheets` is set and one of them show up in `overrides`, it won't
    // break anything, but the user should be aware it won't work
    if (options.excludeSheets && options.overrides) {
      const overrides = Object.keys(options.overrides)
  
      overrides.forEach((override) => {
        if (options.excludeSheets.indexOf(override) !== -1) {
          console.warn(`\`${override}\` has an override, but it is also being excluded in \`excludeSheets\`.`)
        }
      })
    }
  
    return options
  }
docs: Validates and normalizes the options passed to `process`.
  
  @private
  @param  {Object} options
  @return {Object}