npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@rafxzflow/indoscript

v1.2.8

Published

JavaScript nganggo basa Jawa lan Indonesia

Readme

JawaScript

JavaScript nganggo basa Jawa.

JawaScript adalah transpiler kecil yang mengubah berkas .jawa menjadi JavaScript melalui tiga tahap: tokenizer → parser → emitter, lalu mengeksekusinya dengan Node.js. Versi ini tidak lagi memakai regex pengganti kata sederhana — bahasa diparsing sungguhan sehingga string/komentar tak pernah salah diubah, dan kamus kata terpusat di satu berkas.

Install

npm install -g @arwildo/jawascript

Usage

Buat file hello.jawa:

ono x = 10;
ono y = 20;

tampilno(x + y);

yen (x < y) {
    tampilno("x luwih cilik");
} ora {
    tampilno("x luwih gedhe");
}

Jalankan:

jawa hello.jawa

Output:

30
x luwih cilik

Contoh

kelas Kethek {
    constructor(jeneng) {
        iki.jeneng = jeneng;
    }

    mangan(kg) {
        tampilno(iki.jeneng + " mangan " + kg + " kg");
    }
}

ono si = anyar Kethek("Kiki");
si.mangan(2);

sambil fungsi jalur() {
    enteni janji((selesai) => setTimeout(selesai, 10));
    tampil.serat("selesai");
}

jalur();

Contoh lain tersedia di folder examples/: oop, async, error, switch, fors, console, web (butuh browser).

Keyword

Semua kata terpusat di src/keywords.js — untuk ganti/tambah kata cukup edit berkas itu saja. Tabel ringkas juga ada di keywords.md.

Dasar

| Jawa | JavaScript | | ------------- | ------------- | | ono | let | | paten | const | | tampilno | console.log | | yen | if | | ora yen | else if | | ora | else | | nganti | while | | kanggo | for | | saka | of (for...of) | | ing | in (for...in) | | fungsi | function | | balekno | return | | mandheg | break | | lanjutna | continue | | buang | throw | | bener | true | | salah | false |

Operator kata

Selain simbol JS (==, ===, =, !, &&, ||, <, >), operator juga bisa ditulis dalam kata:

| Jawa | JavaScript | | -------------- | ---------- | | lan | && | | utawa | \|\| | | padhaKaro | === | | oraPadha | !== | | gedhePadha | >= | | cilikPadha | <= | | gedhe | > | | cilik | < |

Fungsi built-in

| Jawa | JavaScript | | ------------------- | ----------- | | teksDadiInteger | parseInt | | teksDadiDesimal | parseFloat |

Kelas & OOP

| Jawa | JavaScript | | ----------- | ---------- | | kelas | class | | warisan | extends | | anyar | new | | iki | this | | konstruktor | constructor |

Async

| Jawa | JavaScript | | ---------- | ---------- | | sambil | async | | enteni | await |

Error handling

| Jawa | JavaScript | | ----------- | ---------- | | nyoba | try | | nompo | catch | | akhire | finally | | buang | throw |

Lainnya

| Jawa | JavaScript | | -------- | ----------- | | milih | switch | | kasus | case | | asale | default | | suwung | null | | rajelas | undefined |

Catatan: operator memakai simbol JS aslinya dan tidak diterjemahkan — ==, ===, !==, !=, !, =, &&, ||, <, >, dst. ditulis persis seperti JavaScript, tapi ada juga padanan katanya (lan, utawa, padhaKaro, dst., lihat tabel di atas). Arrow => juga dipakai apa adanya, misal (e) => tampilno(e).

Belum didukung: typeof, instanceof, template literal, destructuring, getter/setter.

Member: console & DOM

Kamus member (MEMBERS di src/keywords.js) memetakan objek/method umum:

| Jawa | JavaScript | | --------------------- | --------------------- | | tampil.serat | console.log | | tampil.ngadat | console.error | | tampil.awas | console.warn | | tampil.kabar | console.info | | tampil.tabel | console.table | | dokumen | document | | layar | window | | janji | Promise | | kirim | fetch | | jupuk | querySelector | | jupukKabeh | querySelectorAll | | jupukId | getElementById | | gawe | createElement | | tempel | appendChild | | rungokno | addEventListener | | teksDadiInteger | parseInt | | teksDadiDesimal | parseFloat | | konstruktor | constructor |

Contoh: dokumen.jupuk("#tombol").rungokno("click", (e) => { ... }) → document.querySelector("#tombol").addEventListener("click", ...).

Contoh di examples/ yang memakai DOM (web.jawa) memerlukan browser; yang lain berjalan di Node.js.

Cara Kerja

  1. Tokenizer (src/tokenizer.js) memecah .jawa menjadi token (identifier, keyword, angka, string, operator). Kata yang mirip dicocokkan paling panjang dulu, misal tampilno vs tampil, supaya tidak keliru.
  2. Parser (src/parser.js) membangun AST dengan recursive descent. Percabangan, perulangan, fungsi, class/OOP, async/await, error handling, switch, dan object/array benar-benar diparsing.
  3. Emitter (src/emitter.js) mengubah AST menjadi JavaScript, lalu dieksekusi.

Mengganti kata cukup di src/keywords.js; tokenizer/parser/emitter otomatis mengikuti tanpa perubahan lain.

JawaScript adalah project eksperimen yang dibuat untuk bersenang senang dan belajar bahasa jawa secara secara programming.