Nxdom Framework

Nusantara eXtreme Development Object Model — dokumentasi resmi

CLI Terminal Nxdom

Panduan Terminal Nxdom untuk pintasan keyboard, navigasi folder, dan perintah proyek: start (termasuk proyek PHP Nxdom + router.php, deteksi Expo/Metro, pratinjau Electron), dev, stop, servers (tabel ASCII lewat tabelRaw.js), restart, install (Nxdom + install backend / Composer; alias instal), modules, npm install.

Input & pintasan terminal

  • Perintah utama: start, dev, install, modules, stop, servers.
  • Alias didukung: instal untuk install, cls untuk clear.
  • Gunakan format nama-perintah [argumen], mis. dev 5500 atau install react@v1.0.0.

Navigasi folder kerja

  • Gunakan cd <path> sebelum menjalankan install atau start.
  • CWD (current working directory) menentukan lokasi file yang dibuat dan server yang dijalankan.
  • Pastikan berada di root proyek saat menjalankan npm install, start, atau dev.

Buat/hapus file dan folder

  • mkdir <path> membuat folder (termasuk induk bila perlu).
  • touch <file> atau mkfile <file> membuat file kosong / update timestamp file.
  • rm <path> hapus file atau folder kosong.
  • rmr <path> hapus folder beserta isi (rekursif).
  • del <path> adalah alias rm.
  • Fitur ini butuh Electron API; path relatif membutuhkan cwd aktif.

Port default proyek

  • Untuk origin lokal (127.0.0.1, localhost, ::1): port default = port Nxdom + 100 (dengan penyesuaian konflik, maks. 65535).
  • Untuk origin non-lokal: default 4000.
  • Pengecualian Nxdom PHP (nxdom.bat/nxdom + system/bin/router.php): prompt start memakai default 8000, bukan aturan +100 di atas.
  • Port bisa diisi manual saat prompt atau langsung lewat dev 5500.

Perintah start

  • Proyek Nxdom PHP: jika di root cwd ada nxdom.bat atau nxdom dan ada system/bin/router.php, Nxdom menjalankan php -S 127.0.0.1:<port> system/bin/router.php (setara nxdom start), bukan Express static untuk .htaccess. Prompt port default 8000; log konsol [nxdom-php]. Butuh PHP di PATH atau Nxdom_PHP_PATH.
  • start dev setara dengan dev.
  • Jika ada metro.config.js tanpa server.js: jalur singkat npx expo start --web --port …; log [Nxdom-expo]; pratinjau di jendela Electron (openMobilePreview), fallback browser. Bantuan QR di UI mengarah ke Expo Go (exp://), bukan kartu “buka di browser HP”.
  • Jika ada electron.js tanpa server.js (bukan Expo): npm run dev; log [Nxdom-npm-dev]; main menunggu sinyal siap di log (Express/Electron/Vite/webpack) sebelum progres start: selesai.
  • Alur umum setelah pengecekan di atas: cek .htaccess (Apache-style) → server.js (Node) → Metro/Expo → electron-only; tanpa penanda: pesan server tidak ditemukan, sarankan dev [port].
  • Jika .htaccess ada (dan bukan proyek Nxdom PHP di atas): jalur Apache-style via startStaticServe.
  • Jika ada server.js: jalankan mode Node (node server.js dengan PORT).
  • start <url> atau start <port> bisa melewati prompt port dan membuka URL target langsung.

Perintah dev

  • dev berbagi implementasi dengan start dev.
  • dev [port] menggunakan port opsional, jika kosong akan memakai default proyek.
  • Eksplisit mendukung mode: Expo web, Electron-only (npm run dev), server.js, atau static folder.
  • Pada cabang dev, aturan .htaccess tidak menjadi syarat wajib.

Install paket proyek

  • Konvensi: dokumentasi memakai install (standar, selaras npm install). Terminal juga menerima instal — perilaku sama.
  • Nxdom (ZIP GitHub): menyalin isi subfolder paket ke cwd (bukan subfolder baru). Wajib cd ke folder tujuan; berkas sama dapat tertimpa.
  • Tag versi didukung untuk paket ZIP, mis. install web@v1.0.0 (ganti web sesuai paket).
  • Unduhan Nxdom memakai progres visual tanpa menampilkan URL di UI; pesan sukses tanpa baris “Sumber”.
  • Pilih jenis proyek di sub-bab berikut agar jelas perintah mana yang dipakai.

install web — template Nxdom (web)

  • Dipakai untuk proyek web / Nxdom front (isi dari web/ di arsip GitHub).
  • Perintah: install web atau instal web; versi: install web@v1.0.0.
  • Setelahnya biasanya npm install lalu start / dev sesuai isi folder.

install node — paket Node Nxdom

  • Dipakai bila Anda menargetkan template Node dari Nxdom (isi node/).
  • Perintah: install node / install node@v….
  • Lanjutkan dengan npm install bila ada package.json, lalu jalankan proyek sesuai panduan Node.

install react — React Native / Expo Nxdom

  • Dipakai untuk template React (isi react/), termasuk alur Expo/Metro di dokumentasi platform React.
  • Perintah: install react / install react@v….
  • Urutan umum: npm installstart atau dev dengan metro.config.js (lihat juga bagian React/Expo di bawah halaman).

install electron / install eletron — desktop Electron

  • Dipakai untuk template Electron Nxdom. Di repo, folder sumber bernama eletron — terminal menerima install electron dan install eletron (perilaku sama).
  • Perintah: install electron atau install eletron; tag: install electron@v….
  • Lanjut npm install lalu start / dev untuk proyek desktop.

Backend PHP (Composer): install backend

  • Dipakai bila Anda ingin framework PHP Nxdom lewat Composer, bukan ZIP Nxdom.
  • Perintah: install backend menjalankan composer create-project Nxdomdom/framework — nama folder proyek = basename cwd; install backend nama_folder membuat nama_folder di dalam cwd. Wajib Composer di PATH; progres UI berprefiks composer:.
  • Setelah Composer selesai (Windows + template CLI): jika belum ada, disalin nxdom.bat, nxdom, system/bin/nxdom-setup.ps1 (tanpa menimpa dari paket). Di Windows, nxdom-setup.ps1 dijalankan otomatis (PATH pengguna + fungsi nxdom di $PROFILE). Pesan sukses dapat mengingatkan . $PROFILE di PowerShell yang sudah terbuka. Log relevan di konsol Electron: [nxdom-backend-cli]. Linux/macOS: hanya penggabungan file template.
  • Untuk hanya memperbarui assets/modules di proyek PHP yang sudah ada, gunakan modules backend (sumber sama dengan web) — lihat bagian Modules.

Modules & npm install

  • modules web|node|electron|react memperbarui hanya assets/modules dari paket target. modules backend sama sumbernya dengan web. Tag didukung, mis. modules web@v1.0.0, modules backend@v1.0.0. Progres berprefiks modules:.
  • npm install (disarankan) atau npm instal menjalankan npm install di cwd (butuh package.json). Progres npm:; detail log di konsol Electron [Nxdom-npm-install]; sukses mis. “npm install selesai.”
  • Urutan umum setelah install template: npm install lalu start atau dev.

stop, restart, dan servers

  • stop menghentikan semua server yang dilacak (static, Node, PHP built-in php-php, npm/Expo) di sesi Nxdom yang sama (hanya proses yang dimulai lewat start/dev di sesi itu).
  • stop <port> menghentikan berdasarkan nomor port (termasuk server PHP). stop npm hanya untuk npm run dev / Expo di cwdbukan untuk menghentikan PHP; gunakan stop atau stop <port> yang sama dengan saat start.
  • Pesan ringkas: stop semua dapat merangkum port/jumlah proyek; stop npm mis. “Expo dihentikan” / “npm dev dihentikan” tanpa path panjang — detail lewat servers.
  • Di Windows, penghentian PHP dapat memakai cadangan netstat/taskkill hanya untuk jenis PHP router.
  • restart / restart 4000 melakukan stop + start ulang.
  • servers menggabungkan IndexedDB bucketsServer dan proses live Electron (getStaticServeStatus). Kolom status: jalan, tidak jalan (disinkronkan), berhenti, atau tersimpan tanpa Electron. Output tabel ASCII via tabelRaw.js (createTable); baris servers memakai hideTime() agar kolom sejajar. Kolom: nomor, jenis, port, status, folder root.

Progres UI & catatan integrasi

  • Operasi install (Nxdom + Composer), modules, dan npm install memakai NxdomNpm + stylesheet npm.css (dimuat lewat NXUI.NxdomStylesheet.Dom bila tersedia). Interval animasi dihentikan di destroy(); baris dihapus lewat NxdomRemoveTerminalProgressRow tanpa menyisakan baris kosong.
  • start/stop/dev (saat server): baris progres start: / stop: dengan spinner; renderer menunggu satu frame ganda (requestAnimationFrame) agar UI sempat terlihat sebelum IPC panjang.
  • Expo: main menunggu teks Web Bundled di stdout Metro (hingga timeout) sebelum IPC selesai; kartu QR bantuan memakai exp:// untuk Expo Go (tab Scan).
  • npm run dev (Electron-only): main menunggu pola log siap (mis. “Express server running”, “Electron] Memuat”, Vite/webpack) sebelum sukses.
  • Server Express Nxdom utama (index.js) terpisah dari server proyek folder yang dijalankan via terminal.
  • config.js mengatur URL/port aplikasi Nxdom, berbeda dari port proyek terminal kecuali sengaja disamakan.

Perintah lain & alur React/Expo

  • help, clear / cls, date, whoami, login / logout, user — sesuai integrasi aplikasi.
  • reload / reloade: muat ulang jendela pratinjau Expo/React tanpa restart Metro.
  • log: buka jendela Project Log untuk cwd aktif (log diperbarui periodik).
  • expoqr / qrlan: tampilkan ulang QR Expo Go (exp://) untuk proyek Expo yang masih berjalan.
  • pratinjau / openpreview: buka lagi jendela pratinjau Expo yang tertutup (Metro tetap jalan).
  • Ringkas React: install reactnpm installstart/dev dengan Metro; HP: expoqr + Expo Go; pratinjau tertutup: pratinjau.