# Maguyva में JavaScript सपोर्ट: मिश्रित रनटाइम रिपॉज़िटरी के लिए AI सर्च

Canonical source: https://maguyva.ai/hi/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, AST पार्सिंग और सिंबल एक्सट्रैक्शन के साथ JavaScript को सपोर्ट करता है, जिससे AI एजेंट Node सर्विसेज़, ब्राउज़र कोड, स्क्रिप्ट, और लेगेसी मॉड्यूल में बिना स्ट्रिंग सर्च तक सिमट जाने के काम कर पाते हैं।

## सपोर्ट स्नैपशॉट

- टियर: AST और सिंबल सपोर्ट
- प्रोग्रामिंग
- एक्सटेंशन: .cjs, .js, .mjs, .spec.js, .stories.js, .test.js
- सिंटैक्स-अवेयर सर्च और स्ट्रक्चरल कॉन्टेक्स्ट के लिए असली AST पार्सिंग।
- नामित सिंबल सिमेंटिक लुकअप और क्रॉस-रेफ़रेंस को फ़ीड करते हैं। रिलेशनशिप एक्सट्रैक्शन सक्षम होने पर ग्राफ़ नेविगेशन उपलब्ध होता है।
- यह भाषा ग्राफ़-अवेयर सर्च में सिंबल्स और रिलेशनशिप्स जोड़ती है; सपोर्टेड एज प्रकार इसके नेटिव कंस्ट्रक्ट्स के अनुसार बदलते हैं।
- AST पार्सिंग और सिंबल एक्सट्रैक्शन, दोनों उपलब्ध हैं।

## सबसे उपयुक्त

- Node और ब्राउज़र रिपॉज़िटरी जो कभी किसी एक मॉड्यूल सिस्टम या एक फ़्रेमवर्क पीढ़ी पर पूरी तरह एकीकृत नहीं हो पाईं।
- वे टीमें जो धीरे-धीरे TypeScript या नई पैकेज सीमाएं लाते हुए लेगेसी JavaScript को मेंटेन करती हैं।
- एजेंट वर्कफ़्लो जिन्हें तदर्थ रिपॉज़िटरी सर्च के बजाय `.js`, `.mjs`, और `.cjs` में संरचना चाहिए।

## एजेंट वर्कफ़्लो

- एडिट करने से पहले किसी रिक्वेस्ट पथ या बिल्ड चरण को पुराने JavaScript मॉड्यूल में ट्रेस करें।
- पूरे रिपॉज़िटरी में एक ही व्यवहार के CommonJS और ESM इम्प्लीमेंटेशन की तुलना करें।
- नया एब्स्ट्रैक्शन लाने से पहले स्क्रिप्ट, यूटिलिटी, या फ़्रंटएंड कंपोनेंट में दोहराए जाने वाले पैटर्न खोजें।

## मिश्रित JavaScript रिपॉज़िटरी को अब भी संरचना-जागरूक सर्च की ज़रूरत क्यों है

कई AI कोड टूल चुपचाप JavaScript को "असली" TypeScript से पहले की अस्त-व्यस्त अवस्था मानते हैं। इससे यह छूट जाता है कि प्रोडक्शन रिपॉज़िटरी वास्तव में कैसी दिखती हैं। JavaScript अब भी बिल्ड चरणों, प्लगइन सिस्टम, ब्राउज़र कोड, टास्क स्क्रिप्ट, और लंबे समय से चल रहे सर्विस पथों का आधार है, जिन्हें साफ़-सुथरे तरीके से फिर से लिखने के लिए किसी ने बजट नहीं रखा।

इससे JavaScript सपोर्ट खूबसूरत सिंटैक्स से कम और इतिहास से ज़्यादा जुड़ जाता है। ख़तरा फ़ाइल को पार्स करने में नहीं है। ख़तरा यह समझे बिना किसी मॉड्यूल या हेल्पर को एडिट करने में है कि वह CommonJS का है, ESM का, ब्राउज़र कोड का, या किसी पुराने स्थानीय पैटर्न का।

## Maguyva वास्तव में JavaScript में क्या एक्सट्रैक्ट करता है

Maguyva `.js`, `.mjs`, और `.cjs` को कवर करता है, मेंबर-प्रीफ़िक्स्ड कॉल्स को नॉर्मलाइज़ करता है, और उन JavaScript कोडबेस में JSX कंपोनेंट हेयुरिस्टिक्स को सपोर्ट करता है जहां फ़्रंटएंड और बैकएंड की सीमाएं धुंधली हो जाती हैं। यह मानक ब्राउज़र और Node रनटाइम नॉइज़ की एक बड़ी मात्रा को भी फ़िल्टर करता है ताकि रिपॉज़िटरी-विशिष्ट रिलेशनशिप दिखाई देते रहें।

यह पुराने या मिश्रित रिपॉज़िटरी में उपयोगी है, जहां एक ही अवधारणा एक से ज़्यादा फ़ाइल शैलियों में मौजूद हो सकती है और जहां सटीक नामकरण अक्सर असंगत होता है।

## मिश्रित-रनटाइम रिपॉज़िटरी के लिए उपयोगी MCP वर्कफ़्लो

व्यावहारिक वर्कफ़्लो आमतौर पर ऐसा दिखता है:

- `text_pattern_search` का उपयोग `module.exports` जैसी सटीक स्ट्रिंग, इवेंट नाम, या पुराने कॉन्फ़िग मार्कर खोजने के लिए करें।
- जब आपको "पुराना अपलोड फ़्लो" या "ब्राउज़र बंडल में प्रमाणीकरण कहाँ जाँचा जाता है" जैसी व्यवहार-स्तरीय डिस्कवरी चाहिए हो, तो `intelligent_search` का उपयोग करें।
- जब नामकरण असंगत हो और एजेंट के कुछ भी एडिट करने से पहले आपको एक जुड़ा हुआ सारांश चाहिए हो, तो `get_task_context` का उपयोग करें।

## यह पेज कब उपयोगी है

यह पेज उन रिपॉज़िटरी के लिए है जिनमें अब भी सार्थक JavaScript सरफ़ेस मौजूद है, न कि उन टीमों के लिए जो यह मान लेती हैं कि माइग्रेशन पहले ही पूरा हो चुका है। अगर मौजूदा रिपॉज़िटरी ज़्यादातर TypeScript है, तो [TypeScript](/hi/languages/typescript) से शुरू करें। अगर पुराना वेब स्टैक अब भी सर्वर-साइड टेम्पलेट या PHP से जुड़ा है, तो [PHP मार्गदर्शिका](/hi/languages/php) ज़्यादा प्रासंगिक साथी है।

## इंजन विवरण

- JavaScript सपोर्ट `.js`, `.mjs`, और `.cjs` को कवर करता है, जो तब मायने रखता है जब एक रिपॉज़िटरी अभी भी कई मॉड्यूल स्टाइल में फैली हो।
- मेंबर प्रीफ़िक्स और कॉल आर्ग्यूमेंट को नॉर्मलाइज़ किया जाता है ताकि पुरानी फ़ाइलों में दोहराए गए हेल्पर की तुलना करना आसान हो।
- JSX कंपोनेंट हेयुरिस्टिक्स सपोर्टेड हैं। बिल्ट-इन ब्राउज़र और Node ग्लोबल्स से बनने वाले ढेरों अनावश्यक संबंध फ़िल्टर कर दिए जाते हैं।

## उपयोगी MCP एंट्री पॉइंट

- `text_pattern_search`: सर्च को व्यापक बनाने से पहले `module.exports`, इवेंट नामों, या लेगेसी कॉन्फ़िग मार्कर जैसी सटीक स्ट्रिंग के लिए इसका इस्तेमाल करें।
- `intelligent_search`: जब नामकरण असंगत हो और किसी सिंबल के बजाय 'फ़ाइल अपलोड का प्रवाह' जैसा व्यवहार ढूँढ़ना हो, तब इसका इस्तेमाल करें।
- `get_task_context`: जब रिपॉज़िटरी समय के साथ बदल गई हो और लेगेसी कोड में बदलाव से पहले उसकी जानकारी जोड़कर सारांश चाहिए हो, तब उपयोगी।
