fun compileWasm()

in src/main/kotlin/org/jetbrains/tinygoplugin/preview/TinyGoPreviewWasmService.kt [23:47]


    fun compileWasm(scratchFile: VirtualFile, onFinish: () -> Unit) {
        compilationStatus[scratchFile.path] = AtomicReference(CompilationStatus.InProgress)

        val tinyGoConfiguration = project.tinyGoConfiguration()
        val arguments = listOf(
            "build",
            "-tags=${tinyGoConfiguration.targetPlatform}",
            "-opt=1",
            "-no-debug",
            "-o=${getOutputFile(scratchFile.path)}",
            scratchFile.canonicalPath!!
        )
        val executor = GoExecutor.`in`(project, null)
            .withExePath(tinyGoConfiguration.sdk.executable?.canonicalPath)
            .withParameters(arguments)

        executor.executeWithProgress {
            if (it.status.ordinal == 0) {
                compilationStatus[scratchFile.path]!!.set(CompilationStatus.OK)
                onFinish.invoke()
            } else {
                compilationStatus[scratchFile.path]!!.set(CompilationStatus.Failed)
            }
        }
    }