R/serverResultUpdater.R

Defines functions serverResultUpdater

serverResultUpdater <- function(id, to_render) {
  moduleServer(id, function(input, output, session) {
    output$results <- renderPrint({
      req(to_render())
      out <- to_render()
      if (is.character(out)) {
        cat(out)
      } else {
        if (!is.null(out$warning)) {
          cat("Beware of the following lavaan warning(s) (lavaan call):\n")
          for (i in seq_along(out$warning)) {
            if (!is.null(out$warning[i]$message)) {
              cat(paste0(out$warning[i]$message, "\n"))
            }
          }
        }

        summary_warning <- NULL
        if ("lavaan" %in% class(out$fit)) {
          withCallingHandlers(
            {
              sum_model <- summary(out$fit, fit.measures = TRUE)
              sum_model$pe <- NULL
            },
            warning = function(w) {
              cat("Beware of the following lavaan warning (summary call):\n")
              cat(paste0(w$message, "\n"))
            }
          )
          print(sum_model)
        }

        if ("data.frame" %in% class(out)) {
          print(out)
        }

        if ("error" %in% class(out)) {
          stop(safeError(out))
        }
      }
    })
  })
}

Try the lavaangui package in your browser

Any scripts or data that you put into this service are public.

lavaangui documentation built on April 4, 2025, 1:43 a.m.