// Fetch value from key in map // ------------------------------------------------------------------------------- // @param $map [map] : map to fetch from // @param $keys [list] : list of keys // ------------------------------------------------------------------------------- // @return fetched literal | false @function map-fetch($map, $keys) { $key: nth($keys, 1); $length: length($keys); $value: map-get($map, $key); // check if the key was incorrect, meaning the map doesn't exist @if $value == null { @warn "Invalid arguments passed to function: map-fetch(#{$map}, #{$keys}). One or more of the keys do not exist."; @return false; } @else { @if $length > 1 { $rest: (); @for $i from 2 through $length { $rest: append($rest, nth($keys, $i)) } @return map-fetch($value, $rest); } @else { @return $value; } } }