pub struct DependencyTrace {
pub package_name: String,
pub imported_by: Vec<PathBuf>,
pub type_only_imported_by: Vec<PathBuf>,
pub used_in_scripts: bool,
pub is_used: bool,
pub import_count: usize,
pub peer_of: Vec<String>,
pub sources: Vec<TraceSource>,
pub tooling_credit: Option<ToolingCredit>,
pub unused_in: Vec<PathBuf>,
}Expand description
Result of tracing a dependency: where it is used.
Fields§
§package_name: StringThe dependency name being traced.
imported_by: Vec<PathBuf>Files that import this dependency.
type_only_imported_by: Vec<PathBuf>Files that import this dependency with type-only imports.
used_in_scripts: boolWhether the dependency is invoked from package.json scripts, CI configs or git hooks.
is_used: boolWhether the dependency is used at all: imported, invoked from scripts,
or listed as a peer by a used package (peer_of).
import_count: usizeTotal import count.
peer_of: Vec<String>Used packages that list this dependency in their installed
peerDependencies, required or optional, sorted by name. The
unused-dependency check credits such a peer, because the package that
lists it loads it at runtime. Absent when no used package lists it.
sources: Vec<TraceSource>The configs that declare this name as a Module Federation remote alias
under remotes, one per config. A remote alias is provided by a
remote container at runtime, not by an npm package. Absent when no
Federation config declares the name (issue #2796).
tooling_credit: Option<ToolingCredit>Why the unused devDependency check credits the dependency as tooling
when no file imports it and no script, CI workflow or git hook runs it.
When present, is_used is true. Absent otherwise.
unused_in: Vec<PathBuf>The manifests that the unused-dependency check flags for this name, relative to the project root and sorted. The check reads each declaring manifest on its own. An import credits the nearest manifest that installs the package, so a name that one workspace uses can still be unused in the root manifest or in another workspace. Absent when no manifest is flagged.
Implementations§
Source§impl DependencyTrace
impl DependencyTrace
Sourcepub fn apply_unused_declarations(
&mut self,
results: &AnalysisResults,
root: &Path,
)
pub fn apply_unused_declarations( &mut self, results: &AnalysisResults, root: &Path, )
Record the manifests that the unused-dependency report flags for this name, so the trace names each declaration that the report lists.
Sourcepub fn apply_tooling_credit(&mut self, credit: Option<ToolingCredit>)
pub fn apply_tooling_credit(&mut self, credit: Option<ToolingCredit>)
Attach the tooling credit of an otherwise unused dependency and count the dependency as used, so the trace agrees with the unused-dependency report. A dependency that an import or a script already uses keeps no credit, because the credit does not decide its status.
Trait Implementations§
Source§impl Debug for DependencyTrace
impl Debug for DependencyTrace
Source§impl JsonSchema for DependencyTrace
impl JsonSchema for DependencyTrace
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl Serialize for DependencyTrace
impl Serialize for DependencyTrace
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for DependencyTrace
impl RefUnwindSafe for DependencyTrace
impl Send for DependencyTrace
impl Sync for DependencyTrace
impl Unpin for DependencyTrace
impl UnsafeUnpin for DependencyTrace
impl UnwindSafe for DependencyTrace
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more