Skip to main content

Crate use_package_json

Crate use_package_json 

Source
Expand description

§use-package-json

package.json metadata primitives for RustUse.

§Experimental

use-package-json is experimental while use-js remains below 0.3.0.

§Example

use use_package_json::{DependencyKind, PackageJson, PackageName, PackageScript, PackageScriptName, PackageType, PackageVersion};

let manifest = PackageJson::new()
    .with_name(PackageName::new("@rustuse/example")?)
    .with_version(PackageVersion::new("0.1.0")?)
    .with_package_type(PackageType::Module)
    .with_script(PackageScriptName::new("test")?, PackageScript::new("vitest")?)
    .with_dependency(DependencyKind::Dependencies, PackageName::new("react")?, PackageVersion::new("^18")?);

assert!(manifest.name().is_some_and(PackageName::is_scoped));

§Scope

  • Lightweight package names, versions, scripts, dependency maps, and package type metadata.
  • Optional serde derives behind the serde feature.

§Non-goals

  • Full npm registry validation.
  • JSON parsing or formatting.
  • Registry API behavior.

§License

Licensed under either Apache-2.0 or MIT.

Structs§

PackageJson
Partial practical package.json metadata.
PackageName
Validated package name metadata.
PackageScript
PackageScriptName
PackageVersion

Enums§

DependencyKind
package.json dependency section kind.
PackageJsonTextError
Error returned when package metadata text is invalid.
PackageType
package.json package type metadata.

Type Aliases§

DependencyMap
Dependency map keyed by package name.