chore: update cargo edition to 2024 (#673)

This commit is contained in:
Valerio Ageno
2025-03-29 10:50:58 +01:00
committed by GitHub
parent 604581c64a
commit a786f11d28
28 changed files with 134 additions and 82 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
use crate::{ssr::Js, Payload};
use crate::{Payload, ssr::Js};
use axum::extract::{Path, Request};
use axum::response::Html;
use std::collections::HashMap;
+51 -18
View File
@@ -3,7 +3,12 @@ use std::collections::HashSet;
use std::env;
use std::fs;
pub fn load_env_vars(mode: Mode) {
/// Read the env variables from the .env files
/// and set them in the OS env
///
/// This function is unsafe because it modifies the OS env variables (which needs
/// to be done in a single-threaded context).
pub unsafe fn load_env_vars(mode: Mode) {
let mut env_files = vec![String::from(".env"), String::from(".env.local")];
let mode_name = match mode {
@@ -32,7 +37,9 @@ pub fn load_env_vars(mode: Mode) {
continue; // Skip if key exists in system env
}
env::set_var(key, value);
unsafe {
env::set_var(key, value);
}
}
}
}
@@ -63,7 +70,9 @@ mod tests {
fn add_system_var(&mut self, k: &str, v: &str) {
self.vars.insert(k.to_string(), v.to_string());
env::set_var(k, v);
unsafe {
env::set_var(k, v);
}
}
pub fn setup_env_file(&mut self, file_name: &str, contents: &str) {
@@ -86,7 +95,9 @@ mod tests {
let _ = fs::remove_file(file.as_str());
}
for key in self.vars.keys() {
env::remove_var(key);
unsafe {
env::remove_var(key);
}
}
}
}
@@ -99,7 +110,9 @@ mod tests {
mock_env.add_system_var("TEST_KEY", "system_value");
mock_env.setup_env_file(".env", "TEST_KEY=file_value");
load_env_vars(Mode::Dev);
unsafe {
load_env_vars(Mode::Dev);
}
mock_env.capture_keys(&["TEST_KEY"]);
@@ -114,7 +127,9 @@ mod tests {
mock_env.setup_env_file(".env", "TEST_KEY=base_value");
mock_env.setup_env_file(".env.development", "TEST_KEY=development_value");
load_env_vars(Mode::Dev);
unsafe {
load_env_vars(Mode::Dev);
}
mock_env.capture_keys(&["TEST_KEY"]);
@@ -129,7 +144,9 @@ mod tests {
mock_env.setup_env_file(".env", "TEST_KEY=base_value");
mock_env.setup_env_file(".env.production", "TEST_KEY=production_value");
load_env_vars(Mode::Prod);
unsafe {
load_env_vars(Mode::Prod);
}
mock_env.capture_keys(&["TEST_KEY"]);
@@ -144,7 +161,9 @@ mod tests {
mock_env.setup_env_file(".env", "TEST_KEY=base_value");
mock_env.setup_env_file(".env.local", "TEST_KEY=local_value");
load_env_vars(Mode::Dev);
unsafe {
load_env_vars(Mode::Dev);
}
mock_env.capture_keys(&["TEST_KEY"]);
@@ -160,7 +179,9 @@ mod tests {
mock_env.setup_env_file(".env.development", "TEST_KEY=development_value");
mock_env.setup_env_file(".env.development.local", "TEST_KEY=local_dev_value");
load_env_vars(Mode::Dev);
unsafe {
load_env_vars(Mode::Dev);
}
mock_env.capture_keys(&["TEST_KEY"]);
@@ -176,7 +197,9 @@ mod tests {
mock_env.setup_env_file(".env.production", "TEST_KEY=production_value");
mock_env.setup_env_file(".env.production.local", "TEST_KEY=local_prod_value");
load_env_vars(Mode::Prod);
unsafe {
load_env_vars(Mode::Prod);
}
mock_env.capture_keys(&["TEST_KEY"]);
@@ -191,7 +214,9 @@ mod tests {
mock_env.setup_env_file(".env.development", "TEST_KEY=development_value");
mock_env.setup_env_file(".env.production", "TEST_KEY=production_value");
load_env_vars(Mode::Prod);
unsafe {
load_env_vars(Mode::Prod);
}
mock_env.capture_keys(&["TEST_KEY"]);
@@ -205,7 +230,9 @@ mod tests {
mock_env.setup_env_file(".env", "");
load_env_vars(Mode::Dev);
unsafe {
load_env_vars(Mode::Dev);
}
assert!(env::var("NON_EXISTENT_KEY").is_err());
}
@@ -216,8 +243,9 @@ mod tests {
let mut mock_env = MockEnv::new();
mock_env.setup_env_file(".env", "INVALID_LINE\nMISSING_EQUALS_SIGN");
load_env_vars(Mode::Dev);
unsafe {
load_env_vars(Mode::Dev);
}
mock_env.capture_keys(&["INVALID_LINE", "MISSING_EQUALS_SIGN"]);
@@ -232,7 +260,9 @@ mod tests {
mock_env.setup_env_file(".env", r#"TEST_KEY="quoted_value""#);
load_env_vars(Mode::Dev);
unsafe {
load_env_vars(Mode::Dev);
}
mock_env.capture_keys(&["TEST_KEY"]);
@@ -243,8 +273,9 @@ mod tests {
#[serial]
fn test_non_existent_env_file() {
let mut mock_env = MockEnv::new();
load_env_vars(Mode::Dev);
unsafe {
load_env_vars(Mode::Dev);
}
mock_env.capture_keys(&["NON_EXISTENT_KEY"]);
@@ -258,7 +289,9 @@ mod tests {
mock_env.setup_env_file(".env", "KEY1=value1\nKEY2=value2");
load_env_vars(Mode::Dev);
unsafe {
load_env_vars(Mode::Dev);
}
mock_env.capture_keys(&["KEY1", "KEY2"]);
+1 -1
View File
@@ -21,7 +21,7 @@ pub use mode::Mode;
pub use payload::Payload;
pub use request::Request;
pub use response::{Props, Response};
pub use server::{tuono_internal_init_v8_platform, Server};
pub use server::{Server, tuono_internal_init_v8_platform};
pub use tuono_lib_macros::{api, handler};
// Re-exports
+1 -1
View File
@@ -1,6 +1,6 @@
use crate::config::GLOBAL_CONFIG;
use crate::manifest::MANIFEST;
use crate::mode::{Mode, GLOBAL_MODE};
use crate::mode::{GLOBAL_MODE, Mode};
use erased_serde::Serialize;
use regex::Regex;
use serde::Serialize as SerdeSerialize;
+4 -4
View File
@@ -1,8 +1,8 @@
use crate::Request;
use crate::{ssr::Js, Payload};
use crate::{Payload, ssr::Js};
use axum::Json;
use axum::http::{HeaderMap, StatusCode};
use axum::response::{Html, IntoResponse, Redirect};
use axum::Json;
use axum_extra::extract::cookie::{Cookie, CookieJar};
use erased_serde::Serialize;
@@ -82,7 +82,7 @@ impl Props {
}
impl Response {
pub fn render_to_string(&self, req: Request) -> impl IntoResponse {
pub fn render_to_string(&self, req: Request) -> impl IntoResponse + use<> {
match self {
Self::Props(Props {
data,
@@ -106,7 +106,7 @@ impl Response {
}
}
pub fn json(&self) -> impl IntoResponse {
pub fn json(&self) -> impl IntoResponse + use<> {
match self {
Self::Props(Props {
data,
+9 -3
View File
@@ -1,7 +1,7 @@
use crate::config::GLOBAL_CONFIG;
use crate::manifest::load_manifest;
use crate::mode::{Mode, GLOBAL_MODE};
use axum::routing::{get, Router};
use crate::mode::{GLOBAL_MODE, Mode};
use axum::routing::{Router, get};
use colored::Colorize;
use ssr_rs::Ssr;
use tower_http::services::ServeDir;
@@ -63,7 +63,13 @@ impl Server {
let server_address = format!("{}:{}", config.server.host, config.server.port);
load_env_vars(mode);
unsafe {
// This function is unsafe because it modifies the OS env variables
// which is not thread-safe.
// However, we are using it in a controlled environment which hasn't
// spawned any threads yet.
load_env_vars(mode);
}
Server {
router,
+1 -1
View File
@@ -1,5 +1,5 @@
use colored::Colorize;
use http::{method::Method, Request, Response};
use http::{Request, Response, method::Method};
use pin_project::pin_project;
use std::fmt::Debug;
use std::future::Future;
+1 -1
View File
@@ -1,4 +1,4 @@
use crate::mode::{Mode, GLOBAL_MODE};
use crate::mode::{GLOBAL_MODE, Mode};
use ssr_rs::{Ssr, SsrError};
use std::cell::RefCell;
use std::fs::read_to_string;
+1 -1
View File
@@ -4,8 +4,8 @@ use axum::response::IntoResponse;
use futures_util::{SinkExt, StreamExt};
use tokio_tungstenite::connect_async;
use tokio_tungstenite::tungstenite::{Error, Message};
use tungstenite::client::IntoClientRequest;
use tungstenite::ClientRequestBuilder;
use tungstenite::client::IntoClientRequest;
const VITE_WS_PROTOCOL: &str = "vite-hmr";