این فرمتکننده GraphQL چه میکند
- از پارسر GraphQL Prettier برای اعمال فرمتبندی یکنواخت و استاندارد جامعه استفاده میکند
- از کوئریها، موتاسیونها، سابسکریپشنها، قطعات و اسدیال کامل اسکیما (انواع، رابطها، اتحادها، شمارشیها، ورودیها، دستورالعملها) پشتیبانی میکند
- تورفتگی قابل تنظیم: فاصله یا تب را انتخاب کنید و اندازه تورفتگی را پیکربندی کنید (۱–۸)
- کنترل اختیاری طول خط / پیچیدن از طریق عرض ستون قابل پیکربندی
- توضیحات (`"""…"""`) و نظرات درون خطی را در حین نرمالسازی چیدمان آنها دستنخورده نگه میدارد
- ساختار سند GraphQL شما را به عنوان بخشی از فرمتبندی اعتبارسنجی میکند؛ نحو نامعتبر به جای خراب کردن خاموش کد، خطاها را نشان میدهد
- اجرای ترکیبی: در صورت موجود بودن، Prettier را در مرورگر اجرا میکند و در صورت نیاز به یک فرمتکننده سرور بازمیگردد
- فایلهای `.graphql` / `.gql` را جایگذاری یا آپلود کنید، سپس نتیجه فرمت شده را پیشنمایش، کپی یا دانلود کنید
📝 نحوه فرمت کردن GraphQL آنلاین for graphql-formatter
گرافکیوال خود را پیست یا آپلود کنید
اسکیما یا کوئریهای گرافکیوال خود را در ویرایشگر پیست کنید، یا یک فایل `.graphql` / `.gql` را رها کنید. فرمتکننده هم برای اسناد SDL و هم عملیات کار میکند.
تنظیم گزینههای فرمتبندی
فضاها یا تبها را انتخاب کنید، اندازه تورفتگی را تنظیم کرده و طول خط مورد نظر خود را پیکربندی کنید. این گزینهها به فرمتکننده گرافکیوال Prettier منتقل میشوند.
فرمتبندی، بررسی و خروجی
برای اعمال تغییرات روی Format کلیک کنید. نتیجه را در پنجره پیشنمایش بررسی کنید، سپس آن را به ویرایشگر خود برگردانید یا فایل فرمتشده را دانلود کنید.
مشخصات فنی
ورودی پشتیبانیشده
طراحیشده برای اسناد استاندارد اسکیما و عملیات گرافکیوال.
| نوع | مثالها | یادداشتها |
|---|---|---|
| اسکیما SDL | schema.graphql, schema.gql | انواع، رابطها، اتحادها، شمارشیها، ورودیها، دستورالعملها، تعریف اسکیما |
| عملیاتها | queries.graphql, app.gql | کوئریها، جهشها، اشتراکها و قطعات |
| افزونهها | افزونههای اسکیما در فایلهای جداگانه | مثلاً بلوکهای `extend type Query { … }` |
موتور فرمتبندی
فرمتبندی با استفاده از پشتیبانی گرافکیوال Prettier انجام میشود. در بیشتر موارد، Prettier از طریق یک محیط اجرای سبک در مرورگر اجرا میشود. اگر افزونه گرافکیوال در محیط فعلی قابل حل نباشد، فرمتکننده به صورت شفاف به یک کارگر Prettier سمت سرور بازمیگردد.
گزینههای موجود (نگاشتشده به Prettier)
| گزینه | رفتار | مقادیر معمول |
|---|---|---|
| سبک تورفتگی | انتخاب بین فضاها و تبها | فضا (پیشفرض) یا تب |
| اندازه تورفتگی | تعداد فضاها در هر سطح تورفتگی (هنگام استفاده از فضاها) | 1–8، پیشفرض: 2 |
| طول خط | ستون هدف برای پیچیدن/شکستن انتخابهای طولانی | 0–120 (0 ≈ بدون پیچیدن مؤثر) |
محدودیتها و عملکرد
این ابزار برای شِمایهای معمول GraphQL و فایلهای عملیاتی تنظیم شده است. درخواستهای حدود چند صد کیلوبایت تا حدود ۲ مگابایت عموماً ایمن هستند؛ اسناد بسیار بزرگ ممکن است با محدودیت زمانی یا اندازه مواجه شوند.
حریم خصوصی و امنیت
اسناد GraphQL یا در مرورگر شما یا در بکاند فرمتکننده encode64 قالببندی میشوند. آنها اجرا یا به سرویسهای شخص ثالث ارسال نمیشوند. برای شِمایهای حساس، میتوانید همان پیکربندی را به صورت محلی با Prettier بازسازی کنید.
معادل خط فرمان (Prettier)
اگر از قبل Node.js و Prettier را نصب کردهاید، میتوانید این رفتار را به صورت محلی بازتولید کنید.
Node.js (همه پلتفرمها)
قالببندی فایل شِمای GraphQL در محل
npx prettier --write schema.graphqlPrettier به طور خودکار 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!
}عملیات و قطعات Frontend
- یکسانسازی کوئریهای مشترک در چندین برنامه یا بسته
- سهولت در اسکن انتخابهای تودرتو در طول دیباگ
- نگهداری قطعات مستندات و مثالهای پلیگراند با قالببندی مناسب
تستها، فیکسچرها و ابزارها
- استانداردسازی فیکسچرهای GraphQL استفاده شده در تستهای اسنپشات
- ادغام قالببندی در هوکهای پیشاز کامیت یا کارهای CI
- تغذیه اسناد تمیز به ابزارهای اعتبارسنجی یا مقایسه شِمای
❓ Frequently Asked Questions
فرمتکننده GraphQL در واقع چه چیزی را تغییر میدهد؟
آیا از هر دو عملیات و SDL شِمای پشتیبانی میکند؟
آیا نظرات و رشتههای توضیح حفظ میشوند؟
آیا کد GraphQL من اجرا میشود؟
قالببندی در کجا اجرا میشود: کلاینت یا سرور؟
آیا استفاده از این ابزار رایگان است؟
Pro Tips
از این فرمتر برای استانداردسازی طرحهای قدیمی قبل از افزودن لینت یا تغییرات شکستآور استفاده کنید؛ این کار بررسی تفاوتهای بعدی را بسیار آسانتر میکند.
تنظیمات ابزار آنلاین (اندازه تورفتگی و طول خط) را با پیکربندی Prettier پروژه خود هماهنگ کنید تا قالببندی محلی و وب یکسان باشد.
رشتههای طولانی جاسازی شده GraphQL را از کد در فایلهای `.graphql` استخراج کنید تا بتوانند به طور یکنواخت قالببندی و استفاده مجدد شوند.
قالببندی را با لینت (مانند GraphQL ESLint) جفت کنید تا مشکلات طرح و کوئری که فراتر از فاصلههای سفید و بستهبندی هستند را شناسایی کنید.
Additional Resources
Other Tools
- زیباکننده CSS
- زیباکننده HTML
- زیباکننده JavaScript
- زیباکننده PHP
- انتخابگر رنگ
- استخراجکننده اسپرایت
- دیکودر Base64
- انکودر Base64
- فرمتدهنده C#
- فرمتدهنده CSV
- Dockerfile Formatter
- فرمتدهنده Elm
- فرمتدهنده ENV
- فرمتدهنده Go
- فرمتدهنده HCL
- فرمتدهنده INI
- فرمتدهنده JSON
- فرمتدهنده LaTeX
- فرمتدهنده Markdown
- فرمتدهنده Objective-C
- Php Formatter
- فرمتدهنده Proto
- فرمتدهنده Python
- فرمتدهنده Ruby
- فرمتدهنده Rust
- فرمتدهنده Scala
- فرمتدهنده اسکریپت شل
- فرمتدهنده SQL
- قالببندی SVG
- قالببندی Swift
- قالببندی TOML
- Typescript Formatter
- قالببندی XML
- قالببندی YAML
- قالببندی Yarn
- کوچککننده CSS
- Html Minifier
- Javascript Minifier
- کوچککننده JSON
- کوچککننده XML
- نمایشگر هدرهای HTTP
- PDF به متن
- تستکننده Regex
- بررسیکننده رتبه SERP
- جستجوی Whois