diff --git a/Cargo.lock b/Cargo.lock index 2e4afc1..9142d48 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1010,6 +1010,16 @@ dependencies = [ "uuid", ] +[[package]] +name = "deno-runtime" +version = "0.1.0" +dependencies = [ + "anyhow", + "deno_core", + "tokio", + "tracing", +] + [[package]] name = "deno_core" version = "0.323.0" @@ -1398,7 +1408,7 @@ dependencies = [ "anyhow", "bytes", "chrono", - "deno_core", + "deno-runtime", "flate2", "futures-util", "http-body-util", diff --git a/apps/executeJS/src-tauri/Cargo.toml b/apps/executeJS/src-tauri/Cargo.toml index 506b77c..e830059 100644 --- a/apps/executeJS/src-tauri/Cargo.toml +++ b/apps/executeJS/src-tauri/Cargo.toml @@ -45,7 +45,7 @@ tokio-stream = "0.1" flate2 = "1.1" # JavaScript 런타임 의존성 (Deno Core) -deno_core = "0.323" +deno-runtime = { path = "../../../crates/deno-runtime" } [features] # this feature is used for production builds or when `devPath` points to the filesystem diff --git a/apps/executeJS/src-tauri/src/commands.rs b/apps/executeJS/src-tauri/src/commands.rs index 2cafdaa..dd8928e 100644 --- a/apps/executeJS/src-tauri/src/commands.rs +++ b/apps/executeJS/src-tauri/src/commands.rs @@ -1,6 +1,5 @@ use crate::js_executor::{execute_javascript_code, JsExecutionResult}; use serde::{Deserialize, Serialize}; -use tauri::State; #[derive(Debug, Serialize, Deserialize)] pub struct AppInfo { diff --git a/apps/executeJS/src-tauri/src/js_executor.rs b/apps/executeJS/src-tauri/src/js_executor.rs index 26a5606..a5997be 100644 --- a/apps/executeJS/src-tauri/src/js_executor.rs +++ b/apps/executeJS/src-tauri/src/js_executor.rs @@ -1,7 +1,5 @@ -use crate::deno_runtime::DenoExecutor; +use deno_runtime::DenoExecutor; use serde::{Deserialize, Serialize}; -use std::collections::VecDeque; -use std::sync::Mutex; #[derive(Debug, Clone, Serialize, Deserialize)] pub struct JsExecutionResult { diff --git a/apps/executeJS/src-tauri/src/lib.rs b/apps/executeJS/src-tauri/src/lib.rs index ee6f008..e06a972 100644 --- a/apps/executeJS/src-tauri/src/lib.rs +++ b/apps/executeJS/src-tauri/src/lib.rs @@ -4,7 +4,6 @@ #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] mod commands; -mod deno_runtime; mod js_executor; use commands::*; diff --git a/crates/deno-runtime/Cargo.toml b/crates/deno-runtime/Cargo.toml new file mode 100644 index 0000000..9895d51 --- /dev/null +++ b/crates/deno-runtime/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "deno-runtime" +version.workspace = true +edition.workspace = true +authors.workspace = true +license.workspace = true +repository.workspace = true +description = "Deno Core 기반 JavaScript 런타임" + +[dependencies] +# Workspace dependencies +anyhow.workspace = true +tokio.workspace = true +tracing.workspace = true + +# Deno Core dependencies +deno_core = "0.323" + +[dev-dependencies] +tokio.workspace = true diff --git a/apps/executeJS/src-tauri/src/bootstrap.js b/crates/deno-runtime/src/bootstrap.js similarity index 90% rename from apps/executeJS/src-tauri/src/bootstrap.js rename to crates/deno-runtime/src/bootstrap.js index 4299994..7300fa3 100644 --- a/apps/executeJS/src-tauri/src/bootstrap.js +++ b/crates/deno-runtime/src/bootstrap.js @@ -114,14 +114,11 @@ globalThis.require = (moduleName) => { }, uuid: { v4: () => { - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace( - /[xy]/g, - function (c) { - const r = (Math.random() * 16) | 0; - const v = c == 'x' ? r : (r & 0x3) | 0x8; - return v.toString(16); - } - ); + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { + const r = (Math.random() * 16) | 0; + const v = c == 'x' ? r : (r & 0x3) | 0x8; + return v.toString(16); + }); }, }, }; @@ -130,9 +127,7 @@ globalThis.require = (moduleName) => { return modules[moduleName]; } - throw new Error( - `Cannot find module '${moduleName}'. Available modules: ${Object.keys(modules).join(', ')}` - ); + throw new Error(`Cannot find module '${moduleName}'. Available modules: ${Object.keys(modules).join(', ')}`); }; // 기본적인 전역 객체들 정의 diff --git a/apps/executeJS/src-tauri/src/deno_runtime.rs b/crates/deno-runtime/src/lib.rs similarity index 100% rename from apps/executeJS/src-tauri/src/deno_runtime.rs rename to crates/deno-runtime/src/lib.rs