Kotlin / dukat

Converter of <any kind of declarations> to Kotlin external declarations
554 stars 42 forks source link

Dukat fails silently #441

Open Martmists-GH opened 3 years ago

Martmists-GH commented 3 years ago

build.gradle.kts:

    implementation(npm("@types/tmi.js", "1.7.1", generateExternals = true))
    implementation(npm("tmi.js", "1.7.1"))

DefinitelyTyped: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/tmi.js

Generated output:

@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS")

import kotlin.js.*
import org.khronos.webgl.*
import org.w3c.dom.*
import org.w3c.dom.events.*
import org.w3c.dom.parsing.*
import org.w3c.dom.svg.*
import org.w3c.dom.url.*
import org.w3c.fetch.*
import org.w3c.files.*
import org.w3c.notifications.*
import org.w3c.performance.*
import org.w3c.workers.*
import org.w3c.xhr.*

external interface TypeRecord<T, U, V> {
    var  _emitterType: T?
        get() = definedExternally
        set(value) = definedExternally
    var  _eventsType: U?
        get() = definedExternally
        set(value) = definedExternally
    var  _emitType: V?
        get() = definedExternally
        set(value) = definedExternally
}

typealias InnerEEMethodReturnType<T, TValue, FValue> = Any

typealias EEMethodReturnType<T, S, TValue, FValue> = Any

typealias ListenerType<T> = Any

external interface OverriddenMethods<TEmitter, TEventRecord, TEmitRecord> {
    fun <P : Any, T> on(event: P, listener: (args: ListenerType<Any>) -> Unit): EEMethodReturnType<TEmitter, String /* "on" */, T>
    fun on(event: Any, listener: (args: Any) -> Any)
    fun <P : Any, T> addListener(event: P, listener: (args: ListenerType<Any>) -> Unit): EEMethodReturnType<TEmitter, String /* "addListener" */, T>
    fun addListener(event: Any, listener: (args: Any) -> Any)
    fun <P : Any, T> addEventListener(event: P, listener: (args: ListenerType<Any>) -> Unit): EEMethodReturnType<TEmitter, String /* "addEventListener" */, T>
    fun addEventListener(event: Any, listener: (args: Any) -> Any)
    fun <T> removeListener(event: Any, listener: (args: Any) -> Any): EEMethodReturnType<TEmitter, String /* "removeListener" */, T>
    fun removeListener(event: Any, listener: (args: Any) -> Any)
    fun <T> removeEventListener(event: Any, listener: (args: Any) -> Any): EEMethodReturnType<TEmitter, String /* "removeEventListener" */, T>
    fun removeEventListener(event: Any, listener: (args: Any) -> Any)
    fun <P : Any, T> once(event: P, listener: (args: ListenerType<Any>) -> Unit): EEMethodReturnType<TEmitter, String /* "once" */, T>
    fun once(event: Any, listener: (args: Any) -> Any)
    fun <P : Any, T> emit(event: P, vararg args: ListenerType<Any>): EEMethodReturnType<TEmitter, String /* "emit" */, T>
    fun emit(event: Any, vararg args: Any)
}

There are no warnings or errors thrown when running gradle generateExternals