parseNamedArgs function

QueryWithArgs parseNamedArgs(
  1. String query,
  2. Map<String, dynamic> params
)

Parse a query with named arguments into a raw query + argument values.

Implementation

QueryWithArgs parseNamedArgs(String query, Map<String, dynamic> params) {
  final exp = RegExp(r":([\w]+)");
  List<Object?> arguments = [];
  RegExpMatch? match;

  while ((match = exp.firstMatch(query)) != null) {
    final name = query.substring(match!.start + 1, match.end);
    query = query.replaceRange(match.start, match.end, '?');
    arguments.add(params[name]);
  }

  return QueryWithArgs(query, arguments);
}