1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-22 07:14:47 -05:00

fix(ext/kv): add a warning for listenQueue if used with remote KV (#20341)

This commit is contained in:
Igor Zinkovsky 2023-09-03 17:47:52 -07:00 committed by GitHub
parent d6c49353c3
commit 1dc5d42114
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 25 additions and 0 deletions

1
Cargo.lock generated
View file

@ -1301,6 +1301,7 @@ dependencies = [
"rusqlite",
"serde",
"serde_json",
"termcolor",
"tokio",
"url",
"uuid",

View file

@ -137,6 +137,7 @@ smallvec = "1.8"
socket2 = { version = "0.5.3", features = ["all"] }
tar = "=0.4.40"
tempfile = "3.4.0"
termcolor = "1.1.3"
thiserror = "1.0.40"
tokio = { version = "1.28.1", features = ["full"] }
tokio-metrics = { version = "0.3.0", features = ["rt"] }

View file

@ -29,6 +29,7 @@ reqwest.workspace = true
rusqlite.workspace = true
serde.workspace = true
serde_json.workspace = true
termcolor.workspace = true
tokio.workspace = true
url.workspace = true
uuid = { workspace = true, features = ["serde"] }

View file

@ -1,6 +1,8 @@
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
use std::cell::RefCell;
use std::fmt;
use std::io::Write;
use std::marker::PhantomData;
use std::rc::Rc;
use std::sync::Arc;
@ -29,6 +31,10 @@ use deno_core::OpState;
use prost::Message;
use rand::Rng;
use serde::Deserialize;
use termcolor::Ansi;
use termcolor::Color;
use termcolor::ColorSpec;
use termcolor::WriteColor;
use tokio::sync::watch;
use url::Url;
use uuid::Uuid;
@ -272,12 +278,28 @@ impl<P: RemoteDbHandlerPermissions> Database for RemoteDb<P> {
&self,
_state: Rc<RefCell<OpState>>,
) -> Result<Self::QMH, AnyError> {
let msg = "Deno.Kv.listenQueue is not supported for remote KV databases";
eprintln!("{}", yellow(msg));
deno_core::futures::future::pending().await
}
fn close(&self) {}
}
fn yellow<S: AsRef<str>>(s: S) -> impl fmt::Display {
if std::env::var_os("NO_COLOR").is_some() {
return String::from(s.as_ref());
}
let mut style_spec = ColorSpec::new();
style_spec.set_fg(Some(Color::Yellow));
let mut v = Vec::new();
let mut ansi_writer = Ansi::new(&mut v);
ansi_writer.set_color(&style_spec).unwrap();
ansi_writer.write_all(s.as_ref().as_bytes()).unwrap();
ansi_writer.reset().unwrap();
String::from_utf8_lossy(&v).into_owned()
}
fn decode_value(
value: Vec<u8>,
encoding: pb::KvValueEncoding,