Something went wrong. Try again.
This repository has no description
Something went wrong. Try again.
1.6 kB · 50 lines
Rust
at wasm
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051use gleam_core::{ Error, Result, error::{FileIoAction, FileKind}, paths::ProjectPaths,};
use crate::{cli, fs};
pub fn command(paths: &ProjectPaths, packages: Vec<String>) -> Result<()> { // Read gleam.toml so we can remove deps from it let root_config = paths.root_config(); let mut toml = fs::read(&root_config)? .parse::<toml_edit::DocumentMut>() .map_err(|e| Error::FileIo { kind: FileKind::File, action: FileIoAction::Parse, path: root_config.to_path_buf(), err: Some(e.to_string()), })?;
// Remove the specified dependencies let mut packages_not_exist = vec![]; for package_to_remove in packages.iter() { #[allow(clippy::indexing_slicing)] let maybe_removed_item = toml["dependencies"] .as_table_like_mut() .and_then(|deps| deps.remove(package_to_remove));
#[allow(clippy::indexing_slicing)] let maybe_removed_dev_item = toml["dev-dependencies"] .as_table_like_mut() .and_then(|deps| deps.remove(package_to_remove));
if maybe_removed_item.or(maybe_removed_dev_item).is_none() { packages_not_exist.push(package_to_remove.into()); } }
if !packages_not_exist.is_empty() { return Err(Error::RemovedPackagesNotExist { packages: packages_not_exist, }); }
// Write the updated config fs::write(root_config.as_path(), &toml.to_string())?; _ = crate::dependencies::cleanup(paths, cli::Reporter::new())?;
Ok(())}