Bootstrap
defineBootstrap adalah entry point utama GamanJS. Fungsi ini membuat instance Gaman dan memberikan akses ke method mount() dan mountServer().
Penggunaan Dasar
Section titled “Penggunaan Dasar”import { defineBootstrap } from 'gaman';import AppRoutes from './modules/app/AppRoutes';
defineBootstrap(async (app) => { // Mount router, middleware, atau exception handler app.mount(AppRoutes);
// Jalankan HTTP server app.mountServer({ http: 3431 });});app.mount()
Section titled “app.mount()”Method mount() digunakan untuk mendaftarkan:
| Tipe | Deskripsi |
|---|---|
| Routes | Hasil dari composeRouter() — mendaftarkan semua route yang sudah didefinisikan |
| Middleware | Hasil dari composeMiddleware() — middleware global yang berjalan di semua route |
| ExceptionHandler | Hasil dari composeException() — global error handler |
Contoh: Mount Semua
Section titled “Contoh: Mount Semua”import { defineBootstrap } from 'gaman';import AppRoutes from './modules/app/AppRoutes';import AuthMiddleware from './modules/app/middlewares/AuthMiddleware';import GlobalExceptionHandler from './modules/app/exceptions/GlobalException';
defineBootstrap(async (app) => { // Mount middleware global app.mount(AuthMiddleware());
// Mount global exception handler app.mount(GlobalExceptionHandler);
// Mount routes app.mount(AppRoutes);
// Mount routes dengan prefix path app.mount(UserRouter('/user'));
app.mountServer({ http: 3431 });});Route dengan Prefix
Section titled “Route dengan Prefix”Kamu bisa memberikan prefix path saat melakukan mount router:
import UserRouter from './modules/user/UserRouter';
defineBootstrap(async (app) => { app.mount(UserRouter('/user'));});app.mountServer()
Section titled “app.mountServer()”Memulai HTTP server dengan konfigurasi yang diberikan.
Shorthand (Port Saja)
Section titled “Shorthand (Port Saja)”app.mountServer({ http: 3431 });Konfigurasi Lengkap
Section titled “Konfigurasi Lengkap”app.mountServer({ http: { port: 3431, host: 'localhost', // default: 'localhost' maxRequestBodySize: 1024 * 1024 * 50, // 50MB reusePort: false, // default: false development: true, // default: false },});Opsi HttpServerConfig
Section titled “Opsi HttpServerConfig”| Property | Type | Default | Deskripsi |
|---|---|---|---|
port | number | 3431 | Port HTTP server |
host | string | 'localhost' | Hostname server. Gunakan '0.0.0.0' untuk menerima dari semua interface |
maxRequestBodySize | number | — | Maksimum ukuran request body dalam bytes |
reusePort | boolean | false | Aktifkan SO_REUSEPORT socket option |
development | boolean | false | Mode development — menampilkan error stack detail |