mirror of
https://github.com/Drop-OSS/droplet.git
synced 2025-11-13 08:12:49 +10:00
fix: temporary remove luajit for compliation reasons
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
use boa_engine::{Context, JsValue, Source};
|
||||
use mlua::{FromLuaMulti, Function, Lua};
|
||||
// use mlua::{FromLuaMulti, Function, Lua};
|
||||
use napi::Result;
|
||||
use rhai::AST;
|
||||
|
||||
@ -14,14 +14,14 @@ pub struct Script(ScriptInner);
|
||||
|
||||
pub enum ScriptInner {
|
||||
Rhai { script: AST },
|
||||
Lua { script: Function },
|
||||
// Lua { script: Function },
|
||||
Javascript { script: boa_engine::Script },
|
||||
}
|
||||
|
||||
#[napi]
|
||||
pub struct ScriptEngine {
|
||||
rhai_engine: rhai::Engine,
|
||||
lua_engine: Lua,
|
||||
// lua_engine: Lua,
|
||||
js_engine: Context,
|
||||
}
|
||||
|
||||
@ -31,13 +31,13 @@ impl ScriptEngine {
|
||||
pub fn new() -> Self {
|
||||
ScriptEngine {
|
||||
rhai_engine: rhai::Engine::new(),
|
||||
lua_engine: Lua::new(),
|
||||
// lua_engine: Lua::new(),
|
||||
js_engine: Context::default(),
|
||||
}
|
||||
}
|
||||
|
||||
#[napi]
|
||||
pub fn build_rahi_script(&self, content: String) -> Result<Script> {
|
||||
pub fn build_rhai_script(&self, content: String) -> Result<Script> {
|
||||
let script = self
|
||||
.rhai_engine
|
||||
.compile(content.clone())
|
||||
@ -45,6 +45,7 @@ impl ScriptEngine {
|
||||
Ok(Script(ScriptInner::Rhai { script }))
|
||||
}
|
||||
|
||||
/*
|
||||
#[napi]
|
||||
pub fn build_lua_script(&self, content: String) -> Result<Script> {
|
||||
let func = self
|
||||
@ -54,6 +55,7 @@ impl ScriptEngine {
|
||||
.map_err(|e| napi::Error::from_reason(e.to_string()))?;
|
||||
Ok(Script(ScriptInner::Lua { script: func }))
|
||||
}
|
||||
*/
|
||||
|
||||
#[napi]
|
||||
pub fn build_js_script(&mut self, content: String) -> Result<Script> {
|
||||
@ -76,6 +78,7 @@ impl ScriptEngine {
|
||||
Ok(v)
|
||||
}
|
||||
|
||||
/*
|
||||
fn execute_lua_script<T>(&self, function: &Function) -> Result<T>
|
||||
where
|
||||
T: FromLuaMulti,
|
||||
@ -85,6 +88,7 @@ impl ScriptEngine {
|
||||
.map_err(|e| napi::Error::from_reason(e.to_string()))?;
|
||||
Ok(v)
|
||||
}
|
||||
*/
|
||||
|
||||
fn execute_js_script(&mut self, func: &boa_engine::Script) -> Result<JsValue> {
|
||||
let v = func
|
||||
@ -100,9 +104,9 @@ impl ScriptEngine {
|
||||
ScriptInner::Rhai { script } => {
|
||||
self.execute_rhai_script::<()>(script)?;
|
||||
}
|
||||
ScriptInner::Lua { script } => {
|
||||
/*ScriptInner::Lua { script } => {
|
||||
self.execute_lua_script::<()>(script)?;
|
||||
}
|
||||
}*/
|
||||
ScriptInner::Javascript { script } => {
|
||||
self.execute_js_script(script)?;
|
||||
}
|
||||
@ -114,14 +118,15 @@ impl ScriptEngine {
|
||||
pub fn fetch_strings(&mut self, script: &mut Script) -> Result<Vec<String>> {
|
||||
Ok(match &script.0 {
|
||||
ScriptInner::Rhai { script } => self.execute_rhai_script(script)?,
|
||||
ScriptInner::Lua { script } => self.execute_lua_script(script)?,
|
||||
//ScriptInner::Lua { script } => self.execute_lua_script(script)?,
|
||||
ScriptInner::Javascript { script } => {
|
||||
let v = self.execute_js_script(script)?;
|
||||
|
||||
serde_json::from_value(
|
||||
v.to_json(&mut self.js_engine)
|
||||
.map_err(|e| napi::Error::from_reason(e.to_string()))?,
|
||||
).map_err(|e| napi::Error::from_reason(e.to_string()))?
|
||||
)
|
||||
.map_err(|e| napi::Error::from_reason(e.to_string()))?
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user