Issue with file separator in Windows fixed.
Now app is stored in packages namespace immediately after initialization. This fixes a problem with wrapper functions inside onStart
.
jrc
now supports multiple connections to a single server and thus can be used to create server apps that are intended to be used by multiple clients simultaneously. This change requires some additional arguments in some of the functions as well as several new ones. However, backwards compatibility is maintained.
jrc
now depends on R6
and each app is represented with a single object. One can manage the app with methods of this object, which allows to run several apps inside one R session. For more information, check man pages of classes App
and Session
.
jrc
now works properly on RStudio Server
sendData
no longer crashes when keepAsVector = FALSE
and some NAs are present.
jrc
now works with httpuv < 1.5.2
(it no longer depends on httpuv::randomPort()
).
jrc
now imports mime
for defining content type when serving a page.
Now most of the request from the server must be manually authorized in the R session to prevent misuse of publicly available apps based on jrc. Functions authorize
, allowVariables
, allowFunctions
, limitStorage
have been added. Check their man pages for more information.
openPage
now have browser
argument, which allows to specify a browser to open a page (previously the default browser was used with no alternatives).
Function getPage
is added. This function returns the main page-handling object with all the information about current session.
Function callFunction
added on both R and JavaScript sides. It allows to call a function by name, list of arguments and name of variable to which assign the result.
Now port for the local server is selected by httpuv::randomPort()
function. User can also provide a port number as an argument to the openPage
function.
sendData
now has argument rowwise
which allows to send matrices and data.frames to JavaScript not only rowwise (default), but also columnwise.
If in sendData
keepAsVector = FALSE
jrc
now checks recursively for any arrays of length 1 to replace them with scalars (important for lists).
Some bugs with changing variable types in jrc.sendData
fixed.