parseEngine method

Engine? parseEngine(
  1. String userAgent
)

Parse an Engine from the userAgent string.

Returns null if no match.

Implementation

Engine? parseEngine(String userAgent) {
  for (EngineParser engineParser in engineParsers) {
    for (String regex in engineParser.regexes) {
      RegExp regExp = RegExp(regex, caseSensitive: false);

      if (regExp.hasMatch(userAgent)) {
        Iterable<RegExpMatch> matches = regExp.allMatches(userAgent);
        String unformattedName =
            matches.first.namedGroup('unformattedName') ??
                engineParser.name.toLowerCase();
        String version = matches.first.namedGroup('version') ?? '';

        return Engine(
          name: engineParser.name,
          unformattedName: unformattedName,
          version: version,
          parsedWithRegex: regex,
        );
      }
    }
  }

  return null;
}