let eventHandlerIndex_ = 1; export interface EventHandlers { // eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied [key: string]: Function; } // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Old code before rule was applied export default function mapEventHandlersToIds(arg: any, eventHandlers: EventHandlers) { if (Array.isArray(arg)) { for (let i = 0; i < arg.length; i++) { arg[i] = mapEventHandlersToIds(arg[i], eventHandlers); } return arg; } else if (typeof arg === 'function') { const id = `___plugin_event_${eventHandlerIndex_}`; eventHandlerIndex_++; eventHandlers[id] = arg; return id; } else if (arg === null) { return null; } else if (arg === undefined) { return undefined; } else if (typeof arg === 'object') { for (const n in arg) { arg[n] = mapEventHandlersToIds(arg[n], eventHandlers); } } return arg; }