type Events = object export type EventHandler = (event: E) => void export function composeEventHandlers( og?: EventHandler | null, next?: EventHandler | null, { checkDefaultPrevented = true } = {} ) { if (!og || !next) { return next || og || undefined } return (event: E) => { og?.(event) if ( !event || !( checkDefaultPrevented && typeof event === 'object' && 'defaultPrevented' in event ) || // @ts-ignore ('defaultPrevented' in event && !event.defaultPrevented) ) { return next?.(event) } } }