UNPKG

henotic-cli

Version:

Henotic CLI is the ultimate multi-language backend generator, accelerating development with modular project structures and smart CRUD generation. Streamline your workflow from day one!

422 lines (316 loc) 9.38 kB
# 🦜 Henotic CLI - The Ultimate Backend Generator Henotic CLI adalah generator backend multi-bahasa yang mempercepat pengembangan dengan struktur proyek modular dan pembuatan CRUD yang cerdas. Streamline workflow kamu dari hari pertama! ## 📋 Daftar Isi - [Instalasi](#instalasi) - [Perintah Dasar](#perintah-dasar) - [Membuat Proyek Baru](#membuat-proyek-baru) - [TypeScript](#typescript) - [Golang](#golang) - [Bahasa Lainnya](#bahasa-lainnya) - [Membuat Model dan CRUD](#membuat-model-dan-crud) - [Mengelola Database](#mengelola-database) - [Seed Data](#seed-data) - [Unseed Data](#unseed-data) - [Migrasi](#migrasi) - [Drop Table](#drop-table) - [Reset](#reset) - [Menjalankan Aplikasi](#menjalankan-aplikasi) - [Mode Development](#mode-development) - [Mode Production](#mode-production) - [Struktur Proyek](#struktur-proyek) - [TypeScript](#struktur-typescript) - [Golang](#struktur-golang) - [Konfigurasi](#konfigurasi) - [Pemecahan Masalah](#pemecahan-masalah) - [FAQ](#faq) --- ## 🚀 Instalasi Henotic CLI membutuhkan [Bun](https://bun.sh) sebagai runtime. Pastikan Bun sudah terinstal di sistem kamu. ```bash # Install Henotic CLI curl -fsSL https://henotic.org/install | bash ``` Jika henotic tidak terdeteksi, kamu bisa menambahkan path ke henotic ke PATH sistem: ```bash export PATH="$PATH:$HOME/.bun/bin" ``` Verifikasi instalasi: ```bash henotic -v ``` --- ## 🛠️ Perintah Dasar Berikut adalah perintah dasar yang tersedia di Henotic CLI: ```bash henotic new <project-name> # Membuat proyek baru henotic generate <model> # Membuat model dan CRUD baru henotic seed <module> # Menjalankan seed pada modul henotic unseed <module> # Menjalankan unseed pada modul henotic migrate <module> # Menjalankan migrasi pada modul henotic drop <module> # Menjalankan drop table pada modul henotic reset <module> # Menjalankan drop + migrate + seed pada modul henotic dev # Menjalankan aplikasi dalam mode development henotic start # Menjalankan aplikasi dalam mode production henotic build # Build aplikasi henotic -h, --help # Menampilkan bantuan henotic -v, --version # Menampilkan versi CLI henotic update # Memperbarui CLI ke versi terbaru henotic delete # Menghapus Henotic CLI dari sistem ``` Opsi tambahan: ```bash --all # Menjalankan perintah pada semua modul (untuk seed/unseed/migrate/drop/reset) ``` --- ## 🏗️ Membuat Proyek Baru ### TypeScript ```bash henotic new my-app ``` Kamu akan diminta untuk memilih: 1. **Framework**: Express.js, Elysia (Bun), Hono, atau Next.js 2. **Database**: PostgreSQL, MongoDB, MariaDB, atau SQLite 3. **Project Directory**: Apakah menggunakan folder `src/` atau tidak Henotic akan: - Menginisialisasi proyek TypeScript - Menginstal dependensi yang diperlukan - Membuat struktur folder dasar - Membuat file konfigurasi `henotic.config.json` ### Golang ```bash henotic new go-app ``` Kamu akan diminta untuk memilih database: - PostgreSQL - MariaDB - SQLite Henotic akan: - Menginisialisasi modul Go - Menginstal dependensi yang diperlukan (gin, gorm, godotenv, dll) - Membuat struktur folder standar Go - Membuat file konfigurasi `henotic.config.json` - Membuat file `.env` dengan konfigurasi default ### Bahasa Lainnya Henotic juga mendukung Java, PHP, dan Rust (dalam pengembangan). --- ## 📊 Membuat Model dan CRUD Setelah proyek dibuat, kamu dapat membuat model dan operasi CRUD dengan perintah: ```bash henotic generate User name:string email:string age:number isActive:boolean ``` Format: `henotic generate <ModelName> <field1:type> <field2:type> ...` Tipe data yang didukung: - string - number - boolean - date - array - object Henotic akan membuat: - Model/Entity - Repository/DAO - Service - Controller/Handler - Routes - Validasi - Migrasi (jika diperlukan) - Seed - Sample data JSON --- ## 💾 Mengelola Database ### Seed Data Mengisi database dengan data sampel: ```bash # Seed satu modul henotic seed User # Seed semua modul henotic seed --all ``` ### Unseed Data Menghapus data seed dari database: ```bash # Unseed satu modul henotic unseed User # Unseed semua modul henotic unseed --all ``` ### Migrasi Membuat atau memperbarui skema database: ```bash # Migrasi satu modul henotic migrate User # Migrasi semua modul henotic migrate --all ``` ### Drop Table Menghapus tabel dari database: ```bash # Drop satu modul henotic drop User # Drop semua modul henotic drop --all ``` ### Reset Menjalankan drop + migrate + seed dalam satu perintah: ```bash # Reset satu modul henotic reset User # Reset semua modul henotic reset --all ``` > **Catatan**: Untuk proyek Go, perintah `reset` akan otomatis dialihkan ke `seed` karena proses seed di Go sudah mencakup operasi reset lengkap. --- ## 🚀 Menjalankan Aplikasi ### Mode Development Menjalankan aplikasi dalam mode development dengan hot-reload: ```bash henotic dev ``` ### Mode Production Build dan jalankan aplikasi dalam mode production: ```bash henotic start ``` Atau build saja tanpa menjalankan: ```bash henotic build ``` --- ## 📁 Struktur Proyek ### Struktur TypeScript ``` my-app/ ├── src/ (opsional) ├── config/ ├── db.json └── index.ts ├── modules/ └── users/ ├── user.schema.ts ├── user.repository.ts ├── user.service.ts ├── user.migrate.ts ├── user.seed.ts └── index.ts ├── router.ts ├── error.ts └── index.ts ├── data/ └── users.json ├── henotic.config.json └── package.json ``` ### Struktur Golang ``` go-app/ ├── cmd/ ├── main/ └── main.go └── seed/ └── main.go ├── internal/ ├── module/ └── user/ ├── entity/ └── user.go ├── service/ └── service.go ├── handler/ ├── handler.go └── route.go └── bootstrap.go └── seed/ └── user.go ├── pkg/ ├── config/ └── config.go ├── database/ └── database.go ├── middleware/ └── middleware.go └── utils/ └── response.go ├── data/ └── users.json ├── .env ├── go.mod ├── go.sum └── henotic.config.json ``` --- ## ⚙️ Konfigurasi Henotic menggunakan file `henotic.config.json` untuk menyimpan konfigurasi proyek: ```json { "language": "typescript", "framework": "express", "database": "postgresql", "projectDir": "src" } ``` - **language**: Bahasa pemrograman (`typescript`, `golang`, `java`, `php`, `rust`) - **framework**: Framework yang digunakan (`express`, `elysia`, `hono`, `next`, `gin`, dll) - **database**: Database yang digunakan (`postgresql`, `mongodb`, `mariadb`, `sqlite`) - **projectDir**: Direktori utama proyek (kosong atau `"src"`) ### Konfigurasi Environment Untuk proyek Go, Henotic membuat file `.env` dengan konfigurasi default: ``` # PostgreSQL DB_HOST=localhost DB_PORT=5432 DB_USER=postgres DB_PASSWORD=postgres DB_NAME=postgres SERVER_PORT=8080 APP_ENV=development TRUSTED_PROXIES=127.0.0.1 ``` ``` # MariaDB DB_HOST=localhost DB_PORT=3306 DB_USER=root DB_PASSWORD=password DB_NAME=mariadb SERVER_PORT=8080 APP_ENV=development TRUSTED_PROXIES=127.0.0.1 ``` ``` # SQLite DB_PATH=database.db SERVER_PORT=8080 APP_ENV=development TRUSTED_PROXIES=127.0.0.1 ``` --- ## 🔧 Pemecahan Masalah ### Perintah tidak ditemukan Jika `henotic` tidak ditemukan, pastikan: 1. Bun terinstal dengan benar 2. Path global Bun ada di PATH sistem 3. Coba instal ulang: `bun install -g henotic-cli` ### Gagal generate Jika gagal generate, pastikan: 1. Kamu berada di direktori root proyek 2. File `henotic.config.json` ada dan valid 3. Format perintah generate sudah benar ### Gagal seed/migrate Jika gagal seed atau migrate, pastikan: 1. Database sudah berjalan dan dapat diakses 2. Konfigurasi database sudah benar 3. Modul yang direferensikan sudah ada --- ## ❓ FAQ ### Apakah Henotic mendukung database lain? Saat ini Henotic mendukung PostgreSQL, MongoDB, MariaDB, dan SQLite. Dukungan untuk database lain sedang dalam pengembangan. ### Bagaimana cara menambahkan relasi antar model? Saat ini kamu perlu mengedit file model/entity secara manual untuk menambahkan relasi. Dukungan otomatis untuk relasi sedang dalam pengembangan. ### Apakah Henotic mendukung autentikasi? Belum ada dukungan bawaan untuk autentikasi, tetapi kamu dapat menambahkannya secara manual ke proyek yang dihasilkan. ### Bagaimana cara berkontribusi ke Henotic? Kunjungi repositori GitHub kami di [https://github.com/hens-msn](https://github.com/hens-msn) untuk informasi tentang cara berkontribusi. --- © 2025 Henotic Team. Dibuat dengan ❤️ untuk developer. --- Simpan konten ini dalam file `README.md` untuk dokumentasi proyek Anda!