text: /* @flow */
  "use strict";
  
  /**
   * Checks if a string contains a value. The comparison value can be a string or
   * an array of strings.
   *
   * Any strings starting and ending with `/` are ignored. Use the
   * matchesStringOrRegExp() util to match regexes.
   */
  module.exports = function containsString(
    input /*: string*/,
    comparison /*: string | Array<string>*/
  ) /*: false | { match: string, pattern: string }*/ {
    if (!Array.isArray(comparison)) {
      return testAgainstString(input, comparison);
    }
  
    for (const comparisonItem of comparison) {
      const testResult = testAgainstString(input, comparisonItem);
      if (testResult) {
        return testResult;
      }
    }
    return false;
  };
  
  function testAgainstString(value, comparison) {
    if (!comparison) return false;
    if (comparison[0] === "/" && comparison[comparison.length - 1] === "/") {
      return false;
    }
  
    if (value.indexOf(comparison) >= 0) {
      return { match: value, pattern: comparison };
    }
  
    return false;
  }
  