rspack_core 0.100.1

rspack core
Documentation
use rspack_util::fx_hash::FxIndexMap;

use crate::{
  ChunkLoading, DependencyId, EntryOptions, Filename, LibraryOptions, PublicPath, WasmLoading,
};

pub type Entry = FxIndexMap<String, EntryData>;

pub type EntryItem = Vec<String>;

#[derive(Debug, Clone, Default)]
pub struct EntryDescription {
  pub import: Option<EntryItem>,
  pub runtime: Option<String>,
  pub chunk_loading: Option<ChunkLoading>,
  pub wasm_loading: Option<WasmLoading>,
  pub async_chunks: Option<bool>,
  pub public_path: Option<PublicPath>,
  pub base_uri: Option<String>,
  pub filename: Option<Filename>,
  pub depend_on: Option<Vec<String>>,
  pub library: Option<LibraryOptions>,
}

impl<V> From<V> for EntryDescription
where
  V: Into<String>,
{
  fn from(value: V) -> Self {
    Self {
      import: Some(vec![value.into()]),
      ..Default::default()
    }
  }
}

#[derive(Debug, Default, Clone, Hash, PartialEq, Eq)]
pub struct EntryData {
  pub dependencies: Vec<DependencyId>,
  pub include_dependencies: Vec<DependencyId>,
  pub options: EntryOptions,
}

impl EntryData {
  pub fn all_dependencies(&self) -> impl Iterator<Item = &DependencyId> {
    self
      .dependencies
      .iter()
      .chain(self.include_dependencies.iter())
  }
}