Skip to content

Commit

Permalink
refactor: initial draft
Browse files Browse the repository at this point in the history
  • Loading branch information
metcoder95 committed Jul 27, 2023
1 parent b9caa01 commit 0cdaceb
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 12 deletions.
2 changes: 1 addition & 1 deletion crates/cli/src/commands.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use clap::{Parser, Subcommand};
use clap::{Parser, Subcommand, builder};
use pacquet_package_json::DependencyGroup;

/// Experimental package manager for node.js written in rust.
Expand Down
50 changes: 39 additions & 11 deletions crates/package_json/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -151,24 +151,52 @@ impl PackageJson {
}
}

pub fn list(&self, dependency_group: DependencyGroup, node_modules_path: &PathBuf, depth: u32) -> Result<(), PackageJsonError> {

let scope: &str;
pub fn list(&self, dependency_group: DependencyGroup, node_modules_path: &PathBuf, depth: u32) -> Result<String, PackageJsonError> {
let mut scope: String = String::new();
let default = Value::default();
match dependency_group {
DependencyGroup::Dev => scope = "devDependencies",
DependencyGroup::Default => scope = "dependencies",
_ => scope = "dependencies"
DependencyGroup::Dev => {
let mut dependencies = self
.value
.get("devDependencies")
.unwrap_or(&default)
.as_object()
.into_iter();

let dep = dependencies.next();
while !dep.is_none() {
let tree: String = dep.unwrap()
.into_iter()
.map(|(name, version)| {
let mut res = format!("{}@{}", name, version);

if depth > 1 {
let nested = PackageJson::from_path(&node_modules_path.join(name))
.unwrap();
let unwraped = nested.list(DependencyGroup::Dev, node_modules_path, depth);
res = format!("\n\t{}", unwraped.unwrap())
}

res
}).collect();
scope = format!("{:?}\n", tree);
}

},
DependencyGroup::Default => scope = "dependencies".to_string(),
_ => scope = "all".to_string()
}

let binding = Value::default();
let mut dependencies = self.value.get(scope).unwrap_or(&binding).as_object().into_iter();
// let binding = Value::default();
// let mut dependencies = self.value.get(scope).unwrap_or(&binding).as_object().into_iter();

let dep = dependencies.next();
// let mut dep = dependencies.next();
// while !dep.is_none() {

// println!("{:?}", dep);
// dep = dependencies.next();
// }

Ok(())
Ok(scope.clone())
}

}

0 comments on commit 0cdaceb

Please sign in to comment.