{"version":3,"sources":["../../../src/lib/mergeObjects.ts"],"names":["isObject"],"mappings":";;;;;;AAOO,SAAS,YAAA,CAAiD,WAAc,SAA+B,EAAA;AAC7G,EAAA,KAAA,MAAW,CAAC,GAAK,EAAA,KAAK,KAAK,MAAO,CAAA,OAAA,CAAQ,SAAS,CAAG,EAAA;AACrD,IAAA,MAAM,WAAc,GAAA,OAAA,CAAQ,GAAI,CAAA,SAAA,EAAW,GAAG,CAAA;AAC9C,IAAI,IAAAA,qBAAA,CAAS,KAAK,CAAG,EAAA;AACpB,MAAQ,OAAA,CAAA,GAAA,CAAI,SAAW,EAAA,GAAA,EAAKA,qBAAS,CAAA,WAAW,IAAI,YAAa,CAAA,WAAA,EAAa,KAAe,CAAA,GAAI,KAAK,CAAA;AAAA,KAC5F,MAAA,IAAA,CAACA,qBAAS,CAAA,WAAW,CAAG,EAAA;AAClC,MAAQ,OAAA,CAAA,GAAA,CAAI,SAAW,EAAA,GAAA,EAAK,KAAK,CAAA;AAAA;AAClC;AAGD,EAAO,OAAA,SAAA;AACR;AAXgB,MAAA,CAAA,YAAA,EAAA,cAAA,CAAA","file":"mergeObjects.cjs","sourcesContent":["import { isObject } from './isObject';\n\n/**\n * Merges two objects\n * @param objTarget The object to be merged\n * @param objSource The object to merge\n */\nexport function mergeObjects<A extends object, B extends object>(objTarget: A, objSource: Readonly<B>): A & B {\n\tfor (const [key, value] of Object.entries(objSource)) {\n\t\tconst targetValue = Reflect.get(objTarget, key);\n\t\tif (isObject(value)) {\n\t\t\tReflect.set(objTarget, key, isObject(targetValue) ? mergeObjects(targetValue, value as object) : value);\n\t\t} else if (!isObject(targetValue)) {\n\t\t\tReflect.set(objTarget, key, value);\n\t\t}\n\t}\n\n\treturn objTarget as A & B;\n}\n"]}