parseQuery static method

List<QueryToken> parseQuery(
  1. String query
)

Implementation

static List<QueryToken> parseQuery(String query) {
  final tokens = <QueryToken>[];
  final regex = RegExp(
    r'(-?)(?:([a-zA-Z0-9_]+):)?([<>=]+)?(?:\"([^\"]*)\"|([^\s]+))',
  );

  for (final match in regex.allMatches(query)) {
    final isExcl = match.group(1) == '-';
    final field = match.group(2);
    final op = match.group(3);
    final val = match.group(4) ?? match.group(5);
    if (val != null && val.isNotEmpty) {
      tokens.add(
        QueryToken(
          isExclusion: isExcl,
          field: field,
          operator: op,
          value: val,
        ),
      );
    }
  }
  return tokens;
}