override suspend fun execute()

in rider/src/main/kotlin/com/jetbrains/aspire/rider/sessions/wasmHost/WasmHostHotReloadConfigurationExtension.kt [32:60]


    override suspend fun execute(
        executable: DotNetExecutable,
        lifetime: Lifetime,
        project: Project
    ): Pair<DotNetExecutable, ProgramRunner.Callback> {
        val pipeName = getPipeName()
        val browserRefreshHost = BrowserRefreshAgentManager
            .getInstance(project)
            .startHost(executable.projectTfm, executable.environmentVariables, lifetime)
        val hotReloadEnvs = HotReloadEnvironmentBuilder()
            .setNamedPipe(pipeName)
            .addDeltaApplier()
            .addBlazorRefreshClient()
            .setBlazorRefreshServerUrls(browserRefreshHost.wsUrls, browserRefreshHost.serverKey)
            .build()

        val envs = mergeEnvs(executable.environmentVariables, hotReloadEnvs)

        val modifiedExecutable = executable.copy(environmentVariables = envs)

        val callback = WebHotReloadProgramRunnerCallback(
            project,
            browserRefreshHost,
            pipeName,
            null
        )

        return modifiedExecutable to callback
    }