@modern-kit/utils
Version:
1 lines • 2.58 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../src/object/deleteFalsyProperties/index.ts"],"sourcesContent":["import { hasProperty, isArray, isReference } from '../../validator';\n\nexport function deleteFalsyProperties<T extends Record<PropertyKey, any>>(\n source: T\n): T {\n const copiedObj = {} as T;\n\n for (const key in source) {\n if (hasProperty(source, key)) {\n const value = source[key];\n\n if (isReference(value)) {\n // object\n if (!isArray(value)) {\n const newObj = deleteFalsyProperties(value);\n const isNonEmptyObj = !!Object.keys(newObj).length;\n\n if (isNonEmptyObj) {\n copiedObj[key] = newObj;\n }\n continue;\n }\n\n // array\n const newArray = value.reduce((acc: any[], cur: any) => {\n if (typeof cur !== 'object') {\n acc.push(cur);\n return acc;\n }\n const property = deleteFalsyProperties(cur);\n const isNonEmptyObj = !!Object.keys(property).length;\n\n if (isNonEmptyObj) acc.push(property);\n return acc;\n }, []);\n\n if (newArray.length) {\n copiedObj[key] = newArray;\n }\n } else if (\n value ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n ) {\n copiedObj[key] = value;\n }\n }\n }\n\n return copiedObj;\n}\n"],"names":[],"mappings":";;;;;AAEO,SAAS,sBACd,MAAA,EACG;AACH,EAAA,MAAM,YAAY,EAAC;AAEnB,EAAA,KAAA,MAAW,OAAO,MAAA,EAAQ;AACxB,IAAA,IAAI,WAAA,CAAY,MAAA,EAAQ,GAAG,CAAA,EAAG;AAC5B,MAAA,MAAM,KAAA,GAAQ,OAAO,GAAG,CAAA;AAExB,MAAA,IAAI,WAAA,CAAY,KAAK,CAAA,EAAG;AAEtB,QAAA,IAAI,CAAC,OAAA,CAAQ,KAAK,CAAA,EAAG;AACnB,UAAA,MAAM,MAAA,GAAS,sBAAsB,KAAK,CAAA;AAC1C,UAAA,MAAM,gBAAgB,CAAC,CAAC,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,CAAE,MAAA;AAE5C,UAAA,IAAI,aAAA,EAAe;AACjB,YAAA,SAAA,CAAU,GAAG,CAAA,GAAI,MAAA;AAAA,UACnB;AACA,UAAA;AAAA,QACF;AAGA,QAAA,MAAM,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,CAAC,KAAY,GAAA,KAAa;AACtD,UAAA,IAAI,OAAO,QAAQ,QAAA,EAAU;AAC3B,YAAA,GAAA,CAAI,KAAK,GAAG,CAAA;AACZ,YAAA,OAAO,GAAA;AAAA,UACT;AACA,UAAA,MAAM,QAAA,GAAW,sBAAsB,GAAG,CAAA;AAC1C,UAAA,MAAM,gBAAgB,CAAC,CAAC,MAAA,CAAO,IAAA,CAAK,QAAQ,CAAA,CAAE,MAAA;AAE9C,UAAA,IAAI,aAAA,EAAe,GAAA,CAAI,IAAA,CAAK,QAAQ,CAAA;AACpC,UAAA,OAAO,GAAA;AAAA,QACT,CAAA,EAAG,EAAE,CAAA;AAEL,QAAA,IAAI,SAAS,MAAA,EAAQ;AACnB,UAAA,SAAA,CAAU,GAAG,CAAA,GAAI,QAAA;AAAA,QACnB;AAAA,MACF,WACE,KAAA,IACA,OAAO,UAAU,QAAA,IACjB,OAAO,UAAU,SAAA,EACjB;AACA,QAAA,SAAA,CAAU,GAAG,CAAA,GAAI,KAAA;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAEA,EAAA,OAAO,SAAA;AACT;;;;"}