QueryString constructor

QueryString(
  1. String? query
)

Implementation

QueryString(this.query)
    : _queries = (query ?? "")
          .splitKeep(RegExp(r'(\|\||\+\+|>>>|>>(?!=))'))
          .map((e) => e.trim())
          .where((e) => e.isNotEmpty)
          .fold((true, false, <QueryPart>[]), (result, v) {
            final (required, isPipe, l) = result;
            if (v == '||') {
              return (false, false, l);
            } else if (v == '++') {
              return (true, false, l);
            } else if (v == '>>') {
              return (true, true, l);
            } else {
              l.add(QueryPart.parse(v, required: required, isPipe: isPipe));
              return (required, false, l);
            }
          })
          .$3
          .toList();