§

Options

Beautify options
§

JavaScript पेस्ट करें

§

ब्यूटिफाइड JS

js

भारत में Bengaluru, Pune और Hyderabad की development teams जब production में bundled script मिलती है तो उसे पढ़ने के लिए ब्यूटिफायर का उपयोग करती हैं। Chrome DevTools का Sources panel खोलें, यहाँ एक minified vendor file paste करें, और आपको code review के लिए पठनीय output मिलती है। CERT-In के secure coding guidelines और घरेलू fintech कंपनियों के internal code standards यह सुनिश्चित करते हैं कि analytics snippets और third-party widgets की audit से पहले उनका code पठनीय हो। Flipkart, Razorpay और Swiggy जैसी कंपनियों की टीमें ESLint और Prettier-आधारित pipelines में इस टूल को अपने review workflow में शामिल करती हैं ताकि vendor bundles की जाँच सरल हो।

JavaScript ब्यूटिफिकेशन कैसे काम करती है

ब्यूटिफायर आपके code को character by character पढ़ता है, यह track करता है कि हर statement कितना deeply nested है, और उसे consistent spacing के साथ फिर से emit करता है। यह कभी नहीं बदलता कि code क्या करता है — केवल यह बदलता है कि वह कैसा दिखता है।

  1. Tokenize. लाइब्रेरी आपके input को tokens की stream में scan करती है: keywords, identifiers, strings, operators और punctuation। Strings, template literals और regular-expression literals एकल इकाइयों के रूप में पहचाने जाते हैं, इसलिए string के भीतर एक brace को block delimiter समझने की गलती नहीं होती।
  2. Nesting track करें. जैसे-जैसे यह token stream पर चलता है, ब्यूटिफायर एक running indent level रखता है। हर opening brace, bracket या parenthesis level को deeper करता है; हर closing एक उसे वापस pop करता है। वह depth तय करती है कि आपको वापस मिलने वाली हर line के सामने कितने indent units होंगे।
  3. अपने options लागू करें. आपका indent choice (2 spaces, 4 spaces, या tab) एक level की चौड़ाई निर्धारित करता है। Brace-style setting तय करती है कि opening brace उससे पहले वाले statement से जुड़ी रहे या अपनी अलग line पर आए। Blank-line cap लंबी empty lines को आपके चुने हुए limit तक collapse करता है।
  4. Re-emit. अंत में formatter उन indentation और line breaks के साथ tokens को वापस print करता है जो उसने तय किए हैं, वैकल्पिक रूप से वे semicolons जोड़ता है जो automatic semicolon insertion runtime पर प्रदान करता। परिणाम वही program है, इस प्रकार layout किया गया जिसे कोई इंसान पढ़ सके।

JavaScript ब्यूटिफाई क्यों करें

  • Minified code पढ़ें. Production bundles एक line पर single-letter variable names के साथ ship होते हैं। ब्यूटिफाई करने से line breaks और indentation बहाल होती है ताकि आप किसी bug को उस statement तक trace कर सकें जिसने उसे उत्पन्न किया, source map के बिना भी।
  • असंगत files को व्यवस्थित करें. जिस code को कई लोगों ने touch किया है वह mixed indentation और brace styles में drift हो जाता है। ब्यूटिफायर से एक pass पूरी file को एकल layout में normalize करता है, जिससे अगला diff whitespace noise के बजाय real logic changes दिखाता है।
  • यह टूल आपके page को tax नहीं करता. अधिकतर online formatters page खुलते ही अपनी पूरी library load करते हैं। यह टूल js-beautify को केवल तभी lazy-load करता है जब आप Beautify click करें या Live mode चालू करें, इसलिए page खोलने पर कुछ सौ की बजाय कुछ kilobytes खर्च होते हैं और initial render तेज़ रहता है।
  • कुछ भी आपके browser से नहीं जाता. ब्यूटिफायर पूरी तरह आपके device पर चलता है। आपका code कभी server पर upload नहीं होता, जो तब महत्वपूर्ण है जब आप जो script inspect कर रहे हैं वह किसी client की हो, internal API paths हों, या confidentiality agreement के अंतर्गत हो।

सामान्य अनुप्रयोग

JavaScript ब्यूटिफाई करना तब उपयोगी होता है जब किसी को ऐसा code पढ़ना हो जो पढ़ने के लिए नहीं लिखा गया था।

  • Debugging production: Network tab से खींचे गए minified bundle को paste करें और error stack के पीछे वाला function खोजें जिसे आप otherwise decode नहीं कर सकते।
  • Code review की तैयारी: pull request खोलने से पहले किसी contributor की असंगत-रूप से indented file को reformat करें ताकि reviewers layout churn के बजाय logic देखें।
  • Security और compliance audits: किसी third-party analytics या ad snippet को expand करें यह confirm करने के लिए कि live होने से पहले वह क्या करता है।

एक व्यावहारिक उदाहरण

एक minified one-liner लें: function f(a){if(a){return a*2}else{return 0}}। इसे ऊपर 2 spaces indentation और Collapse brace style के साथ paste करें, फिर Beautify click करें। आपको एक पठनीय block मिलता है: function f(a) {, फिर indented if (a) {, एक level deeper return a * 2; statement, और नीचे मिलान करने वाले braces। Brace style को Expand पर switch करें और हर opening brace अपनी line पर आ जाता है। Indentation को Tabs में बदलें और हर level two spaces से tab character में shift हो जाता है। Structure एक समान है; केवल layout बदलता है।

FAQ

क्या यह मेरे browser में चलता है?

हाँ। js-beautify library पहली बार Beautify click करने या Live mode enable करने पर lazy-load होती है, फिर cached हो जाती है। आपका code page से कभी नहीं जाता — कोई server round-trip नहीं, कोई upload नहीं।

क्या ब्यूटिफाई करना un-minifying के समान है?

यह पठनीय formatting बहाल करता है — indentation, line breaks और spacing — लेकिन यह original variable names या comments वापस नहीं ला सकता जो minification ने हटाए। यदि source map मौजूद है, तो आपके browser का DevTools original names recover कर सकता है; अकेला ब्यूटिफायर केवल file में जो है उसी से काम करता है।

क्या ब्यूटिफाई करने से मेरे code का व्यवहार बदल जाएगा?

नहीं। ब्यूटिफिकेशन केवल whitespace और line breaks जोड़ता और हटाता है; program एक जैसा चलता है। एकमात्र option जो tokens को touch करता है वह है "Add missing semicolons", जो वे statement terminators डालता है जो automatic semicolon insertion runtime पर वैसे भी जोड़ता, code को बाद में safely minify करने योग्य बनाता है।

Brace-style options का क्या मतलब है?

Collapse opening brace को statement की same line पर रखता है (if (x) {), जो सामान्य JavaScript convention है। Expand हर opening brace को अपनी line पर रखता है (Allman style)। End-expand opening brace को attached रखता है लेकिन else और catch को closing brace के बाद नई line पर रखता है।

Browser-side JavaScript ब्यूटिफिकेशन आपको readable code देता है बिना build step या upload के। एक minified या अव्यवस्थित script paste करें, अपना indentation और brace style चुनें, फिर result copy या download करें। कुछ भी आपके device से नहीं जाता, कोई account नहीं, और library तभी load होती है जब आप कहें — इसलिए यह page खोलने पर megabyte नहीं, कुछ kilobytes खर्च होते हैं।