Комментарии 12
Выглядит интересно )
Интересная штуковина!
У меня вопрос: какие таргеты поддерживаются на данный момент? Я не вполне понял, потому как в модуле komm-annotations - jvm, js и несколько native (но не все!), в komm-simple - jvm и js, а в komm-processor вообще только jvm.
В итоге, пока я так и не понял, на каких платформах могу использовать эту библиотеку.
Ну и пара пожеланий:
добавить таргет wasmJs.
Добавить фичу генерирования мапперов для чужих классов (которым нельзя приделать аннотацию в собственном коде). Что-то такое, как в kotlinx.serialization сделано:
typealias MyUserEntity = @Serializable ThirdPartyUserEntity
komm-processor - так и будет только JVM. Так работает KSP. Вот тут как подключать его в любые targets:
dependencies {
add("kspJvm", "com.ucasoft.komm:komm-processor:$kommVersion")
add("kspJs", "com.ucasoft.komm:komm-processor:$kommVersion")
// Add other platforms like `kspAndroidNativeX64`, `kspLinuxX64`, `kspMingwX64` etc.
}
komm-simple - это просто пример использования.
komm-annotations - это основное, где нужно накидывать targets. Просто пока добавлял те, что использую сам.
По пожеланиям:
wasmJs попробую добавить. Пока вообще с ним не работал.
Это отличная идея! Но вот проблема, как быть с аннотациями свойств? Можно конечно их как-то конфигурировать внутри KOMMMap. Подумаю. Но и проблема Java Objects остается с их set-методами.
Вспомнил про эту статью - захотелось попробовать применить либу. Но или что-то не так понял, или тут зависимость не в ту сторону - модель domain слоя вынуждена будет знать о моделях data слоя. Можно ли сделать наоборот - для модели источника указать при помощи аннотации сущность, в которую нужно сконвертировать?
Kotlin Object Multiplatform Mapper