presetToArguments function

List<String> presetToArguments(
  1. Map<String, dynamic> preset
)

Converts a preset map into a list of CLI-style arguments.

Handles the following value types:

  • String or num['--key', 'value']
  • bool true['--key']
  • bool false → skipped (flags are non-negatable, false is default)
  • List['--key', 'v1', '--key', 'v2'] for each element

Implementation

List<String> presetToArguments(Map<String, dynamic> preset) {
  final args = <String>[];
  for (final entry in preset.entries) {
    final key = entry.key;
    final value = entry.value;

    if (value is bool) {
      if (value) {
        args.add('--$key');
      }
      // false → skip, non-negatable flags default to false
    } else if (value is List) {
      for (final item in value) {
        args
          ..add('--$key')
          ..add(item.toString());
      }
    } else {
      args
        ..add('--$key')
        ..add(value.toString());
    }
  }
  return args;
}