# Podpora JavaScriptu v nástroji Maguyva: AI vyhledávání pro repozitáře se smíšeným runtime

Canonical source: https://maguyva.ai/cs/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 podporuje JavaScript díky AST parsování a extrakci symbolů a pomáhá AI agentům pracovat napříč Node službami, kódem prohlížeče, skripty a legacy moduly, aniž by se vyhledávání zhroutilo na obyčejné hledání řetězců.

## Přehled podpory

- Úroveň: Podpora AST a symbolů
- Programování
- Přípony: .cjs, .js, .mjs, .spec.js, .stories.js, .test.js
- Skutečné parsování AST pro vyhledávání citlivé na syntaxi a strukturální kontext.
- Pojmenované symboly napájejí sémantické vyhledávání a křížové odkazy. Navigace v grafu je k dispozici, když je povolena extrakce vztahů.
- Tento jazyk přispívá symboly a vztahy do vyhledávání využívajícího graf; podporované typy hran se liší podle jeho nativních konstrukcí.
- K dispozici je parsování AST i extrakce symbolů.

## Nejlépe se hodí pro

- Repozitáře Node a prohlížeče, které nikdy plně nepřešly na jeden modulový systém nebo jednu generaci frameworku.
- Týmy udržující legacy JavaScript, které postupně zavádějí TypeScript nebo nové hranice balíčků.
- Workflow agentů, které potřebují strukturu napříč `.js`, `.mjs` a `.cjs` místo ad hoc vyhledávání v repozitáři.

## Workflow agentů

- Vysledovat cestu requestu nebo build krok přes starší JavaScriptové moduly ještě před úpravou.
- Porovnat implementace CommonJS a ESM stejného chování napříč repozitářem.
- Najít opakující se vzory ve skriptech, utilitách nebo frontendových komponentách dřív, než zavedete novou abstrakci.

## Proč smíšené repozitáře JavaScriptu stále potřebují vyhledávání citlivé na strukturu

Hodně AI nástrojů pro kód potichu bere JavaScript jako neuklizený mezistav před „skutečným“ TypeScriptem. To ale míjí, jak produkční repozitáře doopravdy vypadají. JavaScript se stále používá pro build kroky, pluginové systémy, kód prohlížeče, task skripty a dlouhověké servisní cesty, na jejichž čisté přepsání nikdo nenaplánoval rozpočet.

To dělá z podpory JavaScriptu méně otázku hezké syntaxe a víc otázku historie. Nebezpečí není v naparsování souboru. Nebezpečí je v úpravě modulu nebo helperu bez pochopení, jestli patří k CommonJS, ESM, kódu prohlížeče, nebo nějakému staršímu lokálnímu vzoru.

## Co Maguyva v JavaScriptu skutečně extrahuje

Maguyva pokrývá `.js`, `.mjs` a `.cjs`, normalizuje volání s prefixem člena a podporuje heuristiky pro komponenty JSX v JavaScriptových codebase, které stírají hranici mezi frontendem a backendem. Zároveň odfiltruje velké množství šumu ze standardního prohlížečového a Node runtime, takže vztahy specifické pro daný repozitář zůstávají viditelné.

To se hodí ve starších nebo smíšených repozitářích, kde stejný koncept může existovat ve více než jednom stylu souboru a kde přesné pojmenování je často nekonzistentní.

## Užitečné workflow MCP pro repozitáře se smíšeným runtime

Praktický workflow obvykle vypadá takto:

- Použijte `text_pattern_search` pro přesné řetězce jako `module.exports`, názvy eventů nebo staré konfigurační značky.
- Použijte `intelligent_search`, když potřebujete objevování na úrovni chování, například „legacy upload flow“ nebo „kde se v prohlížečovém bundlu kontroluje autentizace“.
- Použijte `get_task_context`, když je pojmenování nekonzistentní a chcete ucelené shrnutí dřív, než agent cokoliv upraví.

## Kdy je tato stránka užitečná

Tato stránka je pro repozitáře, které stále mají významný podíl JavaScriptu, ne pro týmy, které předstírají, že migrace už je hotová. Pokud je aktuální repozitář převážně TypeScript, začněte s [TypeScriptem](/cs/languages/typescript). Pokud starý webový stack stále prosakuje do serverových šablon nebo PHP, relevantnějším společníkem je [průvodce PHP](/cs/languages/php).

## Podrobnosti enginu

- Podpora JavaScriptu pokrývá `.js`, `.mjs` a `.cjs`, což je důležité, pokud jedno repo pořád zahrnuje víc stylů modulů.
- Prefixy členů a argumenty volání se normalizují, takže opakující se helpery je snazší porovnávat napříč staršími soubory.
- Heuristiky pro JSX komponenty jsou podporované, zatímco obvyklá zeď vestavěných globálů prohlížeče a Node je z relačního šumu odfiltrována.

## Užitečné vstupní body MCP

- `text_pattern_search`: Použijte ho pro přesné řetězce jako `module.exports`, názvy událostí nebo starší konfigurační značky, než rozšíříte vyhledávání.
- `intelligent_search`: Použijte ho, když je pojmenování nekonzistentní a potřebujete najít chování jako „flow nahrávání souboru“ místo symbolu.
- `get_task_context`: Užitečné, když se repozitář postupně změnil a potřebujete souhrn propojených informací, než zasáhnete do starší části kódu.
