1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
//! # Hammer
//! 
//! Hammer is a no-config cli tool for running concurrent tasks with monorepo support.
//! Monorepo tooling *should* be as simple as it can. Unfortunately, the current tooling is overly 
//! complex and can lead to a lot of time spent configuring and debugging, when you should be 
//! worried about writing your code.
//! 
//! You can think of Hammer as a lightweight alternative for turborepo. Currently, it only
//! supports JS/TS projects. In the future it could expand and have a larger number of languages
//! supported.
//! 
//! ### The `hammer` bin
//! 
//! The `hammer` binary is hammer's CLI. It aims to be as simple as it can get.
//! 
//! Syntax:
//! ```bash
//! hammer <SCRIPT> [OPTS]
//! ```
//! 
//! Example:
//! 
//! ```bash
//! hammer dev
//! ```
//! *Runs all the workspaces projects "hammer:dev" scripts.*
//! 
//! #### Disabling the prefix
//! 
//! By default, hammer will look up for all the scripts containing the prefix `hammer:` in package.json,
//! thus making it easy to gradually adopt the tool and run only the scripts you want using it.
//! If you don't want this, just use the `--no-prefix` flag and hammer will look for the `dev` script directly:
//! 
//! ```bash
//! hammer dev --no-prefix
//! ``` 
//! *Runs all workspace projects "dev" scripts.*
//! 
//! **alias**: -n
//! 
//! #### Filtering
//! 
//! You can filter which projects should be targeted by hammer:
//! 
//! ```bash
//! hammer dev --filter web
//! ```
//! *Will only run the dev script of the project that contains a package.json with the "name" being "web"* 
//! 
//! **alias**: -f

pub mod fs_checks;
pub mod npm_process;
pub mod package_json;
pub mod tasks;
pub mod errors;