🏗️ NusaFramework
Framework web Laravel-style untuk NusaScript — organized, scalable, production-ready.
🧱 Struktur MVC
🔒 Auth JWT Bawaan
🗄️ ORM Sederhana
⚡ Migrasi Database
🛡️ Middleware
Apa itu NusaFramework?
NusaFramework adalah cara terstruktur membangun REST API menggunakan NusaScript. Terinspirasi dari Laravel, NusaFramework memberikan konvensi yang jelas: di mana meletakkan routing, kontroler, model, dan middleware.
⚡ Tanpa Framework (cara lama)
// Semua dalam satu file panjang
buat app = server_baru(8080)
buat db = db_buka("sqlite", "app.db")
tambah_rute(app, "GET", "/api/pengguna", fungsi(req) {
// Logic langsung di sini... 200 baris lagi
})
🏗️ Dengan NusaFramework
// server.ns — bersih dan terstruktur
muat_file("config/app.ns")
muat_file("app/model/Pengguna.ns")
muat_file("app/kontroler/PenggunaKontroler.ns")
buat app = server_baru(PORT)
muat_file("rute/api.ns")
jalankan_server(app)
Memulai dalam 3 Langkah
Terminal
// Langkah 1: Buat proyek baru (seperti 'laravel new')
nusa buat:proyek toko-api
cd toko-api
// Langkah 2: Buat tabel database
nusa migrasi
// Langkah 3: Jalankan server
nusa jalankan server.ns
// Output: 🚀 toko-api berjalan di http://localhost:8080
Output
✨ NusaFramework — Membuat Proyek Baru Proyek: toko-api 📁 toko-api 📁 toko-api/app/kontroler 📁 toko-api/app/model ... 📄 toko-api/server.ns ✅ Proyek 'toko-api' berhasil dibuat!
Struktur Direktori yang Dihasilkan
Struktur Proyek
toko-api/
├── server.ns ← Entry point (jalankan ini)
├── .env ← Konfigurasi environment
├── rute/
│ └── api.ns ← Definisi semua rute API
├── app/
│ ├── kontroler/ ← Handler request HTTP
│ │ ├── AuthKontroler.ns
│ │ ├── PenggunaKontroler.ns
│ │ └── ProdukKontroler.ns
│ ├── model/ ← Model ORM database
│ │ ├── Pengguna.ns
│ │ └── Produk.ns
│ └── middleware/ ← Auth, logging, dll
│ └── auth.ns
├── database/
│ ├── migrasi.ns ← Skema database
│ └── seeder.ns ← Data awal
└── config/
└── app.ns ← Konfigurasi aplikasi
Alur Request
Bagaimana sebuah request ditangani:
1
Request Masuk
→
2
Router (rute/api.ns)
→
3
Middleware (auth.ns)
→
4
Kontroler (handler)
→
5
Model (ORM)
→
6
Response JSON
Fitur Framework
🔀
Routing
Definisi rute GET/POST/PUT/DELETE yang terorganisir di satu file
🎮
Kontroler
Fungsi handler terpisah per domain bisnis, mudah dibaca & diuji
🗄️
Model ORM
Model_semua, Model_temukan, Model_buat — query database tanpa SQL manual
🛡️
Middleware
wajib_login(), wajib_admin() — proteksi rute dengan token JWT
📦
Response Helper
resp_ok(), resp_error(), resp_paginasi() — format respons konsisten
⚙️
Konfigurasi .env
env_muat(), env_dapatkan() — konfigurasi terpisah per environment
Perintah CLI Framework
| Perintah | Deskripsi | Alias |
|---|---|---|
nusa buat:proyek <nama> | Buat proyek NusaFramework baru | new, create |
nusa migrasi [dir] | Jalankan file migrasi database | migrate |
nusa kelola:rute [dir] | Tampilkan daftar semua rute | route:list |
nusa jalankan server.ns | Jalankan server dalam mode interpreter | run |
nusa kompilasi server.ns | Kompilasi ke native binary | build |
Perbandingan dengan Laravel
| Konsep | Laravel (PHP) | NusaFramework (NusaScript) |
|---|---|---|
| Buat proyek | laravel new myapp | nusa buat:proyek myapp |
| Migrasi | php artisan migrate | nusa migrasi |
| Jalankan server | php artisan serve | nusa jalankan server.ns |
| Daftar rute | php artisan route:list | nusa kelola:rute |
| Definisi rute | Route::get('/path', [Ctrl::class, 'method']) | tambah_rute(app, "GET", "/path", aksi) |
| Model query | User::all() | Model_semua("Pengguna") |
| Auth middleware | ->middleware('auth') | Panggil wajib_login(req) di handler |
| Validasi | $request->validate([...]) | validasi(body, aturan) |
| Response | response()->json([...]) | resp_ok(data, pesan) |
📌 Tip: NusaFramework dirancang untuk developer Indonesia. Semua perintah, fungsi, dan dokumentasi menggunakan Bahasa Indonesia agar lebih mudah dipelajari dan dipahami.