{"version":3,"sources":["../src/object/assignObject.ts"],"names":["assignObject","target","sources","mapSources","source","index","sourceEntries","k","v","result"],"mappings":";;;;AAkBO,SAASA,CAA0DC,CAAAA,CAAAA,CAAAA,GAAmBC,CAAkB,CAAA,CAC3G,GAAGA,CAAAA,CAAQ,MAAW,GAAA,CAAA,CAAG,OAAOD,CAAAA,CAChC,IAAIE,CAAAA,CAAaD,EAAQ,GAAI,CAAA,CAACE,CAAOC,CAAAA,CAAAA,GAAS,CAC1C,IAAMC,CAAgB,CAAA,MAAA,CAAO,OAAQF,CAAAA,CAAAA,EAAU,EAAE,CACjD,CAAA,OAAGE,CAAc,CAAA,IAAA,CAAK,CAAC,CAACC,CAAAA,CAAEC,CAAC,CAAA,GAAKA,CAAK,GAAA,MAAS,CACnCF,CAAAA,CAAAA,CAAc,MAAO,CAAA,CAACG,CAAW,CAAA,CAACF,CAAEC,CAAAA,CAAC,CACrCA,IAAAA,CAAAA,GAAI,SACHC,CAAOF,CAAAA,CAAC,CAAIC,CAAAA,CAAAA,CAAAA,CAETC,CACT,CAAA,CAAA,EAAE,CAAA,CAEGL,CAEf,CAAC,CACD,CAAA,OAAQ,MAAO,CAAA,MAAA,CAAOH,CAAe,CAAA,GAAGE,CAAU,CACtD","file":"chunk-PJ3XIT5V.mjs","sourcesContent":["/**\n * \n * 使用方法与object.assign一样，差别在于\n * \n *  Object.assign({a:1},{a:undefined}) === {a:undefined}\n * \n *  assignObject({a:1},{a:undefined}) === {a:1}\n * \n * 会忽略掉里面的undefined\n * \n *  当最后一参数是函数时传入(key)=>boolean，表示只有返回true时才会覆盖\n * \n \n * \n\n * \n */\n\nexport function assignObject<T extends Record<any,any> = Record<any,any>>(target:object , ...sources: any[]): T{   \n    if(sources.length === 0) return target as any;\n    let mapSources = sources.map((source,index) =>{\n        const sourceEntries = Object.entries(source || {})\n        if(sourceEntries.some(([k,v]) =>v ===undefined)){\n            return sourceEntries.reduce((result:any,[k,v])=>{\n                if(v!==undefined){\n                    result[k] = v\n                }\n                return result\n            },{})\n        }else{\n            return source\n        }\n    })\n    return  Object.assign(target as any, ...mapSources);\n}\n\n "]}