Make surrealdb.query() and surrealdb.value() consistent ()

This commit is contained in:
Tobie Morgan Hitchcock 2024-09-03 14:13:37 +01:00 committed by GitHub
parent 507dd931f3
commit 6e09684e4c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 4 additions and 25 deletions
core/src/fnc/script/modules/surrealdb

View file

@ -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)?;

View file

@ -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)
})?;