Skip to main content

DependencyTrace

Struct DependencyTrace 

Source
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: String

The 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: bool

Whether the dependency is invoked from package.json scripts, CI configs or git hooks.

§is_used: bool

Whether the dependency is used at all: imported, invoked from scripts, or listed as a peer by a used package (peer_of).

§import_count: usize

Total 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

Source

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.

Source

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

Source§

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

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

impl JsonSchema for DependencyTrace

Source§

fn schema_name() -> Cow<'static, str>

The name of the generated JSON Schema. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

fn json_schema(generator: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
Source§

fn inline_schema() -> bool

Whether JSON Schemas generated for this type should be included directly in parent schemas, rather than being re-used where possible using the $ref keyword. Read more
Source§

impl Serialize for DependencyTrace

Source§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. 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<'a, T> FromIn<'a, T> for T

Source§

fn from_in(t: T, _: &'a Allocator) -> T

Converts to this type from the input type within the given allocator.
Source§

impl<'a, T> FromIn<'a, T> for T

Source§

fn from_in(t: T, _: &'a Allocator) -> T

Converts to this type from the input type within the given allocator.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<'a, T, U> IntoIn<'a, U> for T
where U: FromIn<'a, T>,

Source§

fn into_in(self, allocator: &'a Allocator) -> U

Converts this type into the (usually inferred) input type within the given allocator.
Source§

impl<'a, T, U> IntoIn<'a, U> for T
where U: FromIn<'a, T>,

Source§

fn into_in(self, allocator: &'a Allocator) -> U

Converts this type into the (usually inferred) input type within the given allocator.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more