{"version":3,"file":"chainEventHandlers.mjs","names":["chainEventHandlers","first","rest","result","obj","key","value","prev","args"],"sources":["src/chainEventHandlers.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-types */\nexport function chainEventHandlers<T1 extends {}, T2 extends {}>(\n  t1: T1,\n  t2: T2\n): T1 & T2\nexport function chainEventHandlers<T1 extends {}, T2 extends {}, T3 extends {}>(\n  t1: T1,\n  t2: T2,\n  t3: T3\n): T1 & T2 & T3\nexport function chainEventHandlers<\n  T1 extends {},\n  T2 extends {},\n  T3 extends {},\n  T4 extends {}\n>(t1: T1, t2: T2, t3: T3, t4: T4): T1 & T2 & T3 & T4\nexport function chainEventHandlers<\n  T1 extends {},\n  T2 extends {},\n  T3 extends {},\n  T4 extends {},\n  T5 extends {}\n>(t1: T1, t2: T2, t3: T3, t4: T4, t5: T5): T1 & T2 & T3 & T4 & T5\nexport function chainEventHandlers<\n  T1 extends {},\n  T2 extends {},\n  T3 extends {},\n  T4 extends {},\n  T5 extends {},\n  T6 extends {}\n>(t1: T1, t2: T2, t3: T3, t4: T4, t5: T5, t6: T6): T1 & T2 & T3 & T4 & T5 & T6\nexport function chainEventHandlers<\n  T1 extends {},\n  T2 extends {},\n  T3 extends {},\n  T4 extends {},\n  T5 extends {},\n  T6 extends {},\n  T7 extends {}\n>(\n  t1: T1,\n  t2: T2,\n  t3: T3,\n  t4: T4,\n  t5: T5,\n  t6: T6,\n  t7: T7\n): T1 & T2 & T3 & T4 & T5 & T6 & T7\nexport function chainEventHandlers<\n  T1 extends {},\n  T2 extends {},\n  T3 extends {},\n  T4 extends {},\n  T5 extends {},\n  T6 extends {},\n  T7 extends {},\n  T8 extends {}\n>(\n  t1: T1,\n  t2: T2,\n  t3: T3,\n  t4: T4,\n  t5: T5,\n  t6: T6,\n  t7: T7,\n  t8: T8\n): T1 & T2 & T3 & T4 & T5 & T6 & T7 & T8\nexport function chainEventHandlers(\n  first: Record<string, any>,\n  ...rest: Record<string, any>[]\n): Record<string, any> {\n  const result: Record<string, any> = { ...first }\n  for (const obj of rest) {\n    for (const key in obj) {\n      const value = obj[key]\n      const prev = result[key]\n      if (typeof prev === 'function' && typeof value === 'function') {\n        result[key] = (...args: any[]) => {\n          prev(...args)\n          return value(...args)\n        }\n      } else {\n        result[key] = value\n      }\n    }\n  }\n  return result\n}\n"],"mappings":"AAAA;;AAmEA,OAAO,SAASA,kBAAkBA,CAChCC,KAA0B,EAC1B,GAAGC,IAA2B,EACT;EACrB,MAAMC,MAA2B,GAAG;IAAE,GAAGF;EAAM,CAAC;EAChD,KAAK,MAAMG,GAAG,IAAIF,IAAI,EAAE;IACtB,KAAK,MAAMG,GAAG,IAAID,GAAG,EAAE;MACrB,MAAME,KAAK,GAAGF,GAAG,CAACC,GAAG,CAAC;MACtB,MAAME,IAAI,GAAGJ,MAAM,CAACE,GAAG,CAAC;MACxB,IAAI,OAAOE,IAAI,KAAK,UAAU,IAAI,OAAOD,KAAK,KAAK,UAAU,EAAE;QAC7DH,MAAM,CAACE,GAAG,CAAC,GAAG,CAAC,GAAGG,IAAW,KAAK;UAChCD,IAAI,CAAC,GAAGC,IAAI,CAAC;UACb,OAAOF,KAAK,CAAC,GAAGE,IAAI,CAAC;QACvB,CAAC;MACH,CAAC,MAAM;QACLL,MAAM,CAACE,GAAG,CAAC,GAAGC,KAAK;MACrB;IACF;EACF;EACA,OAAOH,MAAM;AACf","ignoreList":[]}
