ts_compile.character() and ts_deploy() default output to under tempdir() (or
options(RserveTS.compile_dir = ...) / env RSERVETS_COMPILE_DIR) instead of
writing beside the source file; pass filename / file to choose an explicit path.ts_*() type constructors onto a single type_objects help page (?ts_numeric, ?ts_dataframe, etc.).createWidget help page (?widgetActions, ?observer, ?tsWidget).ts_compile() hoists nested widget connectors to named top-level TypeScript exports (export const + T* aliases), ordered by child-widget dependencies.ts_compile.character() gains format and prettier_cmd to run Prettier (or a compatible CLI) on generated .ts output; prettier_cmd defaults to getOption("RserveTS.prettier_cmd") (NULL until set), with fallback to RserveTS_PRETTIER_CMD / PATH.ts_compile.ts_function() also honours format / prettier_cmd; both methods default format to getOption("RserveTS.format", FALSE).ts_compile() roxygen documents format / prettier_cmd and clarifies file-path vs ts_function arguments.widgetActions() for typed widget action definitions used by createWidget(actions = ...).createWidget() and widgetActions() reference docs/exports and update pkgdown reference indexing.ts_compile() app schema output by emitting a named *AppSchema object with typed default export.createWidget() function. Now takes default values for properties, and automatically flushes state changes to TypeScript after execution.createWidget() function with support for child widgets. Widgets can now contain other widgets as properties, enabling hierarchical widget structures. The function now properly handles child widget initialization and state management.objectSignals as dependencytsWidget base class for proper class lookupAdd new widget functionality to simplify creating widget objects that store state that can be modified by the JS application. The node package @tmelliott/react-rserve contains hooks for working with these widgets.
fix bug (use inherits() instead of class() == "")
export = argument to ts_function() (FALSE by default) to control which functions are exposed with the first connectionjs_function()ts_recursive_list()js_function()ts_union()ts_array() that now works with ts_objectsts_optional()ts_optional() functionThe initial developmental release of ts.
API expected to change in future releases as it is tested in various example applications, so if you happen to use this in a project I suggest you pin the version:
# install.packages("remotes")
remotes::install_github("ws1/[email protected]")
To get started, check the docs site at https://tomelliott.co.nz/ts/.