Semua pembaruan penting untuk proyek Kilat akan didokumentasikan di berkas ini.
- Shell Command Execution (
$): Dukungan eksekusi perintah shell Linux/Termux menggunakan helper global$(baik sebagai fungsi biasa maupun sebagai tag template literal). Menghasilkan respons asinkron dengan metode.text(),.json(), serta propertistderrdanexitCode.
- Global Fetch API: Dukungan fungsi
fetch()global yang kompatibel dengan Fetch API standar. Fungsi ini berjalan secara asinkron di latar belakang menggunakan goroutine, tidak menghalangi event-loop JavaScript utama, dan mengembalikan objekResponseasli.
- Dukungan TypeScript Instan (v0.5.0): Eksekusi berkas TypeScript (
.ts,.tsx,.jsx) secara langsung dan transparan menggunakan integrasi compiler esbuild berkinerja tinggi. - Dukungan ES Modules (v1.5.0): Parser modul ESM (
import/export) yang ditranspilasi secara otomatis ke CommonJS saat runtime. - Optimalisasi Ekstrem & Stabil (v1.0.0 / v2.0.0): Refactoring total pipeline pemuatan modul dengan integrasi transpile esbuild di memori untuk startup super cepat.
- Built-in HTTP Server (
Bun.serve-like API): Server HTTP internal performa tinggi yang efisien menggunakan objek globalBun.serveuntuk menangani routing dan request/response. - Dukungan Fetch API Dasar: Global class
Request,Response, danHeadersyang kompatibel dengan Fetch API untuk mempermudah manipulasi HTTP request dan response. - REPL & Event-loop Integrasi: REPL interaktif yang sepenuhnya asinkron berbasis event-loop sehingga server HTTP atau promise dapat berjalan di background saat REPL sedang menunggu input pengguna.
- REPL Interaktif (Interactive Shell): Menjalankan runtime
kilattanpa argumen ataukilat replakan meluncurkan interpreter interaktif JavaScript di terminal. - Global Require di REPL: Dukungan penuh pemanggilan
require()untuk modul lokal maupun built-in langsung dari konsol REPL.
- Watch Mode (
--watch/-w): Mengizinkan auto-reload runtime saat ada perubahan berkas.jsatau.jsondi direktori proyek.- Jalankan dengan:
kilat run index.js --watchataukilat run index.js -w.
- Jalankan dengan:
- Auto Pemuatan File
.env: Kilat secara otomatis mencari, mengurai (parse), dan menyuntikkan variabel dari berkas.envdi direktori aktif ke dalam environment variables saat startup runtime.- Dapat dibaca via
os.getenv("VARIABLE_NAME").
- Dapat dibaca via
- CJS Wrapping: Pembungkusan kode JavaScript dengan standard module wrapper
(function(exports, require, module, __filename, __dirname) { ... })agar variable antar file tidak bocor ke global scope. - Relative Path Loading: Pemuatan modul menggunakan local relative path (
require('./helper')ataurequire('../config')). - JSON File Loading: Mengimpor berkas
.jsonsecara langsung menggunakanrequire(). - Built-in Module Interception: Panggilan
require('os'),require('fs'),require('net'), danrequire('console')diarahkan otomatis ke modul bawaan internal.
- Repository Fix: Memperbaiki berkas
.gitignoreagar biner rilis/kilattidak menyembunyikan direktori source codecmd/kilat/. - Auto-deploy Metadata: Integrasi Open Graph image preview (
kilat.jpg) untuk metadata link preview website. - Responsive Website: Desain web dokumentasi disempurnakan agar sepenuhnya responsif pada perangkat mobile (Termux screen size).
- Goja JavaScript Engine: Pemuatan runtime berbasis Goja (interpreter JavaScript murni dalam bahasa Go) yang ringan untuk Termux Android.
- Centralized Package Manager: Perintah
kilat add <package>mengunduh paket npm terpusat ke direktori global~/.kilat/packages/untuk menghemat memori penyimpanan. - Built-in Core Modules:
console(logging berwarna)fs(file system sinkron)net(HTTP clientfetch)os(akses OS, argumen CLI, environment)
- Interactive Project Init: Perintah
kilat inituntuk membuat berkaspackage.jsonsecara interaktif di terminal.