kotlin-electron/karakum/src/jsMain/kotlin/electron/karakum/injections/BrowserEventInjection.kt [173:210]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - private val events = mutableMapOf>>() override fun setup(context: Context) = Unit override fun traverse(node: Node, context: Context) = impure { ensure(isStringLiteral(node)) val eventContainer = ensureNotNull(extractEventContainer(node)) val eventPayload = ensureNotNull(extractEventPayload(node, context)) val name = ensureNotNull(eventContainer.name) val typeScriptService = ensureNotNull(context.lookupService(typeScriptServiceKey)) val typeChecker = typeScriptService.program.getTypeChecker() val symbol = ensureNotNull(typeChecker.getSymbolAtLocation(name)) val symbolEvents = events[symbol] ?: mutableMapOf() symbolEvents[node.text] = eventPayload events[symbol] = symbolEvents } override fun render(node: Node, context: Context, next: Render) = nullable { val method = ensureNotNull( nullable { ensure(isMethodDeclaration(node)) node } ?: nullable { ensure(isMethodSignature(node)) node } ) val name = ensureNotNull(method.name) ensure(isIdentifier(name)) ensure(name.text in eventHandlerMethods) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - kotlin-electron/karakum/src/jsMain/kotlin/electron/karakum/injections/EventInjection.kt [245:282]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - private val events = mutableMapOf>>() override fun setup(context: Context) = Unit override fun traverse(node: Node, context: Context) = impure { ensure(isStringLiteral(node)) val eventContainer = ensureNotNull(extractEventContainer(node)) val eventPayload = ensureNotNull(extractEventPayload(node, context)) val name = ensureNotNull(eventContainer.name) val typeScriptService = ensureNotNull(context.lookupService(typeScriptServiceKey)) val typeChecker = typeScriptService.program.getTypeChecker() val symbol = ensureNotNull(typeChecker.getSymbolAtLocation(name)) val symbolEvents = events[symbol] ?: mutableMapOf() symbolEvents[node.text] = eventPayload events[symbol] = symbolEvents } override fun render(node: Node, context: Context, next: Render) = nullable { val method = ensureNotNull( nullable { ensure(isMethodDeclaration(node)) node } ?: nullable { ensure(isMethodSignature(node)) node } ) val name = ensureNotNull(method.name) ensure(isIdentifier(name)) ensure(name.text in eventHandlerMethods) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -