macro_rules! namespace_field_getter {
    (
        $namespace:literal {
            $(
                $field_js_name:literal: $function_name:ident -> $field_type:ty;
            )*
        }
    ) => {
        $(
            pub fn $function_name<'env>(env: &'env napi::Env) -> Result<$field_type, napi::Error> {
                let vscode_object = super::VscodeContext::vscode(env)?;
                let window: bindgen_prelude::Object = vscode_object.get_named_property($namespace)?;

                window.get_named_property($field_js_name)
            }
        )*
    };
}

pub(crate) use namespace_field_getter;