rspack_core 0.7.11

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

pub async fn process_assets_pass(
  compilation: &mut Compilation,
  plugin_driver: SharedPluginDriver,
) -> Result<()> {
  let logger = compilation.get_logger("rspack.Compilation");
  let start = logger.time("process assets");
  compilation.process_assets(plugin_driver.clone()).await?;
  logger.time_end(start);

  let start = logger.time("after process assets");
  compilation.after_process_assets(plugin_driver).await?;
  logger.time_end(start);
  Ok(())
}

impl Compilation {
  #[instrument("Compilation:process_assets",target=TRACING_BENCH_TARGET, skip_all)]
  async fn process_assets(&mut self, plugin_driver: SharedPluginDriver) -> Result<()> {
    plugin_driver
      .compilation_hooks
      .process_assets
      .call(self)
      .await
      .map_err(|e| e.wrap_err("caused by plugins in Compilation.hooks.processAssets"))
  }

  #[instrument("Compilation:after_process_assets", skip_all)]
  async fn after_process_assets(&mut self, plugin_driver: SharedPluginDriver) -> Result<()> {
    let mut diagnostics: Vec<Diagnostic> = vec![];

    let res = plugin_driver
      .compilation_hooks
      .after_process_assets
      .call(self, &mut diagnostics)
      .await;

    self.extend_diagnostics(diagnostics);
    res
  }
}