Skip to main content

package_json_basic_usage/
basic_usage.rs

1use use_package_json::{
2    DependencyKind, PackageJson, PackageName, PackageScript, PackageScriptName, PackageType,
3    PackageVersion,
4};
5
6fn main() -> Result<(), use_package_json::PackageJsonTextError> {
7    let manifest = PackageJson::new()
8        .with_name(PackageName::new("@rustuse/example")?)
9        .with_version(PackageVersion::new("0.1.0")?)
10        .with_package_type(PackageType::Module)
11        .with_script(
12            PackageScriptName::new("test")?,
13            PackageScript::new("vitest")?,
14        )
15        .with_dependency(
16            DependencyKind::Dependencies,
17            PackageName::new("react")?,
18            PackageVersion::new("^18")?,
19        );
20
21    assert!(manifest.name().is_some_and(PackageName::is_scoped));
22    Ok(())
23}