/**
* @file 合併選項.js
* @module 合併選項
*/
從 './obj' 導入 {each, isPlain};
/**
* 遞歸合併兩個對象。
*
* 像這樣執行深度合併
* {@link https://lodash.com/docs/4.17.10#merge|lodash.merge},但僅合併
* 普通對象(不是數組、元素或其他任何東西)。
*
* 非普通對象值將直接從最右邊複製
* 爭論。
*
* @靜止的
* @param {Object[]} 來源
* 一個或多個對象合併成一個新的對象。
*
* @return {對象}
* 一個新對象,它是所有源的合併結果。
*/
功能合併選項(...來源){
常量結果 = {};
sources.forEach(來源=>{
如果(!來源){
返回;
}
每個(源,(值,鍵)=> {
如果(!isPlain(值)){
結果[鍵] = 值;
返回;
}
如果(!isPlain(結果[鍵])){
結果[鍵] = {};
}
結果[鍵] = mergeOptions(結果[鍵], 值);
});
});
返回結果;
}
導出默認合併選項;