summaryrefslogtreecommitdiff
path: root/cli/tools/repl/channel.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tools/repl/channel.rs')
-rw-r--r--cli/tools/repl/channel.rs9
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))