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