toPositionalParams static method

List<Object?> toPositionalParams({
  1. required Map<String, Object?> namedParams,
  2. required List<String> paramNames,
})

Converts namedParams to positional list following paramNames order.

Throws ParameterMissingException when a required parameter is missing.

Implementation

static List<Object?> toPositionalParams({
  required Map<String, Object?> namedParams,
  required List<String> paramNames,
}) {
  final missing = <String>[];
  final missingSet = <String>{};
  for (final name in paramNames) {
    if (!namedParams.containsKey(name) && missingSet.add(name)) {
      missing.add(name);
    }
  }

  if (missing.isNotEmpty) {
    throw ParameterMissingException(
      'Missing required parameters: ${missing.join(", ")}',
    );
  }

  return paramNames.map((name) => namedParams[name]).toList();
}