rspack_core 0.7.11

rspack core
Documentation
use super::*;
use crate::logger::Logger;

pub async fn optimize_modules_pass(
  compilation: &mut Compilation,
  plugin_driver: SharedPluginDriver,
) -> Result<()> {
  let logger = compilation.get_logger("rspack.Compilation");
  let start = logger.time("optimize modules");

  let mut diagnostics = vec![];
  while matches!(
    plugin_driver
      .compilation_hooks
      .optimize_modules
      .call(compilation, &mut diagnostics)
      .await
      .map_err(|e| e.wrap_err("caused by plugins in Compilation.hooks.optimizeModules"))?,
    Some(true)
  ) {}
  compilation.extend_diagnostics(diagnostics);

  let result = plugin_driver
    .compilation_hooks
    .after_optimize_modules
    .call(compilation)
    .await
    .map_err(|e| e.wrap_err("caused by plugins in Compilation.hooks.afterOptimizeModules"));

  logger.time_end(start);
  result
}