Ikhtisar RunJS

RunJS adalah environment eksekusi JavaScript di NocoBase yang digunakan dalam skenario seperti JS Block, JS Field, dan JS Action. Kode dijalankan di sandbox terbatas, dapat secara aman mengakses ctx (API context), dan menyediakan kemampuan berikut:

  • Top-level async (Top-level await)
  • Mengimpor modul eksternal
  • Render dalam container
  • Variabel Global

Top-level async (Top-level await)

RunJS mendukung top-level await, tanpa perlu dibungkus dalam IIFE.

Tidak Direkomendasikan

async function test() {}
(async () => {
  await test();
})();

Direkomendasikan

async function test() {}
await test();

Mengimpor Modul Eksternal

  • Modul ESM menggunakan ctx.importAsync() (direkomendasikan)
  • Modul UMD/AMD menggunakan ctx.requireAsync()

Render dalam Container

Gunakan ctx.render() untuk merender konten ke container saat ini (ctx.element), mendukung tiga bentuk berikut:

Render JSX

ctx.render(<button>Button</button>);

Render Node DOM

const div = document.createElement('div');
div.innerHTML = 'Hello World';

ctx.render(div);

Render String HTML

ctx.render('<h1>Hello World</h1>');

Variabel Global

  • window
  • document
  • navigator
  • ctx