ٹائپ اسکرپٹ میں درآمدی بیانات کو ہموار کرنا
بڑے TypeScript یا JavaScript پروجیکٹس پر کام کرتے وقت، طویل درآمدی بیانات کا سامنا کرنا ایک عام بات ہے، خاص طور پر جب ایک ہی ماڈیول سے متعدد اراکین کو درآمد کیا جائے۔ اگرچہ یہ لکیریں ابتدائی طور پر بے ضرر لگ سکتی ہیں، لیکن وہ آسانی سے آپ سے تجاوز کر سکتی ہیں۔ خوبصورت ترتیب کی پرنٹ چوڑائی ترتیب دینا، کوڈ کو پڑھنا اور برقرار رکھنا مشکل بناتا ہے۔
اپنے کوڈ کو صاف ستھرا اور پڑھنے کے قابل رکھنے کے لیے، ان درآمدات کی فارمیٹنگ کو خودکار بنانا ضروری ہے۔ جیسے اوزار خوبصورت اور ESLint طویل درآمدی بیانات کو خود بخود متعدد لائنوں میں تقسیم کرنے کے لیے اپنی مرضی کے مطابق کیا جا سکتا ہے۔ یہ اس بات کو یقینی بناتا ہے کہ آپ کا کوڈ صاف ستھرا اور یکساں رہے، فارمیٹنگ کے جو اصول آپ نے ترتیب دیے ہیں ان کی پابندی کریں۔
تاہم، ان ٹولز کو خود بخود درآمدی بیانات کو مطلوبہ شکل دینے کے لیے ترتیب دینا مشکل ہوسکتا ہے۔ اگرچہ Prettier اور ESLint دونوں کی ڈیفالٹ سیٹنگز فارمیٹنگ کے بہت سے مسائل کو ہینڈل کرتی ہیں، لیکن جب یہ متعدد لائنوں میں طویل درآمدی بیانات کو توڑنے کی بات آتی ہے تو وہ اکثر کم پڑ جاتی ہیں۔
اس گائیڈ میں، ہم آپ کے TypeScript پروجیکٹ میں امپورٹ سٹیٹمنٹس کو صحیح طریقے سے فارمیٹ کرنے کے لیے Prettier اور ESLint کو کنفیگر کرنے کا طریقہ دریافت کریں گے۔ ہم آپ کے کوڈبیس میں مستقل مزاجی کو برقرار رکھتے ہوئے ملٹی لائن امپورٹس حاصل کرنے کے لیے درکار ترتیبات کو دیکھیں گے۔
حکم | استعمال کی مثال |
---|---|
prettier.format | یہ خوبصورت فنکشن ترتیب شدہ اصولوں کے مطابق کوڈ کے بلاک کو فارمیٹ کرنے کے لیے استعمال کیا جاتا ہے (مثال کے طور پر، printWidth، singleQuote)۔ یہ کوڈ کی ایک تار پر کارروائی کرتا ہے اور فارمیٹ شدہ آؤٹ پٹ کو لوٹاتا ہے، یہ کوڈ کی طرز کی مستقل مزاجی کو یقینی بنانے کے لیے مثالی بناتا ہے۔ |
eslint.RuleTester | ESLint کے لیے مخصوص، یہ کمانڈ ڈویلپرز کو ESLint کے حسب ضرورت قوانین کی جانچ کرنے کی اجازت دیتی ہے۔ رول ٹیسٹر کو نمونہ کوڈ کھلانے سے، یہ اس بات کی توثیق کرتا ہے کہ آیا قواعد صحیح طریقے سے نافذ کیے گئے ہیں، جیسے کہ درآمدات کو متعدد لائنوں میں تقسیم کرنے کو یقینی بنانا۔ |
prettier-plugin-organize-imports | یہ ایک خوبصورت پلگ ان ہے جو خود بخود درآمدات کو منظم کرنے کے لیے ڈیزائن کیا گیا ہے۔ یہ یقینی بناتا ہے کہ درآمدی بیانات کو ترتیب دیا گیا ہے اور، جب پرنٹ وِڈتھ جیسے خوبصورت اصولوں کے ساتھ ملایا جائے، تو یہ طویل درآمدات کو متعدد لائنوں میں تقسیم کر سکتا ہے۔ |
jest.describe | ایک جیسٹ فنکشن جو متعلقہ ٹیسٹوں کو اکٹھا کرتا ہے۔ اس تناظر میں، یہ اس بات کی تصدیق کرنے کے لیے ٹیسٹوں کا گروپ بناتا ہے کہ آیا ESLint اور Prettier کنفیگریشنز طویل درآمدی بیانات کو ایک سے زیادہ لائنوں میں توڑ کر صحیح طریقے سے ہینڈل کرتی ہیں۔ |
import/order | یہ eslint-plugin-import کا ایک مخصوص ESLint قاعدہ ہے جو درآمدی بیانات کی ترتیب پر ایک کنونشن کو نافذ کرتا ہے۔ یہ اس بات کو بھی نافذ کر سکتا ہے کہ مختلف درآمدی گروپس (مثلاً، بلٹ ان، بیرونی پیکجز) کے درمیان نئی لائنیں شامل کی جائیں۔ |
alphabetize | امپورٹ/آرڈر ESLint کے اصول کے اندر، یہ آپشن یقینی بناتا ہے کہ درآمد شدہ ممبران کو حروف تہجی کے مطابق ترتیب دیا گیا ہے۔ یہ کوڈ پڑھنے کی اہلیت کو بڑھاتا ہے، خاص طور پر متعدد درآمدات والے بڑے پروجیکٹس میں۔ |
jest.it | یہ جیسٹ فنکشن واحد یونٹ ٹیسٹ کی وضاحت کے لیے استعمال ہوتا ہے۔ اس مثال میں، یہ چیک کرتا ہے کہ آیا طویل درآمدات کو ترتیب شدہ Prettier اور ESLint کے قواعد کے ذریعے صحیح طریقے سے متعدد لائنوں میں تقسیم کیا گیا ہے۔ |
newlines-between | امپورٹ/آرڈر ESLint قاعدہ کے لیے کنفیگریشن کا اختیار۔ یہ درآمدی گروپوں (جیسے بیرونی اور اندرونی درآمدات) کے درمیان نئی لائنوں کو مجبور کرتا ہے، جس سے کوڈ کو مزید منظم اور آسانی سے تشریف لے جانا ہے۔ |
TypeScript میں ملٹی لائن امپورٹس کے لیے Prettier اور ESLint کو ترتیب دینا
مندرجہ بالا اسکرپٹ کا بنیادی مقصد ترتیب دینا ہے۔ خوبصورت اور ESLint TypeScript پروجیکٹ میں متعدد لائنوں میں طویل درآمدی بیانات کو خود بخود فارمیٹ کرنے کے لیے۔ پریٹیر کنفیگریشن کوڈنگ کے انداز کی وضاحت کرنے کے لیے ترتیب دی گئی ہے، جیسے کہ سنگل کوٹس اور ٹریلنگ کوما، اور اس بات کا انتظام کرنے کے لیے کہ کوڈ کو کس طرح لپیٹنا چاہیے۔ پرنٹ چوڑائی حکمرانی جب لائن سیٹ کی چوڑائی سے زیادہ ہو جاتی ہے (اس صورت میں، 80 یا 120 حروف)، Prettier خود بخود کوڈ کو مزید پڑھنے کے قابل بنانے کے لیے فارمیٹ کر دے گا۔ کا استعمال کرتے ہوئے خوبصورت-پلگ ان-آرگنائز-درآمدات پلگ ان، ہم اس بات کو یقینی بناتے ہیں کہ درآمدی بیانات تقسیم ہوں اور منطقی طور پر ترتیب دی جائیں۔
ESLint کنفیگریشن میں، درآمد / آرڈر سے حکمرانی eslint-plugin-import درآمدات کو کس طرح منظم کیا جاتا ہے اس کو کنٹرول کرنے کے لیے پلگ ان ضروری ہے۔ یہاں کا مقصد ایک مستقل درآمدی ڈھانچہ کو نافذ کرنا ہے، جہاں مختلف گروپس کی درآمدات (جیسے بلٹ ان ماڈیولز، بیرونی پیکجز، اور اندرونی ماڈیولز) کو نئی لائنوں سے الگ کیا جاتا ہے۔ مزید برآں، پڑھنے کی اہلیت کو بہتر بنانے کے لیے ایک ہی گروپ کے اندر درآمدات کو حروف تہجی کے مطابق کیا جاتا ہے۔ یہ قواعد درآمدات کو بے ترتیبی ہونے سے روکتے ہیں، خاص طور پر جب متعدد فائلوں سے درآمد شدہ اراکین کی بڑی تعداد سے نمٹتے ہیں۔
ESLint سیٹ اپ کا ایک اور اہم پہلو ہے۔ نئی لائنوں کے درمیان اختیار، جو اس بات کو یقینی بناتا ہے کہ ہر درآمدی گروپ کو خالی لائن سے الگ کیا گیا ہے۔ یہ کوڈ کو زیادہ بصری طور پر منظم کرتا ہے، خاص طور پر بڑے کوڈ بیس میں۔ کے ساتھ مل کر حروف تہجی کے مطابق اصول کے مطابق، پورا درآمدی بلاک ساختہ اور برقرار رکھنے میں آسان ہو جاتا ہے۔ جب کوڈ کو بصری اسٹوڈیو کوڈ میں محفوظ کرنے پر فارمیٹ کیا جاتا ہے، تو یہ ترتیبات خود بخود لاگو ہوجاتی ہیں، جس سے دستی ایڈجسٹمنٹ کے بغیر پورے پروجیکٹ میں مستقل درآمدی فارمیٹنگ کو یقینی بنایا جاتا ہے۔
آخر میں، اس کنفیگریشن کو جانچنا بہت ضروری ہے تاکہ یہ یقینی بنایا جا سکے کہ یہ صحیح طریقے سے کام کرتی ہے۔ دی طنز یونٹ ٹیسٹوں کو یہ جانچنے کے لیے ڈیزائن کیا گیا ہے کہ آیا Prettier اور ESLint کنفیگریشن توقع کے مطابق درآمدی تقسیم اور فارمیٹنگ کو ہینڈل کرتے ہیں۔ مثال کے طور پر، جب ایک طویل درآمدی بیان فراہم کیا جاتا ہے، تو ٹیسٹ اس بات کی تصدیق کرتا ہے کہ آیا یہ مناسب طریقے سے متعدد لائنوں میں تقسیم ہے۔ یہ نقطہ نظر ڈویلپرز کو اپنے فارمیٹنگ کے قواعد کی جانچ کو خودکار کرنے کی اجازت دیتا ہے، اس بات کو یقینی بناتے ہوئے کہ مستقبل میں کوڈ میں ہونے والی کوئی بھی تبدیلی اسی درآمدی ڈھانچے کے رہنما خطوط پر عمل کرے گی۔
TypeScript میں طویل درآمدی بیانات کو تقسیم کرنے کے لیے Prettier اور ESLint کو ترتیب دینا
یہ اسکرپٹ ایک TypeScript پروجیکٹ میں ملٹی لائن امپورٹ اسٹیٹمنٹس کے لیے فارمیٹنگ کو ترتیب دینے کے لیے Prettier اور ESLint کا استعمال کرتا ہے۔ بصری اسٹوڈیو کوڈ کے ساتھ فرنٹ اینڈ ڈیولپمنٹ پر فوکس ہے۔
module.exports = {
semi: false,
singleQuote: true,
trailingComma: 'all',
printWidth: 80,
plugins: ['prettier-plugin-organize-imports'],
}
// Prettier configuration setup for import splitting
ESLint پلگ ان امپورٹ کے ساتھ امپورٹ فارمیٹنگ کے لیے ESLint کا استعمال
یہ بیک اینڈ اسکرپٹ ESLint کو امپورٹ پلگ ان کے ساتھ کنفیگر کرتا ہے تاکہ ملٹی لائن امپورٹ رولز کو نافذ کیا جا سکے۔ یہ آپٹمائزڈ کوڈ ماڈیولرٹی کو یقینی بناتا ہے۔
module.exports = {
"extends": ["eslint:recommended", "plugin:import/errors", "plugin:import/warnings"],
"rules": {
"import/order": [
"error", {
"groups": ["builtin", "external", "internal"],
"newlines-between": "always",
"alphabetize": { "order": "asc", "caseInsensitive": true }
}],
"max-len": ["error", { "code": 80 }],
}
}
// ESLint rule setup to organize imports into multiple lines and ensure alphabetical order
امپورٹ فارمیٹنگ کنفیگریشن کی جانچ کے لیے اسکرپٹ کی مثال
یہ اسکرپٹ Prettier اور ESLint کنفیگریشن کے اطلاق کو ظاہر کرتا ہے۔ یہ سامنے کی مثال کے طور پر کام کرتا ہے جہاں طویل درآمدات کو متعدد لائنوں میں تقسیم کیا جاتا ہے۔
import {
longFunctionNameOne,
longFunctionNameTwo,
longFunctionNameThree
} from '@example/long-module-name';
import {
shortFunctionNameOne,
shortFunctionNameTwo
} from '@example/short-module-name';
// Example of formatted import statements following the configured rules
امپورٹ فارمیٹنگ سیٹ اپ کی جانچ کرنے والا یونٹ
یہ بیک اینڈ اسکرپٹ Jest کا استعمال کرتے ہوئے یونٹ ٹیسٹ فراہم کرتا ہے تاکہ یہ یقینی بنایا جا سکے کہ Prettier اور ESLint کنفیگریشن مختلف ماحول میں توقع کے مطابق کام کر رہے ہیں۔
const eslint = require('eslint');
const prettier = require('prettier');
const { describe, it } = require('@jest/globals');
describe('Import Formatting', () => {
it('should split long imports into multiple lines', () => {
const code = `import { a, b, c, d } from '@example/package';`;
const formatted = prettier.format(code, { printWidth: 80 });
expect(formatted).toMatch(/import { a, b }/);
});
});
// Unit test to check if long imports are split into multiple lines using Jest
Prettier اور ESLint امپورٹ فارمیٹنگ کے ساتھ کوڈ پڑھنے کی اہلیت کو بڑھانا
بڑے کوڈ بیسز کے ساتھ کام کرتے وقت، کوڈ پڑھنے کی اہلیت اور ٹیم کے تعاون دونوں کو بہتر بنانے کے لیے مستقل درآمدی ڈھانچے کو برقرار رکھنا بہت ضروری ہو جاتا ہے۔ ڈویلپرز کو درپیش ایک عام مسئلہ یہ ہے کہ درآمدی بیانات کتنی دیر تک فائل کے اوپری حصے میں بے ترتیبی پیدا کر سکتے ہیں، خاص طور پر جب وہ ایک ہی ماڈیول کے بہت سے عناصر پر مشتمل ہوں۔ یہ وہ جگہ ہے جہاں ٹولز پسند کرتے ہیں۔ خوبصورت اور ESLint آپ کو متعدد لائنوں پر درآمدات کی تقسیم کو خودکار کرنے کی اجازت دیتا ہے۔ اس بات کو یقینی بنانا کہ درآمدی بیانات ایک متعین چوڑائی پر عمل پیرا ہوں، عام طور پر کی بنیاد پر پرنٹ چوڑائی ترتیب، افقی اسکرولنگ کو روکنے میں مدد کرتا ہے اور کوڈ کو اسکین کرنے میں آسان رکھتا ہے۔
ایک اور اہم پہلو خود درآمدات کا تنظیمی نمونہ ہے۔ کا استعمال کرتے ہوئے درآمد / آرڈر ESLint کی طرف سے فراہم کردہ اصول، آپ درآمدات کو ان کی اصل کی بنیاد پر گروپ کر سکتے ہیں: بلٹ ان لائبریریز، تھرڈ پارٹی انحصار، یا اندرونی ماڈیول۔ ان گروپوں کو نئی لائنوں کے ذریعے تقسیم کیا جا سکتا ہے، جس سے ڈویلپرز کے لیے انحصار کو تیزی سے شناخت کرنا آسان ہو جاتا ہے۔ یہ طریقہ ساختی درآمدات کو فروغ دیتا ہے، جسے حروف تہجی کی ترتیب کے ساتھ ملا کر حروف تہجی کے مطابق آپشن، پورے کوڈ بیس میں وضاحت اور مستقل مزاجی کو مزید بڑھاتا ہے۔
مزید برآں، ڈویلپرز جیسے ٹولز کا فائدہ اٹھانا چاہتے ہیں۔ خوبصورت-پلگ ان-آرگنائز-درآمدات اس بات کو یقینی بنانے کے لیے کہ درآمدات کو نہ صرف صحیح طریقے سے تقسیم کیا گیا ہے بلکہ منطقی طور پر دوبارہ ترتیب دیا گیا ہے۔ جب بھی فائل کو بصری اسٹوڈیو کوڈ جیسے ایڈیٹر میں محفوظ کیا جاتا ہے تو یہ ٹولز مطلوبہ درآمدی ڈھانچہ کو خود بخود نافذ کرتے ہیں۔ یہ اس بات کو یقینی بناتا ہے کہ ڈویلپرز کو دستی طور پر درآمدی بیانات کو ایڈجسٹ کرنے کی ضرورت نہیں ہے اور وہ کلینر اور زیادہ قابل برقرار کوڈ لکھنے پر توجہ مرکوز کر سکتے ہیں۔
Prettier اور ESLint کے ساتھ امپورٹ فارمیٹنگ کے بارے میں عام سوالات
- سب سے بہتر کیا ہے ESLint درآمدات کو منظم کرنے کا اصول؟
- دی import/order سے حکمرانی eslint-plugin-import درآمدات کو منظم کرنے کے لیے مثالی ہے۔ یہ آپ کو مستقل طور پر درآمدات کو گروپ کرنے، ترتیب دینے اور ڈھانچہ کرنے کی اجازت دیتا ہے۔
- کیا میں درآمدی بیانات کا استعمال کرتے ہوئے متعدد لائنوں میں تقسیم کر سکتا ہوں۔ Prettier اکیلے؟
- Prettier طویل درآمدی بیانات کو متعدد لائنوں میں تقسیم کر سکتا ہے اگر printWidth قاعدہ حد سے تجاوز کر گیا ہے. تاہم، اسے ESLint کے ساتھ ملانا زیادہ حسب ضرورت فراہم کرتا ہے۔
- کیا کرتا ہے alphabetize آپشن کرتے ہیں؟
- دی alphabetize میں آپشن import/order اس بات کو یقینی بناتا ہے کہ درآمدی اراکین اور بیانات کو حروف تہجی کے مطابق ترتیب دیا گیا ہے، کوڈ پڑھنے کی اہلیت کو بہتر بناتا ہے۔
- میں یہ کیسے یقینی بنا سکتا ہوں کہ میری درآمدات محفوظ کرنے پر خود بخود فارمیٹ ہو جائیں؟
- اس بات کو یقینی بنائیں کہ دونوں Prettier اور ESLint آپ کے ایڈیٹر میں سیو پر چلانے کے لیے کنفیگر کیے گئے ہیں، عام طور پر سیٹنگز کے ذریعے Visual Studio Code یا اسی طرح کے IDEs۔
- کیوں استعمال کریں۔ prettier-plugin-organize-imports?
- یہ پلگ ان اس بات کو یقینی بناتا ہے کہ درآمدات کو نہ صرف متعدد لائنوں میں تقسیم کیا گیا ہے بلکہ منطقی طور پر ترتیب اور گروپ بندی بھی کی گئی ہے، جس سے کوڈ کی برقراری میں مزید اضافہ ہوتا ہے۔
Prettier اور ESLint کنفیگریشن پر حتمی خیالات
درآمدی بیانات کی خودکار فارمیٹنگ کے لیے Prettier اور ESLint کو ترتیب دینا آپ کے پروجیکٹ کی برقراری کو بڑھانے کا ایک طاقتور طریقہ ہے۔ یہ یقینی بناتا ہے کہ طویل درآمدات کو منطقی طور پر تقسیم، ترتیب دیا گیا اور منظم کیا گیا ہے۔
ان ٹولز کو پلگ ان کے ساتھ ملا کر، آپ اپنی TypeScript فائلوں میں مستقل مزاجی کو یقینی بناتے ہیں۔ یہ نہ صرف کوڈ کو صاف رکھتا ہے بلکہ آپ کی ٹیم کے اندر تعاون کو بھی بہتر بناتا ہے کیونکہ درآمدی ڈھانچہ یکساں رہتا ہے۔
Prettier اور ESLint کنفیگریشن کے لیے حوالہ جات اور مفید ذرائع
- Prettier کی ترتیب سے متعلق سرکاری دستاویزات کے لیے، رجوع کریں۔ خوبصورت دستاویزات .
- ESLint کے بارے میں تفصیلی معلومات اور امپورٹ/آرڈر رول پر پایا جا سکتا ہے۔ eslint-plugin-import GitHub .
- Prettier پلگ ان جیسے استعمال کرنے کا طریقہ دریافت کرنے کے لیے خوبصورت-پلگ ان-آرگنائز-درآمدات, دورہ prettier-plugin-arganize-imports GitHub .
- بصری اسٹوڈیو کوڈ کو محفوظ کرنے پر خود بخود فارمیٹ کرنے کے لیے ایک جامع گائیڈ کے لیے، چیک کریں۔ بصری اسٹوڈیو کوڈ کی ترتیبات .