Source: utils/array.js

/**
 * Apply a function recursively to an array.
 *
 * @template T,U
 * @param {function(T): U} fn The function to apply.
 * @param {T[]} array The array to map.
 * @returns {U[]} The mapped array.
 */
export function recursiveMap(fn, array) {
  if (Array.isArray(array)) {
    return array.map((element) => recursiveMap(fn, element))
  } else {
    return fn(array)
  }
}