chore: upgrade starmelon dependencies
Upgrade deno_core 0.65 -> 0.127
This commit is contained in:
parent
95e21129a8
commit
bdccb9cb88
6 changed files with 47 additions and 125 deletions
12
Cargo.toml
12
Cargo.toml
|
|
@ -24,7 +24,7 @@ rustc-hash = "1.1"
|
||||||
home = "0.5"
|
home = "0.5"
|
||||||
|
|
||||||
# Required to transpile view functions to Rust
|
# Required to transpile view functions to Rust
|
||||||
genco = "0.15"
|
genco = "0.17"
|
||||||
# Required to generate fixture Elm files
|
# Required to generate fixture Elm files
|
||||||
genco-extra = { path = "../../../infra/genco-extra" }
|
genco-extra = { path = "../../../infra/genco-extra" }
|
||||||
|
|
||||||
|
|
@ -32,10 +32,10 @@ genco-extra = { path = "../../../infra/genco-extra" }
|
||||||
# All of these are required for deno's javascript runtime. We need to keep the
|
# All of these are required for deno's javascript runtime. We need to keep the
|
||||||
# same versions as other projects in our cargo workspace. Multiple different
|
# same versions as other projects in our cargo workspace. Multiple different
|
||||||
# versions of rusty_v8 seem to break its build script.
|
# versions of rusty_v8 seem to break its build script.
|
||||||
deno_runtime = "0.65"
|
deno_runtime = "0.127"
|
||||||
tokio = { version = "1.17", features = ["full"] }
|
tokio = { version = "1.32", features = ["full"] }
|
||||||
deno_core = "0.139"
|
deno_core = "0.214"
|
||||||
deno_web = "0.88"
|
deno_web = "0.150"
|
||||||
futures = "0.3"
|
futures = "0.3"
|
||||||
|
|
||||||
# Required to add sql query support to interpreter. Because deno expects sync
|
# Required to add sql query support to interpreter. Because deno expects sync
|
||||||
|
|
@ -43,7 +43,7 @@ futures = "0.3"
|
||||||
# functions. I read the code for oneshot
|
# functions. I read the code for oneshot
|
||||||
# (https://github.com/faern/oneshot/commit/9aa237f185e1b65d61bf92c20350cf7bee0aa88b)
|
# (https://github.com/faern/oneshot/commit/9aa237f185e1b65d61bf92c20350cf7bee0aa88b)
|
||||||
# and it looks reasonable.
|
# and it looks reasonable.
|
||||||
sqlx = { version = "0.6", features = [ "sqlite", "macros", "runtime-tokio-rustls", "chrono", "json", "uuid" ] }
|
sqlx = { version = "0.7", features = [ "sqlite", "macros", "runtime-tokio", "chrono", "json", "uuid" ] }
|
||||||
oneshot = "0.1.3"
|
oneshot = "0.1.3"
|
||||||
|
|
||||||
# required for livetable derive macro
|
# required for livetable derive macro
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ use deno_core::{v8, Extension, OpState};
|
||||||
use elm_project_utils::{setup_generator_project, ElmPostProcessor, ElmResult};
|
use elm_project_utils::{setup_generator_project, ElmPostProcessor, ElmResult};
|
||||||
use os_pipe::dup_stderr;
|
use os_pipe::dup_stderr;
|
||||||
use sqlx::sqlite::SqlitePool;
|
use sqlx::sqlite::SqlitePool;
|
||||||
|
use std::borrow::Cow;
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
use std::convert::TryFrom;
|
use std::convert::TryFrom;
|
||||||
use std::fs;
|
use std::fs;
|
||||||
|
|
@ -258,18 +259,17 @@ pub(crate) fn run(
|
||||||
let mailbox: Arc<RefCell<Option<Result<Vec<u8>, ScriptError>>>> = Arc::new(RefCell::new(None));
|
let mailbox: Arc<RefCell<Option<Result<Vec<u8>, ScriptError>>>> = Arc::new(RefCell::new(None));
|
||||||
let mailbox_clone = Arc::clone(&mailbox);
|
let mailbox_clone = Arc::clone(&mailbox);
|
||||||
|
|
||||||
let mut extensions = vec![Extension::builder()
|
let mut extensions = vec![Extension {
|
||||||
.ops(vec![
|
ops: Cow::Owned(vec![
|
||||||
op_starmelon_bytes_output::decl(),
|
op_starmelon_bytes_output::decl(),
|
||||||
op_starmelon_string_output::decl(),
|
op_starmelon_string_output::decl(),
|
||||||
op_starmelon_problem::decl(),
|
op_starmelon_problem::decl(),
|
||||||
])
|
]),
|
||||||
.state(move |state| {
|
op_state_fn: Some(Box::new(move |state| {
|
||||||
state.put(Arc::clone(&mailbox_clone));
|
state.put(Arc::clone(&mailbox_clone));
|
||||||
|
})),
|
||||||
Ok(())
|
..Default::default()
|
||||||
})
|
}];
|
||||||
.build()];
|
|
||||||
|
|
||||||
let sql_background_thread_handle = if let Some(database_url) = sqlite_path {
|
let sql_background_thread_handle = if let Some(database_url) = sqlite_path {
|
||||||
// I want to construct the connection in the initial thread so I can tell if the connection
|
// I want to construct the connection in the initial thread so I can tell if the connection
|
||||||
|
|
@ -358,7 +358,7 @@ fn op_starmelon_problem(
|
||||||
#[deno_core::op]
|
#[deno_core::op]
|
||||||
fn op_starmelon_bytes_output(
|
fn op_starmelon_bytes_output(
|
||||||
state: &mut OpState,
|
state: &mut OpState,
|
||||||
msg: ElmResult<deno_core::ZeroCopyBuf, ScriptError>,
|
msg: ElmResult<deno_core::JsBuffer, ScriptError>,
|
||||||
) -> Result<(), deno_core::error::AnyError> {
|
) -> Result<(), deno_core::error::AnyError> {
|
||||||
let mailbox_clone = state.borrow::<OutputMailbox>();
|
let mailbox_clone = state.borrow::<OutputMailbox>();
|
||||||
if let Ok(mut mailbox) = mailbox_clone.try_borrow_mut() {
|
if let Ok(mut mailbox) = mailbox_clone.try_borrow_mut() {
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ use deno_core::{Extension, OpState};
|
||||||
use elm_project_utils::{setup_generator_project, ElmPostProcessor};
|
use elm_project_utils::{setup_generator_project, ElmPostProcessor};
|
||||||
use os_pipe::dup_stderr;
|
use os_pipe::dup_stderr;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
|
use std::borrow::Cow;
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
use std::fs;
|
use std::fs;
|
||||||
use std::io::Write;
|
use std::io::Write;
|
||||||
|
|
@ -174,14 +175,13 @@ pub(crate) fn run(
|
||||||
let mailbox: Arc<RefCell<Option<Vec<FileDefinition>>>> = Arc::new(RefCell::new(None));
|
let mailbox: Arc<RefCell<Option<Vec<FileDefinition>>>> = Arc::new(RefCell::new(None));
|
||||||
let mailbox_clone = Arc::clone(&mailbox);
|
let mailbox_clone = Arc::clone(&mailbox);
|
||||||
|
|
||||||
let extensions = vec![Extension::builder()
|
let extensions = vec![Extension {
|
||||||
.ops(vec![op_starmelon_elm_css_files_output::decl()])
|
ops: Cow::Owned(vec![op_starmelon_elm_css_files_output::decl()]),
|
||||||
.state(move |state| {
|
op_state_fn: Some(Box::new(move |state| {
|
||||||
state.put(Arc::clone(&mailbox_clone));
|
state.put(Arc::clone(&mailbox_clone));
|
||||||
|
})),
|
||||||
Ok(())
|
..Default::default()
|
||||||
})
|
}];
|
||||||
.build()];
|
|
||||||
|
|
||||||
drop(timing_guard);
|
drop(timing_guard);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
use deno_core::futures::StreamExt;
|
use deno_core::futures::StreamExt;
|
||||||
use deno_core::{Extension, OpState};
|
use deno_core::{Extension, Op, OpState};
|
||||||
use elm_project_utils::ElmResult;
|
use elm_project_utils::ElmResult;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_json::{value::Map, value::Number, Value};
|
use serde_json::{value::Map, value::Number, Value};
|
||||||
use sqlx::{sqlite::SqlitePool, Column, Row, TypeInfo, ValueRef};
|
use sqlx::{sqlite::SqlitePool, Column, Row, TypeInfo, ValueRef};
|
||||||
|
use std::borrow::Cow;
|
||||||
use std::thread::JoinHandle;
|
use std::thread::JoinHandle;
|
||||||
use std::time::Instant;
|
use std::time::Instant;
|
||||||
use tokio;
|
use tokio;
|
||||||
|
|
@ -111,14 +112,13 @@ pub(crate) fn init(db_pool: SqlitePool) -> Result<(Extension, JoinHandle<()>), (
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
let worker_mailbox_clone = worker_mailbox.clone();
|
let worker_mailbox_clone = worker_mailbox.clone();
|
||||||
let extension = Extension::builder()
|
let extension = Extension {
|
||||||
.ops(vec![op_starmelon_batch_queries::decl()])
|
ops: Cow::Owned(vec![op_starmelon_batch_queries::DECL]),
|
||||||
.state(move |state| {
|
op_state_fn: Some(Box::new(move |state| {
|
||||||
state.put(worker_mailbox_clone.clone());
|
state.put(worker_mailbox_clone.clone());
|
||||||
|
})),
|
||||||
Ok(())
|
..Default::default()
|
||||||
})
|
};
|
||||||
.build();
|
|
||||||
|
|
||||||
Ok((extension, sql_worker_thread))
|
Ok((extension, sql_worker_thread))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -175,7 +175,7 @@ mod runtime {
|
||||||
use deno_core::futures::FutureExt;
|
use deno_core::futures::FutureExt;
|
||||||
use deno_core::{resolve_url, Extension, FsModuleLoader, ModuleLoader, ModuleSpecifier};
|
use deno_core::{resolve_url, Extension, FsModuleLoader, ModuleLoader, ModuleSpecifier};
|
||||||
use deno_runtime::deno_broadcast_channel::InMemoryBroadcastChannel;
|
use deno_runtime::deno_broadcast_channel::InMemoryBroadcastChannel;
|
||||||
use deno_runtime::permissions::Permissions;
|
use deno_runtime::permissions::PermissionsContainer;
|
||||||
use deno_runtime::worker::MainWorker;
|
use deno_runtime::worker::MainWorker;
|
||||||
use deno_runtime::worker::WorkerOptions;
|
use deno_runtime::worker::WorkerOptions;
|
||||||
use deno_runtime::BootstrapOptions;
|
use deno_runtime::BootstrapOptions;
|
||||||
|
|
@ -193,53 +193,29 @@ mod runtime {
|
||||||
extensions: Vec<Extension>,
|
extensions: Vec<Extension>,
|
||||||
path_str: &str,
|
path_str: &str,
|
||||||
) -> Result<(MainWorker, ModuleSpecifier), AnyError> {
|
) -> Result<(MainWorker, ModuleSpecifier), AnyError> {
|
||||||
//let module_loader = Rc::new(EmbeddedModuleLoader("void".to_owned()));
|
|
||||||
let module_loader = Rc::new(FsModuleLoader);
|
let module_loader = Rc::new(FsModuleLoader);
|
||||||
let create_web_worker_cb = Arc::new(|_| {
|
|
||||||
todo!("Web workers are not supported in the example");
|
|
||||||
});
|
|
||||||
let web_worker_preload_module_cb = Arc::new(|_| {
|
|
||||||
todo!("Web workers are not supported in the example");
|
|
||||||
});
|
|
||||||
|
|
||||||
let options = WorkerOptions {
|
let options = WorkerOptions {
|
||||||
bootstrap: BootstrapOptions {
|
bootstrap: BootstrapOptions {
|
||||||
args: vec![],
|
args: vec![],
|
||||||
cpu_count: 1,
|
cpu_count: 1,
|
||||||
debug_flag: false,
|
|
||||||
enable_testing_features: false,
|
enable_testing_features: false,
|
||||||
location: None,
|
location: None,
|
||||||
no_color: false,
|
no_color: false,
|
||||||
is_tty: false,
|
is_tty: false,
|
||||||
runtime_version: "0.50.0".to_string(),
|
runtime_version: "0.127.0".to_string(),
|
||||||
ts_version: "2.0.0".to_string(),
|
ts_version: "2.0.0".to_string(),
|
||||||
unstable: false,
|
unstable: false,
|
||||||
user_agent: "starmelon".to_string(),
|
user_agent: "starmelon".to_string(),
|
||||||
|
..Default::default()
|
||||||
},
|
},
|
||||||
extensions: extensions,
|
extensions,
|
||||||
unsafely_ignore_certificate_errors: None,
|
..Default::default()
|
||||||
root_cert_store: None,
|
|
||||||
seed: None,
|
|
||||||
module_loader,
|
|
||||||
create_web_worker_cb,
|
|
||||||
web_worker_preload_module_cb,
|
|
||||||
format_js_error_fn: None,
|
|
||||||
source_map_getter: None,
|
|
||||||
maybe_inspector_server: None,
|
|
||||||
should_break_on_first_statement: false,
|
|
||||||
get_error_class_fn: Some(&get_error_class_name),
|
|
||||||
origin_storage_dir: None,
|
|
||||||
blob_store: BlobStore::default(),
|
|
||||||
broadcast_channel: InMemoryBroadcastChannel::default(),
|
|
||||||
shared_array_buffer_store: None,
|
|
||||||
compiled_wasm_module_store: None,
|
|
||||||
stdio: deno_runtime::ops::io::Stdio::default(),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let main_module = deno_core::resolve_path(path_str)?;
|
let main_module = ModuleSpecifier::from_file_path(path_str)
|
||||||
// note: resolve_url is just calling url::Url::parse and mapping the error type
|
.map_err(|_| AnyError::msg("path is not absolute"))?;
|
||||||
// let main_module = resolve_url(SPECIFIER)?;
|
let permissions = PermissionsContainer::allow_all();
|
||||||
let permissions = Permissions::allow_all();
|
|
||||||
|
|
||||||
let worker = MainWorker::from_options(main_module.clone(), permissions, options);
|
let worker = MainWorker::from_options(main_module.clone(), permissions, options);
|
||||||
//worker.bootstrap(&options);
|
//worker.bootstrap(&options);
|
||||||
|
|
@ -277,58 +253,4 @@ mod runtime {
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
const SPECIFIER: &str = "file://$deno$/bundle.js";
|
|
||||||
|
|
||||||
struct EmbeddedModuleLoader(String);
|
|
||||||
|
|
||||||
impl ModuleLoader for EmbeddedModuleLoader {
|
|
||||||
fn resolve(
|
|
||||||
&self,
|
|
||||||
specifier: &str,
|
|
||||||
_referrer: &str,
|
|
||||||
_is_main: bool,
|
|
||||||
) -> Result<ModuleSpecifier, AnyError> {
|
|
||||||
if let Ok(module_specifier) = resolve_url(specifier) {
|
|
||||||
//if get_source_from_data_url(&module_specifier).is_ok()
|
|
||||||
// || specifier == SPECIFIER
|
|
||||||
//{
|
|
||||||
return Ok(module_specifier);
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
Err(type_error(
|
|
||||||
"Self-contained binaries don't support module loading",
|
|
||||||
))
|
|
||||||
}
|
|
||||||
|
|
||||||
fn load(
|
|
||||||
&self,
|
|
||||||
module_specifier: &ModuleSpecifier,
|
|
||||||
_maybe_referrer: Option<ModuleSpecifier>,
|
|
||||||
_is_dyn_import: bool,
|
|
||||||
) -> Pin<Box<deno_core::ModuleSourceFuture>> {
|
|
||||||
let module_specifier = module_specifier.clone();
|
|
||||||
//let is_data_uri = get_source_from_data_url(&module_specifier).ok();
|
|
||||||
//let code = if let Some((ref source, _)) = is_data_uri {
|
|
||||||
// source.to_string()
|
|
||||||
//} else {
|
|
||||||
let code: Box<[u8]> = self.0.as_bytes().into();
|
|
||||||
//};
|
|
||||||
async move {
|
|
||||||
//if is_data_uri.is_none() && module_specifier.to_string() != SPECIFIER {
|
|
||||||
// return Err(type_error(
|
|
||||||
// "Self-contained binaries don't support module loading",
|
|
||||||
// ));
|
|
||||||
//}
|
|
||||||
|
|
||||||
Ok(deno_core::ModuleSource {
|
|
||||||
code,
|
|
||||||
module_type: deno_core::ModuleType::JavaScript,
|
|
||||||
module_url_specified: module_specifier.to_string(),
|
|
||||||
module_url_found: module_specifier.to_string(),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
.boxed_local()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ use deno_core::{Extension, OpState};
|
||||||
use elm_project_utils::{setup_generator_project, ElmResult};
|
use elm_project_utils::{setup_generator_project, ElmResult};
|
||||||
use os_pipe::dup_stderr;
|
use os_pipe::dup_stderr;
|
||||||
use sqlx::sqlite::SqlitePool;
|
use sqlx::sqlite::SqlitePool;
|
||||||
|
use std::borrow::Cow;
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
use std::convert::TryFrom;
|
use std::convert::TryFrom;
|
||||||
use std::fs;
|
use std::fs;
|
||||||
|
|
@ -284,18 +285,17 @@ pub(crate) fn run(
|
||||||
let mailbox: Arc<RefCell<Option<Result<Vec<u8>, String>>>> = Arc::new(RefCell::new(None));
|
let mailbox: Arc<RefCell<Option<Result<Vec<u8>, String>>>> = Arc::new(RefCell::new(None));
|
||||||
let mailbox_clone = Arc::clone(&mailbox);
|
let mailbox_clone = Arc::clone(&mailbox);
|
||||||
|
|
||||||
let mut extensions = vec![Extension::builder()
|
let mut extensions = vec![Extension {
|
||||||
.ops(vec![
|
ops: Cow::Owned(vec![
|
||||||
op_starmelon_bytes_output::decl(),
|
op_starmelon_bytes_output::decl(),
|
||||||
op_starmelon_string_output::decl(),
|
op_starmelon_string_output::decl(),
|
||||||
op_starmelon_problem::decl(),
|
op_starmelon_problem::decl(),
|
||||||
])
|
]),
|
||||||
.state(move |state| {
|
op_state_fn: Some(Box::new(move |state| {
|
||||||
state.put(Arc::clone(&mailbox_clone));
|
state.put(Arc::clone(&mailbox_clone));
|
||||||
|
})),
|
||||||
Ok(())
|
..Default::default()
|
||||||
})
|
}];
|
||||||
.build()];
|
|
||||||
|
|
||||||
let span = info_span!("register private api");
|
let span = info_span!("register private api");
|
||||||
let timing_guard = span.enter();
|
let timing_guard = span.enter();
|
||||||
|
|
@ -483,7 +483,7 @@ fn op_starmelon_problem(
|
||||||
#[deno_core::op]
|
#[deno_core::op]
|
||||||
fn op_starmelon_bytes_output(
|
fn op_starmelon_bytes_output(
|
||||||
state: &mut OpState,
|
state: &mut OpState,
|
||||||
msg: ElmResult<deno_core::ZeroCopyBuf, String>,
|
msg: ElmResult<deno_core::JsBuffer, String>,
|
||||||
) -> Result<(), deno_core::error::AnyError> {
|
) -> Result<(), deno_core::error::AnyError> {
|
||||||
let mailbox_clone = state.borrow::<OutputMailbox>();
|
let mailbox_clone = state.borrow::<OutputMailbox>();
|
||||||
if let Ok(mut mailbox) = mailbox_clone.try_borrow_mut() {
|
if let Ok(mut mailbox) = mailbox_clone.try_borrow_mut() {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue