Loading…

সম্পর্কে অনলাইন GraphQL ফরম্যাটার

আপনার GraphQL SDL এবং অপারেশনগুলি পাঠযোগ্য এবং সামঞ্জস্যপূর্ণ রাখুন। এই অনলাইন GraphQL ফরম্যাটার Prettier-এর GraphQL পার্সার ব্যবহার করে আপনার ডকুমেন্টগুলি পুনরায় ইন্ডেন্ট, র্যাপ এবং স্বাভাবিক করে। এটি সম্ভব হলে ব্রাউজারে চলে এবং প্রয়োজন হলে সার্ভার ফরম্যাটারে ফিরে যায়, তাই আপনি টুলিং সম্পর্কে চিন্তা না করেই নির্ভরযোগ্য আউটপুট পান।

এই GraphQL ফরম্যাটার কী করে

  • সামঞ্জস্যপূর্ণ, কমিউনিটি-স্ট্যান্ডার্ড ফরম্যাটিং প্রয়োগ করতে Prettier-এর GraphQL পার্সার ব্যবহার করে
  • কোয়েরি, মিউটেশন, সাবস্ক্রিপশন, ফ্র্যাগমেন্ট এবং সম্পূর্ণ স্কিমা SDL (টাইপ, ইন্টারফেস, ইউনিয়ন, এনাম, ইনপুট, ডাইরেক্টিভ) সমর্থন করে
  • সামঞ্জস্যযোগ্য ইন্ডেন্টেশন: স্পেস বা ট্যাব নির্বাচন করুন এবং ইন্ডেন্ট সাইজ কনফিগার করুন (১–৮)
  • ঐচ্ছিক লাইন-দৈর্ঘ্য / র্যাপিং কন্ট্রোল একটি কনফিগারযোগ্য কলাম প্রস্থের মাধ্যমে
  • বর্ণনা (`"""…"""`) এবং ইনলাইন কমেন্টগুলি তাদের লেআউট স্বাভাবিক করার সময় অক্ষত রাখে
  • ফরম্যাটিংয়ের অংশ হিসাবে আপনার GraphQL ডকুমেন্ট স্ট্রাকচার বৈধতা যাচাই করে; অবৈধ সিনট্যাক্স নিঃশব্দে কোড বিকৃত করার পরিবর্তে ত্রুটি দেখাবে
  • হাইব্রিড এক্সিকিউশন: উপলব্ধ হলে ব্রাউজারে Prettier চালায় এবং প্রয়োজন হলে সার্ভার ফরম্যাটারে ফিরে যায়
  • `.graphql` / `.gql` ফাইল পেস্ট বা আপলোড করুন, তারপর ফরম্যাট করা ফলাফল প্রিভিউ, কপি বা ডাউনলোড করুন

📝 কিভাবে অনলাইনে GraphQL ফরম্যাট করবেন for graphql-formatter

1

আপনার GraphQL পেস্ট বা আপলোড করুন

এডিটরে আপনার GraphQL স্কিমা বা কোয়েরি পেস্ট করুন, অথবা একটি `.graphql` / `.gql` ফাইল ড্রপ করুন। ফর্ম্যাটার SDL এবং অপারেশন ডকুমেন্ট উভয়ের জন্যই কাজ করে।

2

ফর্ম্যাটিং অপশনস সামঞ্জস্য করুন

স্পেস বা ট্যাব নির্বাচন করুন, ইন্ডেন্ট সাইজ সেট করুন এবং আপনার পছন্দসই লাইন দৈর্ঘ্য কনফিগার করুন। এই অপশনগুলি Prettier-এর GraphQL ফর্ম্যাটারে পাঠানো হয়।

3

ফর্ম্যাট, পর্যালোচনা ও এক্সপোর্ট

পরিবর্তন প্রয়োগ করতে ফর্ম্যাট ক্লিক করুন। প্রিভিউ প্যানে ফলাফল পর্যালোচনা করুন, তারপর এটিকে আপনার এডিটরে কপি করুন বা ফর্ম্যাটেড ফাইল ডাউনলোড করুন।

প্রযুক্তিগত বিবরণ

সমর্থিত ইনপুট

স্ট্যান্ডার্ড GraphQL স্কিমা এবং অপারেশন ডকুমেন্টের জন্য ডিজাইন করা হয়েছে।

ধরনউদাহরণমন্তব্য
স্কিমা SDLschema.graphql, schema.gqlটাইপ, ইন্টারফেস, ইউনিয়ন, এনাম, ইনপুট, ডাইরেক্টিভ, স্কিমা সংজ্ঞা
অপারেশনqueries.graphql, app.gqlকোয়েরি, মিউটেশন, সাবস্ক্রিপশন এবং ফ্র্যাগমেন্ট
এক্সটেনশনআলাদা ফাইলে স্কিমা এক্সটেনশনযেমন: `extend type Query { … }` ব্লক

ফর্ম্যাটিং ইঞ্জিন

ফর্ম্যাটিং Prettier-এর GraphQL সমর্থন ব্যবহার করে করা হয়। বেশিরভাগ ক্ষেত্রে, Prettier একটি লাইটওয়েট রানটাইমের মাধ্যমে ব্রাউজারে চলে। যদি বর্তমান পরিবেশে GraphQL প্লাগইন রেজলভ করা না যায়, ফর্ম্যাটার স্বচ্ছভাবে সার্ভার-সাইড Prettier ওয়ার্কারে ফিরে যায়।

উপলব্ধ অপশন (Prettier-এ ম্যাপ করা)

অপশনআচরণসাধারণ মান
ইন্ডেন্ট স্টাইলস্পেস এবং ট্যাবের মধ্যে নির্বাচন করুনস্পেস (ডিফল্ট) বা ট্যাব
ইন্ডেন্ট সাইজপ্রতি ইন্ডেন্ট লেভেলের স্পেস সংখ্যা (স্পেস ব্যবহার করার সময়)১–৮, ডিফল্ট: ২
লাইন দৈর্ঘ্যদীর্ঘ সিলেকশন মোড়ানোর/ব্রেক করার জন্য টার্গেট কলাম০–১২০ (০ ≈ কার্যত কোন মোড়ানো নেই)

সীমা ও কর্মক্ষমতা

এই টুলটি সাধারণ GraphQL স্কিমা এবং অপারেশন ফাইলের জন্য টিউন করা হয়েছে। কয়েক শত KB থেকে ~2 MB পর্যন্ত অনুরোধ সাধারণত নিরাপদ; অত্যন্ত বড় ডকুমেন্টগুলি টাইমআউট বা সাইজ গার্ডে আটকাতে পারে।

গোপনীয়তা ও নিরাপত্তা

GraphQL ডকুমেন্টগুলি হয় আপনার ব্রাউজারে অথবা encode64-এর ফর্ম্যাটার ব্যাকএন্ডে ফর্ম্যাট করা হয়। সেগুলি এক্সিকিউট বা তৃতীয় পক্ষের পরিষেবাতে প্রেরণ করা হয় না। সংবেদনশীল স্কিমাগুলির জন্য, আপনি Prettier দিয়ে স্থানীয়ভাবে একই কনফিগারেশন মিরর করতে পারেন।

কমান্ড লাইন সমতুল্য (Prettier)

আপনার যদি ইতিমধ্যে Node.js এবং Prettier ইনস্টল করা থাকে, তাহলে আপনি স্থানীয়ভাবে এই আচরণটি পুনরুত্পাদন করতে পারেন।

Node.js (সকল প্ল্যাটফর্ম)

একটি GraphQL স্কিমা ফাইল ইন-প্লেস ফর্ম্যাট করুন

npx prettier --write schema.graphql

Prettier ফাইল এক্সটেনশনের উপর ভিত্তি করে GraphQL স্বয়ংক্রিয়ভাবে সনাক্ত করে।

কাস্টম ইন্ডেন্ট এবং লাইন দৈর্ঘ্য সহ ফর্ম্যাট করুন

npx prettier --write schema.graphql --tab-width 2 --use-tabs false --print-width 80

অনলাইন টুলে প্রকাশিত ইন্ডেন্ট এবং র‍্যাপিং অপশনগুলি প্রতিফলিত করে।

stdin থেকে ফর্ম্যাট করুন (যেমন অন্য টুল থেকে পাইপ করা)

cat input.graphql | npx prettier --stdin-filepath input.graphql

শেল স্ক্রিপ্ট, CI পাইপলাইন বা Git হুকগুলিতে দরকারী।

সাধারণ GraphQL ফর্ম্যাটার ব্যবহারের ক্ষেত্র

API স্কিমা ডেভেলপমেন্ট

  • বড় স্কিমা ফাইলগুলি সহজ নেভিগেশনের জন্য সামঞ্জস্যপূর্ণভাবে ফর্ম্যাটেড রাখুন
  • স্কিমা PR-এ শোরগোলপূর্ণ হোয়াইটস্পেস ডিফগুলি হ্রাস করুন
  • কোড জেনারেশন টুলগুলির জন্য পরিষ্কার SDL প্রস্তুত করুন
# পূর্বে
type User{ id:ID! name:String!}

# পরে
type User {
  id: ID!
  name: String!
}

ফ্রন্টএন্ড অপারেশন ও ফ্র্যাগমেন্ট

  • একাধিক অ্যাপ বা প্যাকেজ জুড়ে শেয়ার করা কোয়েরিগুলি স্বাভাবিক করুন
  • ডিবাগিংয়ের সময় নেস্টেড সিলেকশনগুলি স্ক্যান করা সহজ করুন
  • ডকুমেন্টেশন স্নিপেট এবং প্লেগ্রাউন্ড উদাহরণগুলি সুন্দরভাবে ফর্ম্যাটেড রাখুন

টেস্ট, ফিক্সচার ও টুলিং

  • স্ন্যাপশট টেস্টে ব্যবহৃত GraphQL ফিক্সচারগুলি প্রমিত করুন
  • প্রি-কমিট হুক বা CI জবে ফর্ম্যাটিং সংহত করুন
  • স্কিমা ভ্যালিডেশন বা ডিফ টুলগুলিতে পরিষ্কার ডকুমেন্ট ফিড করুন

❓ Frequently Asked Questions

GraphQL ফর্ম্যাটার আসলে কী পরিবর্তন করে?

এটি Prettier-এর GraphQL নিয়ম অনুসারে আপনার GraphQL ডকুমেন্টগুলি পুনর্বিন্যাস করে: ইন্ডেন্টেশন, লাইন ব্রেক, যতিচিহ্নের চারপাশের স্পেসিং এবং সিলেকশন ও ফিল্ডের লেআউট। এটি ফিল্ডের নাম পরিবর্তন করে না, আর্গুমেন্ট যোগ করে না বা স্কিমা সেমান্টিক্স পরিবর্তন করে না।

এটি কি অপারেশন এবং স্কিমা SDL উভয়ই সমর্থন করে?

হ্যাঁ। ফর্ম্যাটার স্ট্যান্ডার্ড GraphQL অপারেশন (কোয়েরি, মিউটেশন, সাবস্ক্রিপশন, ফ্র্যাগমেন্ট) এবং স্কিমা ডেফিনিশন ল্যাঙ্গুয়েজ (টাইপ, ইন্টারফেস, এনাম, ইউনিয়ন, ইনপুট, ডাইরেক্টিভ, স্কিমা ডেফিনিশন এবং এক্সটেনশন) উভয়ের জন্যই কাজ করে।

কমেন্ট এবং ডেস্ক্রিপশন স্ট্রিং সংরক্ষিত থাকে?

হ্যাঁ। ট্রিপল-কোটেড ডেস্ক্রিপশন স্ট্রিং (`"""…"""`) এবং ইনলাইন `#` কমেন্ট সংরক্ষিত থাকে। ফর্ম্যাটার সেগুলি রিফ্লো করতে পারে বা চারপাশের হোইটস্পেস সামঞ্জস্য করতে পারে কিন্তু ইচ্ছাকৃতভাবে সরায় না।

আমার GraphQL কোড কি এক্সিকিউট হয়?

না। টুলটি আপনার GraphQL কে টেক্সট হিসেবে পার্স করে ফরম্যাট করতে, কিন্তু এটি কোয়েরি এক্সিকিউট করে না বা কোনো GraphQL সার্ভারের সাথে সংযোগ করে না।

ফরম্যাটিং কোথায় চলে: ক্লায়েন্ট নাকি সার্ভার?

ফরম্যাটারটি প্রতিক্রিয়াশীলতার জন্য আপনার ব্রাউজারে সরাসরি Prettier চালানো পছন্দ করে। যদি প্রয়োজনীয় GraphQL প্লাগইন সেখানে লোড না করা যায়, তবে এটি একই অপশন সহ সার্ভারে একটি Prettier ওয়ার্কারে ফিরে যায়।

এটি ব্যবহার কি বিনামূল্যে?

হ্যাঁ। টুলটি বিনামূল্যে এবং পারফরম্যান্স স্থিতিশীল রাখার জন্য ন্যায্য-ব্যবহার সুরক্ষা সহ। ভারী বা ব্যক্তিগত ওয়ার্কলোডের জন্য, আপনার নিজস্ব পরিবেশে Prettier দিয়ে একই কনফিগারেশন মিরর করুন।

Pro Tips

Best Practice

লিন্টিং বা ব্রেকিং চেঞ্জ যোগ করার আগে লিগ্যাসি স্কিমাগুলো স্ট্যান্ডার্ডাইজ করতে এই ফরম্যাটার ব্যবহার করুন; এটি পরবর্তী ডিফগুলো পর্যালোচনা করা অনেক সহজ করে তোলে।

Best Practice

লোকাল এবং ওয়েব ফরম্যাটিং অভিন্ন রাখতে আপনার অনলাইন টুল সেটিংস (ইন্ডেন্ট সাইজ এবং লাইন দৈর্ঘ্য) আপনার প্রজেক্টের Prettier কনফিগের সাথে অ্যালাইন করুন।

Best Practice

দীর্ঘ এম্বেডেড GraphQL স্ট্রিংগুলো কোড থেকে `.graphql` ফাইলে এক্সট্রাক্ট করুন যাতে তারা সমানভাবে ফরম্যাট এবং পুনরায় ব্যবহার করা যায়।

Best Practice

হোয়াইটস্পেস এবং র্যাপিংয়ের বাইরে যাওয়া স্কিমা এবং কোয়েরি ইস্যু ধরতে ফরম্যাটিংয়ের সাথে লিন্টিং (যেমন, GraphQL ESLint) জুড়ুন।

Additional Resources

Other Tools