setByPath function

void setByPath(
  1. Map<String, dynamic> obj,
  2. String path,
  3. dynamic value
)

Implementation

void setByPath(Map<String, dynamic> obj, String path, dynamic value) {
  final keys = path.split('.');
  final lastKey = keys.removeLast();
  Map<String, dynamic> current = obj;

  for (final key in keys) {
    if (!current.containsKey(key) || current[key] is! Map) {
      current[key] = <String, dynamic>{};
    }
    current = current[key] as Map<String, dynamic>;
  }

  current[lastKey] = value;
}