catalogSetValueByPath function

void catalogSetValueByPath(
  1. Map<String, dynamic> map,
  2. String keyPath,
  3. dynamic value
)

Implementation

void catalogSetValueByPath(
  Map<String, dynamic> map,
  String keyPath,
  dynamic value,
) {
  final parts = keyPath.split('.');
  if (parts.isEmpty) return;

  Map<String, dynamic> current = map;
  for (var index = 0; index < parts.length - 1; index++) {
    final part = parts[index];
    final existing = current[part];
    if (existing is Map<String, dynamic>) {
      current = existing;
      continue;
    }
    final next = <String, dynamic>{};
    current[part] = next;
    current = next;
  }
  current[parts.last] = value;
}