diff options
Diffstat (limited to 'cli/tools/repl/channel.rs')
-rw-r--r-- | cli/tools/repl/channel.rs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/cli/tools/repl/channel.rs b/cli/tools/repl/channel.rs index 7cc802905..4f2086fb5 100644 --- a/cli/tools/repl/channel.rs +++ b/cli/tools/repl/channel.rs @@ -2,6 +2,7 @@ use deno_core::anyhow::anyhow; use deno_core::error::AnyError; +use deno_core::serde_json; use deno_core::serde_json::Value; use std::cell::RefCell; use tokio::sync::mpsc::channel; @@ -55,17 +56,19 @@ pub struct RustylineSyncMessageSender { } impl RustylineSyncMessageSender { - pub fn post_message( + pub fn post_message<T: serde::Serialize>( &self, method: &str, - params: Option<Value>, + params: Option<T>, ) -> Result<Value, AnyError> { if let Err(err) = self .message_tx .blocking_send(RustylineSyncMessage::PostMessage { method: method.to_string(), - params, + params: params + .map(|params| serde_json::to_value(params)) + .transpose()?, }) { Err(anyhow!("{}", err)) |