This is a low level module to handle teal_data_module
execution and validation.
teal_transform_module()
inherits from teal_data_module()
so it is handled by this module too.
srv_teal()
accepts various data
objects and eventually they are all transformed to reactive
teal_data()
which is a standard data class in whole teal
framework.
Usage
ui_teal_data(id, data_module = function(id) NULL)
srv_teal_data(
id,
data_module = function(id) NULL,
modules = NULL,
validate_shiny_silent_error = TRUE,
is_transformer_failed = reactiveValues()
)
ui_validate_reactive_teal_data(id)
srv_validate_reactive_teal_data(
id,
data,
modules = NULL,
validate_shiny_silent_error = FALSE,
hide_validation_error = reactive(FALSE)
)
Arguments
- id
(
character(1)
) Module id- data_module
(
teal_data_module
)- modules
(
teal_modules
orteal_module
) Fordatanames
validation purpose- validate_shiny_silent_error
(
logical
) IfTRUE
, thenshiny.silent.error
is validated and- is_transformer_failed
(
reactiveValues
) containslogical
flags named after each transformer. Help to determine if any previous transformer failed, so that following transformers can be disabled and display a generic failure message.- data
(
reactive teal_data
)
data validation
Executed teal_data_module()
is validated and output is validated for consistency.
Output data
is invalid if:
teal_data_module()
is invalid if server doesn't returnreactive
. Immediately crashes an app!reactive
throws ashiny.error
- happens when module creatingteal_data()
fails.reactive
returnsqenv.error
- happens whenteal_data()
evaluates a failing code.reactive
object doesn't returnteal_data()
.teal_data()
object lacks anydatanames
specified in themodules
argument.
teal
(observers in srv_teal
) always waits to render an app until reactive
teal_data
is
returned. If error 2-4 occurs, relevant error message is displayed to the app user. Once the issue is
resolved, the app will continue to run. teal
guarantees that errors in data don't crash the app
(except error 1).