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
serdefeature.
§Non-goals
- Full npm registry validation.
- JSON parsing or formatting.
- Registry API behavior.
§License
Licensed under either Apache-2.0 or MIT.
Structs§
- Package
Json - Partial practical
package.jsonmetadata. - Package
Name - Validated package name metadata.
- Package
Script - Package
Script Name - Package
Version
Enums§
- Dependency
Kind package.jsondependency section kind.- Package
Json Text Error - Error returned when package metadata text is invalid.
- Package
Type package.jsonpackage type metadata.
Type Aliases§
- Dependency
Map - Dependency map keyed by package name.