Indocommit adalah Command-Line Interface (CLI) yang dirancang untuk menerjemahkan pesan commit berbahasa Indonesia ke dalam format standar English Conventional Commits secara instan.
Proyek ini dibangun secara kokoh menggunakan TypeScript dan Node.js. Struktur kode dirancang secara modular untuk memastikan kemudahan pemeliharaan dan skalabilitas pengembangan.
- CLI Entry (
index.ts): Menggunakancommander.jsuntuk mengurai argumen terminal, flag operasional, serta integrasi modul. - Interactive (
interactive.ts): Menggunakan@inquirer/promptsuntuk wizard interaktif pembuatan commit message. - Git Integration (
git.ts): Penanganan integrasi Git hook (prepare-commit-msg) dan eksekusi langsunggit commit. - Clipboard (
clipboard.ts): Penyalinan otomatis hasil konversi ke clipboard sistem. - Config Loader (
config.ts): Memuat konfigurasi kustom.indocommitrc.jsondari direktori lokal. - Detector (
detector.ts): Memindai pesan input untuk mengidentifikasi tipe commit dan scope. - Translator (
translator.ts): Memproses penerjemahan kata demi kata ke bahasa Inggris.
- Node.js (Versi 18 atau lebih baru)
- npm (Node Package Manager)
-
Kloning repositori ini ke dalam direktori lokal Anda:
git clone https://github.com/fa33az/indocommit.git cd indocommit -
Unduh dan instal seluruh dependensi yang dibutuhkan:
npm install
-
Jalankan proses kompilasi (build) kode sumber TypeScript:
npm run build
-
Tautkan modul secara global ke dalam environment sistem Anda:
npm link
npm install -g indocommitBerikan pesan commit Bahasa Indonesia sebagai argumen:
indocommit "benerin bug login"Output: fix(auth): fix bug login
Jalankan indocommit tanpa argumen atau gunakan flag -i untuk wizard interaktif:
indocommit -iOtomatis menyalin hasil penerjemahan ke clipboard:
indocommit "tambah fitur api" -cOtomatis menjalankan git commit -m "<hasil_terjemahan>":
indocommit "benerin bug database" -gPasang otomatis di repositori lokal Anda agar pesan commit Bahasa Indonesia dikonversi otomatis saat melakukan git commit:
indocommit --init-hookBuat berkas .indocommitrc.json pada root proyek Anda untuk menambahkan kata kunci kustom:
{
"typeKeywords": {
"perbaiki": "fix",
"rilis": "release"
},
"scopeKeywords": {
"pembayaran": "payment"
},
"wordTranslations": {
"pembayaran": "payment",
"gagal": "failed"
}
}