У нас есть проект Kotlin, для которого некоторые классы предназначены для совместного использования с клиентской стороной, и в результате мы настроили наш kotlin-maven-plugin
для выделения некоторых классов Kotlin как JavaScript:
<configuration>
<outputFile>${project.basedir}/angular/src/assets/kotlin_classes.js</outputFile>
<moduleKind>commonjs</moduleKind>
</configuration>
С классом Kotlin, который выглядит следующим образом:
class SomeKotlinClass {
fun someMethod(name: String): String {
return "Happy Birthday, " + name;
}
}
Проблема, с которой мы сталкиваемся, заключается в том, что независимо от того, что moduleKind
мы используем (мы пробовали plain
, umd
, amd
), кажется, что имена наших методов имеют нечетный / искаженный суффикс в файле JavaScript:
SomeKotlinClass.prototype.someMethod_6q3v0v$ = function (name) {
return 'Happy Birthday, ' + name
};
Это означает, что наши вызовы в Angular / TypeScript не могут быть someMethod()
, они должны бытьна someMethod_6q3v0v$()
, что у нас не работает.
Я что-то не так делаю с конфигурацией моего плагина или с тем, как я включаю этот файл JavaScript в наш проект?Мы на 99% пути, но это последнее (странное) препятствие удерживает нас.