rspack_plugin_javascript 0.7.11

rspack javascript plugin
Documentation
use rspack_core::{
  ModuleGraph, ModuleGraphConnection, PrefetchExportsInfoMode, RuntimeSpec, UsageState,
  UsedByExports,
};

pub mod plugin;
pub mod state;

pub fn connection_active_used_by_exports(
  connection: &ModuleGraphConnection,
  runtime: Option<&RuntimeSpec>,
  mg: &ModuleGraph,
  used_by_exports: Option<&UsedByExports>,
) -> bool {
  let Some(used_by_exports) = used_by_exports.as_ref() else {
    return true;
  };
  let used_by_exports = match used_by_exports {
    UsedByExports::Set(used_by_exports) => used_by_exports,
    UsedByExports::Bool(used) => return *used,
  };
  let module_identifier = mg
    .get_parent_module(&connection.dependency_id)
    .expect("should have parent module");
  let exports_info =
    mg.get_prefetched_exports_info(module_identifier, PrefetchExportsInfoMode::Default);
  used_by_exports
    .iter()
    .any(|name| exports_info.get_used(std::slice::from_ref(name), runtime) != UsageState::Unused)
}