KustomExport icon indicating copy to clipboard operation
KustomExport copied to clipboard

Annotating sealed class should export all child classes

Open baconz opened this issue 3 years ago • 1 comments

If you annotate a sealed class with JsExport, it will export all of the child classes by default. KustomExport does not behave the same way. I found that:

@KustomExport
sealed class Foo {
    data class Bar(val numbers: List<Long>) : Foo()
}

Will fail with a compiler error. It seems the only way to export the child classes is to do:

@KustomExport
sealed class Foo

@KustomExport
data class Bar(val numbers: List<Long>) : Foo()

baconz avatar Aug 07 '22 22:08 baconz

Thanks for your report! The behavior you describe is known, I've started working to deal with inner classes but it's adding some complexity in the generation code if I want to handle outer/inner classes properly (class naming and wrapping is more complex, but still feasible). As the workaround is very simple (for outer classe at least), we didn't prioritize this feature yet. Keeping this ticket open for now, hoping I'll have some free time soon. If you have some requirements that cannot be handled / are blockers for you, don't hesitate to share!

glureau avatar Aug 11 '22 08:08 glureau