pub struct NpmLockParser;Expand description
package-lock.json file parser.
Implements lock file parsing for npm package manager. Supports both project-level and workspace-level lock files.
§Lock File Location
The parser searches for package-lock.json in the following order:
- Same directory as package.json
- Parent directories (up to 5 levels) for workspace root
§Examples
use deps_npm::lockfile::NpmLockParser;
use deps_core::lockfile::LockFileProvider;
use tower_lsp_server::ls_types::Uri;
let parser = NpmLockParser;
let manifest_uri = Uri::from_file_path("/path/to/package.json").unwrap();
if let Some(lockfile_path) = parser.locate_lockfile(&manifest_uri) {
let resolved = parser.parse_lockfile(&lockfile_path).await?;
println!("Found {} resolved packages", resolved.len());
}Trait Implementations§
Source§impl LockFileProvider for NpmLockParser
impl LockFileProvider for NpmLockParser
Source§fn locate_lockfile(&self, manifest_uri: &Uri) -> Option<PathBuf>
fn locate_lockfile(&self, manifest_uri: &Uri) -> Option<PathBuf>
Locates the lock file for a given manifest URI. Read more
Source§fn parse_lockfile<'life0, 'life1, 'async_trait>(
&'life0 self,
lockfile_path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<ResolvedPackages>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn parse_lockfile<'life0, 'life1, 'async_trait>(
&'life0 self,
lockfile_path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<ResolvedPackages>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Parses a lock file and extracts resolved packages. Read more
Source§fn is_lockfile_stale(
&self,
lockfile_path: &Path,
last_modified: SystemTime,
) -> bool
fn is_lockfile_stale( &self, lockfile_path: &Path, last_modified: SystemTime, ) -> bool
Checks if lock file has been modified since last parse. Read more
Auto Trait Implementations§
impl Freeze for NpmLockParser
impl RefUnwindSafe for NpmLockParser
impl Send for NpmLockParser
impl Sync for NpmLockParser
impl Unpin for NpmLockParser
impl UnwindSafe for NpmLockParser
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
Mutably borrows from an owned value. Read more