#![deny(unsafe_code)]
#![warn(missing_docs)]
pub use makeshop_extensions_macros::{event, hook};
pub mod host;
#[doc(hidden)]
pub mod __internal {
use std::sync::Once;
static PANIC_HOOK: Once = Once::new();
pub fn init_panic_hook() {
PANIC_HOOK.call_once(|| {
std::panic::set_hook(Box::new(|panic_info| {
let message = panic_info
.payload()
.downcast_ref::<&str>()
.map(|s| (*s).to_string())
.or_else(|| panic_info.payload().downcast_ref::<String>().cloned())
.unwrap_or_else(|| "non-string panic payload".to_string());
let location = panic_info
.location()
.map(|location| format!("{}:{}", location.file(), location.line()))
.unwrap_or_else(|| "unknown".to_string());
crate::host::error(
"guest panic",
serde_json::json!({
"panic_message": message,
"location": location,
}),
);
}));
});
}
}
#[cfg(not(target_arch = "wasm32"))]
pub mod testing;
#[cfg(feature = "order-completed-content-v1")]
pub use content_blocks;
#[cfg(feature = "finalize-checkout-validation-v1")]
pub mod finalize_checkout_validation;
#[cfg(feature = "order-completed-v1")]
pub mod order_completed;
#[cfg(feature = "order-completed-content-v1")]
pub mod order_completed_content;
#[cfg(feature = "finalize-checkout-validation-v1")]
#[doc(hidden)]
pub use finalize_checkout_validation::bindings::export_finalize_checkout_validation;
#[cfg(feature = "order-completed-v1")]
#[doc(hidden)]
pub use order_completed::bindings::export_order_completed;
#[cfg(feature = "order-completed-content-v1")]
#[doc(hidden)]
pub use order_completed_content::bindings::export_order_completed_content;