# Dukungan JavaScript di Maguyva: Pencarian AI untuk Repo Runtime Campuran

Canonical source: https://maguyva.ai/id/languages/javascript

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Maguyva mendukung JavaScript dengan parsing AST dan ekstraksi simbol, membantu agen AI bekerja lintas service Node, kode browser, script, dan modul legacy tanpa jatuh menjadi sekadar pencarian string.

## Snapshot dukungan

- Tier: Dukungan AST dan simbol
- Pemrograman
- Ekstensi: .cjs, .js, .mjs, .spec.js, .stories.js, .test.js
- Parsing AST sungguhan untuk pencarian sadar-syntax dan konteks struktural.
- Simbol bernama menggerakkan pencarian semantik dan cross-reference. Navigasi graf tersedia saat ekstraksi relasi diaktifkan.
- Bahasa ini menyumbangkan simbol dan relasi ke pencarian berbasis graf; jenis edge yang didukung bervariasi sesuai konstruk bawaan bahasa tersebut.
- Parsing AST dan ekstraksi simbol sama-sama tersedia.

## Paling cocok untuk

- Repositori Node dan browser yang belum pernah tuntas konvergen ke satu sistem module atau satu generasi framework.
- Tim yang memelihara JavaScript legacy sembari secara bertahap memperkenalkan TypeScript atau batas package baru.
- Alur kerja agen yang membutuhkan struktur lintas `.js`, `.mjs`, dan `.cjs`, bukan sekadar pencarian repo ad hoc.

## Workflow agen

- Menelusuri jalur request atau langkah build melalui modul JavaScript yang lebih lama sebelum mengeditnya.
- Membandingkan implementasi CommonJS dan ESM dari perilaku yang sama di seluruh repo.
- Menemukan pola yang berulang dalam script, utilitas, atau komponen frontend sebelum memperkenalkan abstraksi baru.

## Mengapa repo JavaScript campuran tetap butuh pencarian yang memahami struktur

Banyak tooling kode AI diam-diam memperlakukan JavaScript sebagai keadaan berantakan sebelum TypeScript "yang sesungguhnya." Itu meleset dari kenyataan bagaimana repo produksi sebenarnya terlihat. JavaScript masih memiliki langkah build, sistem plugin, kode browser, script tugas, dan jalur service berumur panjang yang tidak pernah dianggarkan untuk ditulis ulang secara bersih.

Karena itu, dukungan JavaScript bukan terutama soal sintaks yang rapi, melainkan riwayat perkembangan kodenya. Bahayanya bukan pada mem-parsing file. Bahayanya adalah mengedit modul atau helper tanpa memahami apakah itu milik CommonJS, ESM, kode browser, atau pola lokal lama tertentu.

## Apa yang sebenarnya diekstraksi Maguyva dari JavaScript

Maguyva mencakup `.js`, `.mjs`, dan `.cjs`, menormalkan panggilan berawalan member, dan mendukung heuristik komponen JSX dalam basis kode JavaScript yang mengaburkan batas frontend dan backend. Maguyva juga menyaring sebagian besar noise runtime browser dan Node standar sehingga relasi spesifik-repositori tetap terlihat.

Itu berguna dalam repo lama atau campuran, tempat konsep yang sama bisa muncul dalam lebih dari satu gaya file dan penamaan persisnya sering tidak konsisten.

## Alur kerja MCP yang berguna untuk repo runtime campuran

Alur kerja praktisnya biasanya seperti ini:

- Gunakan `text_pattern_search` untuk string persis seperti `module.exports`, nama event, atau penanda config lama.
- Gunakan `intelligent_search` saat Anda butuh eksplorasi di level perilaku seperti "alur upload legacy" atau "di mana auth diperiksa dalam bundle browser".
- Gunakan `get_task_context` saat penamaan tidak konsisten dan Anda ingin ringkasan yang sudah dirangkai sebelum agen mengedit apa pun.

## Kapan halaman ini berguna

Halaman ini untuk repo yang masih memiliki cakupan JavaScript yang berarti, bukan untuk tim yang berpura-pura migrasinya sudah selesai. Jika repo Anda saat ini sebagian besar TypeScript, mulai dari [TypeScript](/id/languages/typescript). Jika stack web lama masih merembes ke template server-side atau PHP, [panduan PHP](/id/languages/php) adalah pendamping yang lebih relevan.

## Detail engine

- Dukungan JavaScript mencakup `.js`, `.mjs`, dan `.cjs`, yang penting kalau satu repo masih memakai beberapa gaya module sekaligus.
- Prefix member dan argumen call dinormalisasi supaya helper yang berulang lebih mudah dibandingkan lintas file lama.
- Heuristik komponen JSX didukung, sementara banyak referensi ke global bawaan browser dan Node disaring agar tidak memenuhi graf relasi.

## Titik masuk MCP yang berguna

- `text_pattern_search`: Gunakan untuk string persis seperti `module.exports`, nama event, atau penanda config lawas sebelum memperluas pencarian.
- `intelligent_search`: Gunakan ini kalau penamaannya tidak konsisten dan Anda perlu menemukan sebuah perilaku seperti “alur upload file” alih-alih sebuah simbol.
- `get_task_context`: Berguna kalau repo-nya sudah melenceng dan Anda butuh ringkasan gabungan sebelum menyentuh jalur lawasnya.
