Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Contributing to the Yam

Thank you for considering contributing to the Yam

## How You Can Contribute

1. **Create an Issue**
If you find a bug or have a feature request, please create an issue in the repository. Describe the problem or feature clearly.

2. **Fork the Repo**
If you'd like to contribute, please fork the repository and clone it locally.

3. **Create a Feature Branch**
Create a new branch for your feature or fix:

```bash
git checkout -b username/feature
```

4. **Install Dependencies**
Make sure you have [pnpm](https://pnpm.io/) installed. Install the project dependencies by running:

```bash
pnpm install
```

5. **Make Your Changes**
Implement the changes, ensuring your code follows the project's style and structure. Be sure to write meaningful commit messages.

6. **Create a Pull Request**
Once your feature or bug fix is complete, push your changes and open a pull request (PR). Describe the changes made and reference any related issues.

## License

By contributing, you agree that your contributions will be licensed under the **MIT License**.
41 changes: 39 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,40 @@
# yam
# **Yam**

Yet Another Maintainer ( YAM ) is an tool for auto configuring and managing linting and formatting tools in TS/JS ecosystem
Yam is a CLI tool built to automate the boring setup tasks of a typical Node.js project. If you're anything like me — tired and lazy before you even start writing code — you know the pain. You spend more time installing libraries, configuring tools, and managing dependencies than actually building something.

With Yam, you can skip all that repetitive setup. No more juggling a dozen configs just to get started. Yam sets up things like TypeScript, ESLint, Prettier, Husky, and more — all with just a few commands.

Built by a lazy developer, for lazy developers. Yam saves you time, energy, and sanity. It saved me — maybe it'll save you too.


## Quick Start
```bash
npm install -g @codeshaine/yam
npm install -D @codeshaine/yam
```

## Commands
```bash
yam init
yam setup <components> --option value
```
**Options**:
- `-t , --typescript` : Enable TS (`y`/`n`, default: `y`)
- `-p , --package-manager` : npm/yarn/pnpm/bun (default: pnpm)


## Supported Components
- typescript
- eslint
- prettier
- vitest
- husky (husky + lint-staged)
- workflows (Github Actions workflows)
- git

## Example
```bash
yam init
yam setup eslint --typescript y --package-manager pnpm
yam setup eslint -t y -p pnpm #alternative
```
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@codeshaine/yam",
"version": "1.0.5",
"version": "1.0.6",
"type": "module",
"description": "",
"main": "dist/index.js",
Expand All @@ -10,6 +10,7 @@
"typecheck": "tsc --noEmit",
"dev": "tsx src/index.ts",
"lint": "eslint .",
"format:check": "prettier . --check",
"format": "prettier . --write",
"prepare": "husky",
"prepublishOnly": "npm run build"
Expand Down
2 changes: 1 addition & 1 deletion src/handler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ export async function handleIndividualCommand(
await setUpHuskyAndLintStaged(cwd, templateDir, packageManager);
break;

case 'github-workflows':
case 'workflows':
await setUpGitHubWorkflows(cwd, templateDir, packageManager);
break;

Expand Down