UNPKG

object-flatten-all-arrays

Version:

Merge and flatten any arrays found in all values within plain objects

11 lines (9 loc) 970 B
/** * @name object-flatten-all-arrays * @fileoverview Merge and flatten any arrays found in all values within plain objects * @version 7.1.0 * @author Roy Revelt * @license MIT * {@link https://codsen.com/os/object-flatten-all-arrays/} */ import{merge as y}from"lodash-es";import b from"rfdc";import{isPlainObject as i}from"codsen-utils";var a="7.1.0";var p=b(),A=a,g={flattenArraysContainingStringsToBeEmpty:!1};function c(d,u){function m(t){return t.some(r=>typeof r=="string")}let l={...g,...u},e=p(d),s,n,o;if(Array.isArray(e)){if(l.flattenArraysContainingStringsToBeEmpty&&m(e))return[];s=null,n={},o=0;for(let t=0,r=e.length;t<r;t++)i(e[t])&&(n=y(n,e[t]),s===null?(s=!0,o=t):(e.splice(t,1),t-=1));s!==null&&(e[o]=p(n))}return i(e)?Object.keys(e).forEach(t=>{(i(e[t])||Array.isArray(e[t]))&&(e[t]=c(e[t],l))}):Array.isArray(e)&&e.forEach((t,r)=>{(i(e[r])||Array.isArray(e[r]))&&(e[r]=c(e[r],l))}),e}export{g as defaults,c as flattenAllArrays,A as version};