Skip to main content

ModuleGraph

Struct ModuleGraph 

Source
pub struct ModuleGraph { /* private fields */ }

Implementations§

Source§

impl ModuleGraph

Source

pub fn new() -> Self

Source

pub fn ensure_module(&mut self, path: &Path) -> &mut ModuleNode

Source

pub fn add_import(&mut self, importer: &Path, imported: &Path)

Source

pub fn set_self_accepting(&mut self, path: &Path, accepting: bool)

Source

pub fn set_accepted_deps(&mut self, path: &Path, deps: &[PathBuf])

Source

pub fn update_targets( &self, changed: &Path, ) -> Result<Vec<UpdateTarget>, String>

The update targets for a change. A self-accepting boundary accepts itself; an importer that declared the changed module (or a module on the way up) in hot.accept(deps) is the boundary for that dependency. Err means a full reload.

Source

pub fn update_targets_from_importers( &self, changed: &Path, ) -> Result<Vec<UpdateTarget>, String>

The update targets when a module calls import.meta.hot.invalidate(): its own acceptance is skipped and the walk starts at its importers, as Vite’s updateModules(..., [...mod.importers]) does. A module nothing imports is an entry, so the page must reload.

Source

pub fn set_imports( &mut self, importer: &Path, imports: &[PathBuf], ) -> Vec<PathBuf>

Record a module’s imports, returning the dependencies it no longer imports that nothing else imports either (Vite’s prunedImports in updateModuleInfo): the client is told to prune them so their side effects (an injected stylesheet) are undone.

Source

pub fn stamp_pruned(&mut self, paths: &[PathBuf], timestamp: u64)

Stamp pruned modules so a later re-import fetches and re-runs them (their side effects were undone), as Vite’s handlePrunedModules.

Source

pub fn accept_invalidation( &mut self, changed: &Path, timestamp: u64, ) -> Option<Vec<PathBuf>>

Accept a client’s import.meta.hot.invalidate() for changed: only a self-accepting module an update already touched, and only once per update (Vite’s lastHMRInvalidationReceived). Its importers up to the next boundaries are stamped so their re-fetch sees the invalidated module’s current version; the module itself keeps its stamp, so the instance the browser already loaded is reused rather than re-evaluated. Returns the stamped importers, or None when the call is ignored.

Source

pub fn contains(&self, path: &Path) -> bool

Source

pub fn module_paths(&self) -> Vec<PathBuf>

Source

pub fn propagate_update(&self, changed: &Path) -> HmrDecision

Source

pub fn node(&self, path: &Path) -> Option<&ModuleNode>

Source

pub fn stamp_update(&mut self, changed: &Path, timestamp: u64) -> Vec<PathBuf>

Record an HMR update of changed: stamp it and every module it dirties (its importers up to and including the accepting boundaries) with timestamp, and return that dirty set. Mirrors Vite’s moduleGraph.invalidateModule walking importers.

Source

pub fn hmr_timestamp(&self, path: &Path) -> u64

Source

pub fn imports_timestamp(&self, path: &Path) -> u64

The newest HMR timestamp among a module’s direct imports: part of the module’s compile cache key, so a cached importer is recompiled (and its import specifiers re-stamped) after one of its imports updates.

Source

pub fn propagate_from_seeds(&self, seeds: &[&Path]) -> HmrDecision

Source

pub fn update_plan(&self, changed: &Path) -> Result<UpdatePlan, String>

Source

pub fn update_plan_from_importers( &self, changed: &Path, ) -> Result<UpdatePlan, String>

Source

pub fn propagate_update_from_importers(&self, changed: &Path) -> HmrDecision

Trait Implementations§

Source§

impl Debug for ModuleGraph

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ModuleGraph

Source§

fn default() -> ModuleGraph

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.