code-comment-check
Version:
A fast, SWC-powered CLI for enforcing comment standards on variable declarations before commits.
167 lines (120 loc) โข 11.3 kB
Markdown
# ๐งฉ code-comment-check
> ๐ง ไธไธช่ฝป้ใๅฟซ้็ๅฝไปค่กๅทฅๅ
ท๏ผ็จไบๅจๆไบคไปฃ็ ๅๆฃๆฅๅ้ๅฃฐๆๆฏๅฆ็ผบๅฐๆณจ้ใ
> ้่ฟ็ฎๅ็ CLI๏ผไธ้ฎ็กฎไฟๅข้ไปฃ็ ็ๅฏ่ฏปๆงไธไธ่ดๆงใ
โถ๏ธ [ไธญๆๆๆกฃ](https://github.com/laoer536/code-comment-check/blob/main/README.zh.md)
## ๐ ไธบไปไน่ฆ็จ comment-check๏ผ
็ฐไปฃ้กน็ฎๅพๅพๆไธฅๆ ผ็ไปฃ็ ่ง่๏ผไฝใ**ๆณจ้่ง่**ใๅดๅฎนๆ่ขซๅฟฝ็ฅใ
`code-comment-check` ่งฃๅณ็ๅฐฑๆฏ่ฟไธช็็น๏ผ
* โ
่ชๅจๆฃๆตๆฏไธชๅฃฐๆๆฏๅฆๆๆณจ้
* โ
ๅจๆไบคๅ่ชๅจ้ปๆญขๆชๅ ๆณจ้็ไปฃ็ ๆไบค
* โ
้ป่ฎคไป
ๆฃๆฅ**ๆฌๆฌกๆไบคๅๆด็่ก**๏ผๅฟซ้้ซๆ
* โ
ๅฏๅผๅฏไธฅๆ ผๆจกๅผ๏ผ่ทๅๅๆดๆไปถๆๆๅฃฐๆๆฒกๆๆณจ้็ๆ
ๅต
* ๐ซ ้ป่ฎคๅฟฝ็ฅๆต่ฏๆไปถ๏ผ`__tests__`ใ`.test.ts`ใ`.spec.tsx` ็ญ๏ผ
้่ฟๅฎ๏ผไฝ ๅฏไปฅๅจ CI ๆๆฌๅฐ commit ้ถๆฎตๅผบๅถๆง่กๆณจ้ๆฃๆฅ่งๅ๏ผ
่ฎฉๅข้ไฟๆไธ่ด็ไปฃ็ ๅฏ่ฏปๆงๆ ๅใ
## ๐ฆ ๅฎ่ฃ
```bash
# ๆจ่ไฝฟ็จ pnpm
pnpm add -D code-comment-check
# ๆไฝฟ็จ npm / yarn
npm install -D code-comment-check
# ๆ
yarn add -D code-comment-check
```
ๅฎ่ฃ
ๅฎๆๅ๏ผไผ่ชๅจๆณจๅๅ
จๅฑๅฝไปค๏ผ
```bash
comment-check
```
## โ๏ธ ไฝฟ็จๆนๆณ
### ๐น ้ป่ฎคๆจกๅผ๏ผๆจ่๏ผ
```bash
pnpm comment-check
```
้ป่ฎค่กไธบ๏ผ
* ไป
ๆฃๆฅ **ๆฌๆฌกๆไบคๅๅจ็ๆไปถ็ๅๅจ่ก**๏ผ
* ่ชๅจ **ๅฟฝ็ฅๅๅ
ๆต่ฏๆไปถ**๏ผ
* ่พๅบ็ผบๅคฑๆณจ้็ๅ้ๅ่กจ๏ผๅ
ๅซๆไปถใ่กๅทใไปฃ็ ๏ผ๏ผ
* ๆฃๆฅๅคฑ่ดฅๆถ่ฟๅ้้ถ็ถๆ็ ๏ผๅฏ้ปๆญขๆไบคใ
### ๐น ไธฅๆ ผๆจกๅผ
```bash
pnpm comment-check --strict
```
ๅจไธฅๆ ผๆจกๅผไธ๏ผๅทฅๅ
ทไผๆซๆๅๆดๆไปถ๏ผๅนถๆฃๆฅๆๆๅฃฐๆ็ๆณจ้๏ผ
้็จไบไปฃ็ ๅฎกๆฅๆๆ็ปญ้ๆ๏ผCI๏ผ้ถๆฎต็ๅ
จ้ๆฃๆฅใ
## ๐ช ๅจ Git ๆไบคๅ่ชๅจๆฃๆฅ๏ผHusky ้ๆ๏ผ
ๅจ `.husky/pre-commit` ไธญๆทปๅ ไปฅไธๅ
ๅฎน๏ผ
```bash
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
pnpm comment-check
```
ๆง่กๆๆ๏ผ
* ่ฅๆฃๆต้่ฟ๏ผ็ปง็ปญๆไบค๏ผ
* ่ฅๆฃๆตๅคฑ่ดฅ๏ผๆๅฐ็ผบๅคฑๆณจ้่กจๆ ผๅนถไธญๆญๆไบคใ
## ๐ก ไฝฟ็จ็คบไพ่พๅบ
```
๐ Checking annotation comments...
โ ๏ธ Missing annotation comments:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ File โ Line โ Declaration โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ test/test2.ts โ 1 โ const test = '123' โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ test/test2.ts โ 2 โ let test1 = '123' โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ test/test2.ts โ 3 โ var test2 = '123' โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ test/test2.ts โ 4 โ export const test3 = '123' โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ test/test2.ts โ 5 โ export let test4 = '123' โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ test/test2.ts โ 6 โ export var test5 = '123' โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ test/test2.ts โ 8 โ interface Type { โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ test/test2.ts โ 12 โ type UserType = 'admin' | 'user' โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ test/test2.ts โ 14 โ export interface User { โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ test/test2.ts โ 20 โ export type UserWithType = User & { โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ test/test2.ts โ 24 โ const bb = '123' โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ test/test2.ts โ 25 โ const cc = '123' โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ test/test2.ts โ 26 โ const dd = '123' โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ test/test2.ts โ 28 โ function fn() { โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ test/test2.ts โ 32 โ class Test { โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ test/test2.ts โ 38 โ enum TestEnum { โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Please add comments before committing your code.
```
## ๐ ็นๆงไธไผๅฟ
| ็นๆง | ๆ่ฟฐ |
| -------- |----------------------------------------|
| โก๏ธ ้ซๆง่ฝ | ๅบไบ SWC ็ผ่ฏๅจ่งฃๆ๏ผ้ๅบฆ่ฟ่ถ
Babel |
| ๐งฉ ้ถ้
็ฝฎ | ๅฎ่ฃ
ๅณๅฏไฝฟ็จ๏ผ่ชๅจๆณจๅๅฝไปค |
| ๐ฌ ็ด่ง่พๅบ | ่กจๆ ผๅฝขๅผๅฑ็คบ็ผบๅฐๆณจ้็ๅ้ |
| ๐ง ๆบ่ฝ่ฏๅซ | ๆฏๆ Javascript / TypeScript / JSX / TSX |
| ๐ชถ ่ฝป้ๆ ไพตๅ
ฅ | ไธๆนๅๅไปฃ็ ็ปๆ๏ผไป
ๅๆ่ฏญๆณๆ |
| ๐ง ๅฏๆฉๅฑ | ๆฏๆ `--strict` ๅๆฐๆงๅถ่ๅด |
## ๐ ้็จๅบๆฏ
* ๅข้ไปฃ็ ่ง่ๆฃๆฅ
* ๆไบคๅๆณจ้ๅผบๅถๆ ก้ช
* CI ้ถๆฎตไปฃ็ ๅฎกๆฅ่ชๅจๅ
* ๅ
้จ่ง่ๅทฅๅ
ท้ๆ๏ผๅฆ monorepo ็ฏๅข๏ผ
## ๐ License
MIT ยฉ 2025 โ maintained by [laoer536](https://github.com/laoer536)]