diff --git a/packages/cargo-pgml-components/Cargo.lock b/packages/cargo-pgml-components/Cargo.lock index 11d3781cb..08eea0796 100644 --- a/packages/cargo-pgml-components/Cargo.lock +++ b/packages/cargo-pgml-components/Cargo.lock @@ -126,7 +126,7 @@ dependencies = [ [[package]] name = "cargo-pgml-components" -version = "0.1.22" +version = "0.1.23" dependencies = [ "anyhow", "assert_cmd", diff --git a/packages/cargo-pgml-components/Cargo.toml b/packages/cargo-pgml-components/Cargo.toml index 491af4576..0b71f80cc 100644 --- a/packages/cargo-pgml-components/Cargo.toml +++ b/packages/cargo-pgml-components/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cargo-pgml-components" -version = "0.1.22" +version = "0.1.23" edition = "2021" authors = ["PostgresML "] license = "MIT" diff --git a/packages/cargo-pgml-components/src/frontend/tools.rs b/packages/cargo-pgml-components/src/frontend/tools.rs index 1d78a11c3..69d3731ca 100644 --- a/packages/cargo-pgml-components/src/frontend/tools.rs +++ b/packages/cargo-pgml-components/src/frontend/tools.rs @@ -11,7 +11,7 @@ use std::time::Duration; use notify_debouncer_full::{new_debouncer, notify::*, DebounceEventResult}; /// Required tools. -static TOOLS: &[&str] = &["sass", "rollup"]; +static TOOLS: &[&str] = &["sass", "rollup", "prettier"]; static ROLLUP_PLUGINS: &[&str] = &["@rollup/plugin-terser", "@rollup/plugin-node-resolve"]; static NVM_EXEC: &'static str = "/tmp/pgml-components-nvm.sh"; static NVM_SOURCE: &'static str = "https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh"; @@ -182,6 +182,34 @@ pub fn watch() { std::thread::sleep(std::time::Duration::MAX); } +pub fn lint(check: bool) { + let mut cmd = Command::new("prettier"); + if check { + cmd.arg("--check"); + } else { + cmd.arg("--write"); + } + + cmd.arg("src/**/*.js"); + + print("linting..."); + + let result = execute_with_nvm(&mut cmd); + + if let Err(err) = result { + if check { + error("diff detected"); + } else { + error!("error"); + } + + error!("{}", err); + exit(1); + } + + info("ok"); +} + fn rebuild() { unwrap_or_exit!(execute_command( Command::new("cargo").arg("pgml-components").arg("bundle") diff --git a/packages/cargo-pgml-components/src/main.rs b/packages/cargo-pgml-components/src/main.rs index 4c7c33aea..65ae67015 100644 --- a/packages/cargo-pgml-components/src/main.rs +++ b/packages/cargo-pgml-components/src/main.rs @@ -76,8 +76,14 @@ enum Commands { #[command(subcommand)] LocalDev(LocalDevCommands), - /// Watch for local changes, + /// Watch for local changes Watch, + + /// Lint your code + Lint { + #[arg(long, default_value = "false")] + check: bool, + }, } #[derive(Subcommand, Debug)] @@ -119,6 +125,9 @@ fn main() { Commands::Watch => { frontend::tools::watch(); } + Commands::Lint { check } => { + frontend::tools::lint(check); + } } } } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy