Make surrealdb.query()
and surrealdb.value()
consistent (#4675)
This commit is contained in:
parent
507dd931f3
commit
6e09684e4c
2 changed files with 4 additions and 25 deletions
core/src/fnc/script/modules/surrealdb
|
@ -1,11 +1,4 @@
|
|||
use crate::sql::{value as parse_value, Value as SurValue};
|
||||
use js::class::OwnedBorrow;
|
||||
use js::prelude::Coerced;
|
||||
use js::Exception;
|
||||
use js::{module::ModuleDef, Class, Ctx, Function, Module, Result, String as JsString, Value};
|
||||
use reblessive::tree::Stk;
|
||||
|
||||
use self::query::{QueryContext, QUERY_DATA_PROP_NAME};
|
||||
|
||||
mod functions;
|
||||
pub mod query;
|
||||
|
@ -13,20 +6,6 @@ pub mod query;
|
|||
#[non_exhaustive]
|
||||
pub struct Package;
|
||||
|
||||
#[js::function]
|
||||
async fn value(ctx: Ctx<'_>, value: Coerced<String>) -> Result<SurValue> {
|
||||
let value = parse_value(&value.0).map_err(|e| Exception::throw_type(&ctx, &e.to_string()))?;
|
||||
let this = ctx.globals().get::<_, OwnedBorrow<QueryContext>>(QUERY_DATA_PROP_NAME)?;
|
||||
let value = Stk::enter_run(|stk| async {
|
||||
value
|
||||
.compute(stk, this.context, this.opt, this.doc)
|
||||
.await
|
||||
.map_err(|e| Exception::throw_message(&ctx, &e.to_string()))
|
||||
})
|
||||
.await?;
|
||||
Ok(value)
|
||||
}
|
||||
|
||||
impl ModuleDef for Package {
|
||||
fn declare(decls: &js::module::Declarations) -> js::Result<()> {
|
||||
decls.declare("default")?;
|
||||
|
@ -52,7 +31,7 @@ impl ModuleDef for Package {
|
|||
exports.export("query", query_func.clone())?;
|
||||
default.set("query", query_func)?;
|
||||
|
||||
let value_func = Function::new(ctx.clone(), js_value)?.with_name("value")?;
|
||||
let value_func = Function::new(ctx.clone(), query::js_query)?.with_name("value")?;
|
||||
exports.export("value", value_func.clone())?;
|
||||
default.set("value", value_func)?;
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
use std::collections::BTreeMap;
|
||||
|
||||
use crate::sql::{self, subquery::Subquery, Value as SurValue};
|
||||
use crate::sql::{self, Value as SurValue};
|
||||
|
||||
use js::{
|
||||
class::Trace,
|
||||
|
@ -13,7 +13,7 @@ use js::{
|
|||
#[non_exhaustive]
|
||||
pub struct Query {
|
||||
#[qjs(skip_trace)]
|
||||
pub(crate) query: Subquery,
|
||||
pub(crate) query: SurValue,
|
||||
#[qjs(skip_trace)]
|
||||
pub(crate) vars: Option<BTreeMap<String, SurValue>>,
|
||||
}
|
||||
|
@ -96,7 +96,7 @@ impl<'js> FromJs<'js> for QueryVariables {
|
|||
impl Query {
|
||||
#[qjs(constructor)]
|
||||
pub fn new(ctx: Ctx<'_>, text: String, variables: Opt<QueryVariables>) -> Result<Self> {
|
||||
let query = sql::subquery(&text).map_err(|e| {
|
||||
let query = sql::value(&text).map_err(|e| {
|
||||
let error_text = format!("{}", e);
|
||||
Exception::throw_type(&ctx, &error_text)
|
||||
})?;
|
||||
|
|
Loading…
Reference in a new issue