import map from "./map";
import _flatten from "../internals/_flatten";
import curry2 from "../function/curry2";
import { isNil } from "../logic";
/**
* Maps a function over a list and concatenates the results.
* Dispatches to the `chain` method of the second argument, if one exists.
*
* @param {function} fn
* @param {any[]} list
* @returns {any[]}
*/
const chain = (fn, list) => {
if (!isNil(list) && typeof list.chain === "function") {
return list.chain(fn);
}
return _flatten(false, map(fn, list));
};
export default curry2(chain);