use bun_ast::{Expr, Log, Range, Source};
use bun_core::Error;
use bun_js_parser::Macro::{MacroContext, MacroJSCtx, MacroRemapEntry};
#[unsafe(no_mangle)]
pub extern "Rust" fn __bun_macro_context_init(_transpiler: *mut core::ffi::c_void) -> MacroContext {
MacroContext {
javascript_object: MacroJSCtx::ZERO,
data: core::ptr::null_mut(),
}
}
#[unsafe(no_mangle)]
pub extern "Rust" fn __bun_macro_context_deinit(data: *mut core::ffi::c_void) {
if data.is_null() {
return;
}
unreachable!("Bao macro bridge: deinit on a foreign MacroContext");
}
#[unsafe(no_mangle)]
pub extern "Rust" fn __bun_macro_context_call(
_ctx: &mut MacroContext,
_import_record_path: &[u8],
_source_dir: &[u8],
log: &mut Log,
_source: &Source,
_import_range: Range,
_caller: Expr,
_function_name: &[u8],
) -> Result<Expr, Error> {
log.add_error(
None,
bun_ast::Loc::EMPTY,
b"Macros are not supported in this Bao build",
);
Err(bun_core::err!("MacroNotSupported"))
}
#[unsafe(no_mangle)]
pub extern "Rust" fn __bun_macro_context_get_remap(
data: *mut core::ffi::c_void,
_path: &[u8],
) -> Option<&'static MacroRemapEntry> {
if data.is_null() {
return None;
}
unreachable!("Bao macro bridge: remap lookup on a foreign MacroContext");
}
#[unsafe(no_mangle)]
pub extern "Rust" fn __bun_macro_collect_vm_garbage() {}