From f247f62c5e57bbbf3faef6196c0c1887ae5f116a Mon Sep 17 00:00:00 2001 From: Carson Date: Tue, 5 May 2026 11:26:30 -0500 Subject: [PATCH 1/2] Add widgetDependencies() S3 generic, deprecate getDependency() widgetDependencies() is a public S3 generic with character and htmlwidget methods. The htmlwidget method returns all dependencies (YAML + binding + runtime), fixing under-reporting when deps are added via createWidget(). Internally, toHTML() and shinyRenderWidget() now use widgetDependencies(x) as the single canonical path for resolving widget dependencies. --- DESCRIPTION | 2 +- NAMESPACE | 3 ++ R/htmlwidgets.R | 15 ++------- R/utils.R | 54 +++++++++++++++++++++++-------- man/getDependency.Rd | 9 +++--- man/htmlwidgets-package.Rd | 8 +++++ man/widgetDependencies.Rd | 28 ++++++++++++++++ tests/testthat/test-htmlwidgets.R | 36 +++++++++++++++++++++ 8 files changed, 124 insertions(+), 31 deletions(-) create mode 100644 man/widgetDependencies.Rd diff --git a/DESCRIPTION b/DESCRIPTION index 4705ddb8..06bf7dde 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -34,4 +34,4 @@ Enhances: VignetteBuilder: knitr Encoding: UTF-8 -RoxygenNote: 7.2.3 +RoxygenNote: 7.3.3 diff --git a/NAMESPACE b/NAMESPACE index 160e645b..88ce0333 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -3,6 +3,8 @@ S3method(as.tags,htmlwidget) S3method(print,htmlwidget) S3method(print,suppress_viewer) +S3method(widgetDependencies,character) +S3method(widgetDependencies,htmlwidget) export(JS) export(JSEvals) export(appendContent) @@ -17,6 +19,7 @@ export(setWidgetIdSeed) export(shinyRenderWidget) export(shinyWidgetOutput) export(sizingPolicy) +export(widgetDependencies) import(htmltools) importFrom(utils,browseURL) importFrom(utils,file.edit) diff --git a/R/htmlwidgets.R b/R/htmlwidgets.R index 460c5d74..204cbc89 100644 --- a/R/htmlwidgets.R +++ b/R/htmlwidgets.R @@ -207,12 +207,7 @@ toHTML <- function(x, standalone = FALSE, knitrOptions = NULL) { } ) - deps <- c( - widget_dependencies(name, package), - x$dependencies - ) - - browsable(attachDependencies(html, deps, append = TRUE)) + browsable(attachDependencies(html, widgetDependencies(x), append = TRUE)) } lookup_func <- function(name, package) { @@ -318,10 +313,6 @@ widgetF_html <- function(name, package, id, style, class, inline = FALSE, ...) { ## End unit test support functions ################################# -widget_dependencies <- function(name, package){ - getDependency(name, package) -} - # Generates a