lib/info.js
function smartParse (str, sep1, sep2) {
  sep1 = sep1 || ';'
  sep2 = sep2 || '='
  if ((typeof str === 'string') && str.indexOf(sep1) >= 0) {
    if (str.indexOf(sep2) >= 0) {
      return parseKeyValue(str, sep1, sep2)
    } else {
      return str.split(sep1)
    }
  }
  return str
}
function smartParse (str, sep1, sep2) {
  sep1 = sep1 || ';'
  sep2 = sep2 || '='
  if ((typeof str === 'string') && str.indexOf(sep1) >= 0) {
    if (str.indexOf(sep2) >= 0) {
      return parseKeyValue(str, sep1, sep2)
    } else {
      return str.split(sep1)
    }
  }
  return str
}
function smartParse ( str , sep1 , sep2 ) { sep1 = sep1 || ';' sep2 = sep2 || '=' if ( ( typeof str === 'string' ) && str . indexOf ( sep1 ) >= 0 ) { if ( str . indexOf ( sep2 ) >= 0 ) { return parseKeyValue ( str , sep1 , sep2 ) } else { return str . split ( sep1 ) } } return str }
Split string into list or key-value-pairs depending on whether
the given separator chars appear in the string. This is the logic used by
the old parseInfo function and the default logic used by the new parse
function unless a specific format is defined for an info key.

Ex.:
- smartParse('foo') => 'foo'
- smartParse('foo;bar') => ['foo', 'bar']
- smartParse('foo=1;bar=2') => {foo: 1, bar: 2}

@private
Split string into list or key - value - pairs depending on whether the given separator chars appear in the string . This is the logic used by the old parseInfo function and the default logic used by the new parse function unless a specific format is defined for an info key .