Skip to main content

reifydb_webassembly/
error.rs

1// SPDX-License-Identifier: Apache-2.0
2// Copyright (c) 2025 ReifyDB
3
4//! Error handling for WASM bindings
5
6use std::fmt::Display;
7
8use wasm_bindgen::prelude::*;
9
10/// JavaScript-compatible error wrapper
11#[wasm_bindgen]
12pub struct JsError {
13	message: String,
14}
15
16impl JsError {
17	/// Create a JsError from any error type
18	pub fn from_error<E: Display>(error: &E) -> JsValue {
19		let message = error.to_string();
20		JsValue::from_str(&message)
21	}
22
23	/// Create a JsError from a string message
24	pub fn from_str(message: &str) -> JsValue {
25		JsValue::from_str(message)
26	}
27}
28
29#[wasm_bindgen]
30impl JsError {
31	/// Get the error message
32	#[wasm_bindgen(getter)]
33	pub fn message(&self) -> String {
34		self.message.clone()
35	}
36}