<@U33H6SB2B> I was trying to use <seskar> to gener...
# javascript
q
@turansky I was trying to use seskar to generate enum constants as unions. Will it be possible to export the resulting declaration in the typescript file generated using
generateTypeScriptDefinitions()
? I guess the limitation here is that the compiler plugin cannot plug into the generation of the typescript definition 🤔
t
Probably it can be implemented via synthetic
@file:JsModule("./additional-ts-file")
If such annotation on file with union works fine and produces
import
in
.d.ts
file - it can be used by Seskar
q
as far as I can see it doesn't, I can't get the class to appear in the output js even with
JsModule
t
Missed
@JsExport
?
q
If I add the
@JsExport
to the sealed external interface I get this error:
Copy code
e: java.lang.NullPointerException
	at org.jetbrains.kotlin.ir.backend.js.export.ExportModelGenerator.exportClass(ExportModelGenerator.kt:471)
	at org.jetbrains.kotlin.ir.backend.js.export.ExportModelGenerator.exportOrdinaryClass(ExportModelGenerator.kt:269)
	at org.jetbrains.kotlin.ir.backend.js.export.ExportModelGenerator.exportClass(ExportModelGenerator.kt:77)
	at org.jetbrains.kotlin.ir.backend.js.export.ExportModelGenerator.exportClassDeclarations(ExportModelGenerator.kt:346)
	at org.jetbrains.kotlin.ir.backend.js.export.ExportModelGenerator.exportClassDeclarations$default(ExportModelGenerator.kt:312)
	at org.jetbrains.kotlin.ir.backend.js.export.ExportModelGenerator.exportOrdinaryClass(ExportModelGenerator.kt:267)
	at org.jetbrains.kotlin.ir.backend.js.export.ExportModelGenerator.exportClass(ExportModelGenerator.kt:77)
	at org.jetbrains.kotlin.ir.backend.js.export.ExportModelGenerator.exportDeclaration(ExportModelGenerator.kt:65)
	at org.jetbrains.kotlin.ir.backend.js.export.ExportModelGenerator.generateExport(ExportModelGenerator.kt:39)
	at org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.IrModuleToJsTransformer.generateExportWithExternals(IrModuleToJsTransformer.kt:250)
	at org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.IrModuleToJsTransformer.associateIrAndExport(IrModuleToJsTransformer.kt:183)
	at org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.IrModuleToJsTransformer.makeJsCodeGenerator(IrModuleToJsTransformer.kt:224)
	at org.jetbrains.kotlin.cli.js.K2JsIrCompiler$Ir2JsTransformer.makeJsCodeGenerator(K2JsIrCompiler.kt:144)
	at org.jetbrains.kotlin.cli.js.K2JsIrCompiler$Ir2JsTransformer.compileAndTransformIrNew(K2JsIrCompiler.kt:148)
	at org.jetbrains.kotlin.cli.js.K2JsIrCompiler.doExecute(K2JsIrCompiler.kt:451)
	at org.jetbrains.kotlin.cli.js.K2JSCompiler.doExecute(K2JSCompiler.java:109)
	at org.jetbrains.kotlin.cli.js.K2JSCompiler.doExecute(K2JSCompiler.java:72)
	at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:104)
	at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:48)
	at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
	at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1556)
This is what made me initially think it couldn't be exported
t
:(
q
I guess this is the line that fails when the companion object is processed:
Copy code
irGetter = context.mapping.objectToGetInstanceFunction[klass]!!