5 releases (3 breaking)

0.4.0 May 23, 2023
0.3.0 May 13, 2023
0.2.0 Feb 2, 2023
0.1.1 Jan 3, 2023
0.1.0 Dec 29, 2022

#2271 in Parser implementations

Download history 145/week @ 2024-01-20 201/week @ 2024-01-27 251/week @ 2024-02-03 222/week @ 2024-02-10 257/week @ 2024-02-17 209/week @ 2024-02-24 404/week @ 2024-03-02 302/week @ 2024-03-09 391/week @ 2024-03-16 315/week @ 2024-03-23 259/week @ 2024-03-30 365/week @ 2024-04-06 395/week @ 2024-04-13 350/week @ 2024-04-20 328/week @ 2024-04-27 241/week @ 2024-05-04

1,342 downloads per month
Used in 8 crates (4 directly)

MIT license

25KB
436 lines

package-lock-json-parser

ActionsStatus Crates.io

Easily parse package-lock.json dependencies.

It supports lock file versions 1, 2, and 3.

Example

// Getting a full package lock json file.
// You'll get information about the lock file version and a list of v1 or v2 dependencies.
// v1 lock files will only have v1 dependencies while v3 lock files will only have v2 dependencies. 
// v2 lock files will get both v1 and v2 dependencies.
// Check this URL (https://docs.npmjs.com/cli/v9/configuring-npm/package-lock-json?v=true) if you want to learn more about package-lock.json fields.
use std::{error::Error, fs};
use package_lock_json::{parse, PackageLockJson};

fn main() -> Result<(), Box<dyn Error>> {
    let package_lock_json_text = fs::read_to_string("package-lock.json")?;
    let lock_file: PackageLockJson = parse(package_lock_json_text)?;
    println!("{:?}", lock_file);
    Ok(())
}
// If you just a new a simple list of dependencies try the parse_dependencies function.
use std::{error::Error, fs};
use package_lock_json::{parse_dependencies, SimpleDependency};

fn main() -> Result<(), Box<dyn Error>> {
    let package_lock_json_text = fs::read_to_string("package-lock.json")?;
    let dependencies: Vec<SimpleDependency> = parse_dependencies(package_lock_json_text)?;
    println!("{:?}", dependencies);
    Ok(())
}

Documentation

Visit https://docs.rs/package-lock-json-parser/.

Build

You will need cargo, the Rust package manager.

cargo build

Test

cargo test

Dependencies

~1–1.8MB
~37K SLoC