Nxdom Framework

Nusantara eXtreme Development Object Model — dokumentasi resmi

code Developer Extensions System

Sistem untuk membuat dan menginstall custom extensions melalui Developer panel. Extensions dibuat via terminal wizard nx dev, di-push ke Git, lalu didaftarkan melalui Developer Panel.


1. Membuat Extension Baru — Wizard nx dev

Langkah 1 — Buka terminal dan navigasi ke folder project

Working directory ini menjadi lokasi folder extension yang dibuat.

Langkah 2 — Jalankan wizard: nx dev

StepFieldKeterangan
1App NameNama folder & ID extension (huruf kecil, angka, -, _)
2TitleNama tampil di panel
3DescriptionDeskripsi singkat
4AuthorNama pembuat
5VersionFormat x.x.x (default: 1.0.0)
6PlacePilih lokasi: activity-bar / packages / edge
7iconClassIkon di Extensions panel (pilih 1–10)
8IconIkon Material di Activity Bar (pilih 1–8 atau ketik nama)
9TokenGitHub Access Token ghp_... — opsional

Langkah 3 — Hasil

Wizard membuat folder <appName>/ berisi: package.json, index.js, sidebar.js, panel.js, .gitignore.


2. Source Control — Commit & Push ke Git

  1. Klik kanan folder extension di panel Explorer → pilih Add Source Control.
  2. Klik ikon Source Control di Activity Bar.
  3. Temukan bagian Changes → isi Pesan Commit → klik Commit & Push Semua File.

3. Install Extension — Daftarkan ke Aplikasi

  1. Buka Developer Panel → tab For Developer Extensions.
  2. Masukkan URL Repository (mis. https://github.com/user/my-extension.git).
  3. Pilih mode: Install Extension biasa, atau centang Development Mode + isi Access Token.
  4. Buka panel Extensions → cari nama extension → klik Install → ikon muncul di Activity Bar.

4. Development Mode — Edit & Push Langsung

Saat Development Mode aktif:

  • Folder extension (path repodev) terbuka di sidebar Discovery
  • Badge hijau muncul di bagian atas Developer Panel
  • Setiap kali file disimpan (Ctrl+S), panel extension langsung update otomatis

Menghentikan Development Mode: Klik tombol Stop di badge hijau. Sistem akan commit & push perubahan terakhir secara otomatis, menghentikan file watcher, dan menghapus folder dari Discovery workspace.


5. Update Extension

Paste URL yang sama di form Repository URL → klik Install Extension. Sistem mendeteksi bahwa extension sudah ada dan menjalankan git pull — diperbarui tanpa uninstall.


8. Struktur Repository Extension

FileStatusKeterangan
README.mdWajibDokumentasi extension
package.jsonWajibMetadata extension
index.jsWajibRegistrasi view
sidebar.jsOpsionalNavigasi sidebar
panel.jsOpsionalKonten tab
styles.cssOpsionalCustom styles

10. Format package.json

FieldWajibKeterangan
idUnique ID — sama dengan appName, tidak boleh konflik
titleNama di Extensions panel
descriptionVersi dan deskripsi
versionVersi extension
authorNama pembuat
iconMaterial icon untuk Activity Bar
iconClassCSS class untuk Extensions panel
viewIdHarus sama dengan nama folder repo
placeLokasi render (default: activity-bar)
repodevPath folder sumber asli — diisi otomatis oleh nx dev

12. Nilai place

NilaiLokasi
"activity-bar"Sidebar kiri — icon di Activity Bar (default)
"packages"Muncul di list Packages sidebar
"edge"Tab di panel kanan (seperti Chat, Outline)

16. Aturan Baku — Tema Terang / Gelap

Extension wajib mengikuti sistem tema aplikasi. Gunakan variabel CSS agar extension otomatis menyesuaikan tema:

VariableKegunaan
--beranda-dv-bgBackground utama panel
--beranda-dv-textTeks utama
--beranda-dv-text-mutedTeks sekunder / label
--beranda-dv-accentAksen / link / tombol aktif
--beranda-dv-header-borderBorder standar
--beranda-dv-surfaceCard / surface elemen

Larangan: Jangan hard-code warna, jangan simpan preferensi tema sendiri, jangan ubah class dark-mode-grid pada body.


17. Aturan Baku — Scroll

Extension dilarang membuat scroll sendiri di dalam konten sidebar atau panel. Biarkan konten extension mengalir natural — sistem scroll panel akan menangani sisanya secara otomatis.


18. Stylesheet Extension — styles.css & nx bundle

Jika extension Anda memiliki file styles.css, jalankan nx bundle setiap kali menambah atau mengubah file CSS. Tanpa menjalankan nx bundle, tampilan extension tidak akan dimuat.


22. Troubleshooting

MasalahSolusi
Extension ditolak — README.md tidak ditemukanCommit dan push README.md ke repo, lalu install ulang
Clone gagal — repo tidak ditemukanPastikan URL benar; untuk repo private gunakan URL dengan Access Token
Extension ditolak — ID konflikUbah field id di package.json menjadi unik, commit, push, install ulang
Development Mode — perubahan tidak terlihat otomatisPastikan panel extension terbuka, file sudah disimpan (Ctrl+S), dan index.js menggunakan pola _loadFresh
nx dev — Working directory tidak ditemukanJalankan cd <folder> dulu sebelum nx dev