Loading…

درباره فرمت‌کننده آنلاین GraphQL

اس‌دی‌ال و عملیات‌های GraphQL خود را خوانا و یکنواخت نگه دارید. این فرمت‌کننده آنلاین GraphQL از پارسر GraphQL Prettier برای دوباره تورفتگی دادن، پیچیدن و نرمال‌سازی اسناد شما استفاده می‌کند. در صورت امکان در مرورگر اجرا می‌شود و در صورت لزوم به یک فرمت‌کننده سرور بازمی‌گردد، بنابراین بدون نیاز به فکر کردن درباره ابزارها، خروجی قابل اعتمادی دریافت می‌کنید.

این فرمت‌کننده GraphQL چه می‌کند

  • از پارسر GraphQL Prettier برای اعمال فرمت‌بندی یکنواخت و استاندارد جامعه استفاده می‌کند
  • از کوئری‌ها، موتاسیون‌ها، سابسکریپشن‌ها، قطعات و اس‌دی‌ال کامل اسکیما (انواع، رابط‌ها، اتحادها، شمارشی‌ها، ورودی‌ها، دستورالعمل‌ها) پشتیبانی می‌کند
  • تورفتگی قابل تنظیم: فاصله یا تب را انتخاب کنید و اندازه تورفتگی را پیکربندی کنید (۱–۸)
  • کنترل اختیاری طول خط / پیچیدن از طریق عرض ستون قابل پیکربندی
  • توضیحات (`"""…"""`) و نظرات درون خطی را در حین نرمال‌سازی چیدمان آن‌ها دست‌نخورده نگه می‌دارد
  • ساختار سند GraphQL شما را به عنوان بخشی از فرمت‌بندی اعتبارسنجی می‌کند؛ نحو نامعتبر به جای خراب کردن خاموش کد، خطاها را نشان می‌دهد
  • اجرای ترکیبی: در صورت موجود بودن، Prettier را در مرورگر اجرا می‌کند و در صورت نیاز به یک فرمت‌کننده سرور بازمی‌گردد
  • فایل‌های `.graphql` / `.gql` را جایگذاری یا آپلود کنید، سپس نتیجه فرمت شده را پیش‌نمایش، کپی یا دانلود کنید

📝 نحوه فرمت کردن GraphQL آنلاین for graphql-formatter

1

گراف‌کیو‌ال خود را پیست یا آپلود کنید

اسکیما یا کوئری‌های گراف‌کیو‌ال خود را در ویرایشگر پیست کنید، یا یک فایل `.graphql` / `.gql` را رها کنید. فرمت‌کننده هم برای اسناد SDL و هم عملیات کار می‌کند.

2

تنظیم گزینه‌های فرمت‌بندی

فضاها یا تب‌ها را انتخاب کنید، اندازه تورفتگی را تنظیم کرده و طول خط مورد نظر خود را پیکربندی کنید. این گزینه‌ها به فرمت‌کننده گراف‌کیو‌ال Prettier منتقل می‌شوند.

3

فرمت‌بندی، بررسی و خروجی

برای اعمال تغییرات روی Format کلیک کنید. نتیجه را در پنجره پیش‌نمایش بررسی کنید، سپس آن را به ویرایشگر خود برگردانید یا فایل فرمت‌شده را دانلود کنید.

مشخصات فنی

ورودی پشتیبانی‌شده

طراحی‌شده برای اسناد استاندارد اسکیما و عملیات گراف‌کیو‌ال.

نوعمثال‌هایادداشت‌ها
اسکیما SDLschema.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.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!
}

عملیات و قطعات Frontend

  • یکسان‌سازی کوئری‌های مشترک در چندین برنامه یا بسته
  • سهولت در اسکن انتخاب‌های تودرتو در طول دیباگ
  • نگهداری قطعات مستندات و مثال‌های پلی‌گراند با قالب‌بندی مناسب

تست‌ها، فیکسچرها و ابزارها

  • استانداردسازی فیکسچرهای GraphQL استفاده شده در تست‌های اسنپ‌شات
  • ادغام قالب‌بندی در هوک‌های پیش‌از کامیت یا کارهای CI
  • تغذیه اسناد تمیز به ابزارهای اعتبارسنجی یا مقایسه شِمای

❓ Frequently Asked Questions

فرمت‌کننده GraphQL در واقع چه چیزی را تغییر می‌دهد؟

این ابزار اسناد GraphQL شما را بر اساس قواعد GraphQL در Prettier بازساخت می‌کند: تورفت، شکستن خط، فاصله‌گذاری حول علائم نگارشی و چیدمان انتخاب‌ها و فیلدها. این ابزار فیلدها را تغییر نام نمی‌دهد، آرگومان اضافه نمی‌کند یا معناشناسی شِمای را تغییر نمی‌دهد.

آیا از هر دو عملیات و SDL شِمای پشتیبانی می‌کند؟

بله. فرمت‌کننده برای عملیات استاندارد GraphQL (کوئری‌ها، موتاسیون‌ها، سابسکریپشن‌ها، قطعات) و زبان تعریف شِمای (انواع، رابط‌ها، enumها، unionها، ورودی‌ها، دستورالعمل‌ها، تعاریف شِمای و افزونه‌ها) کار می‌کند.

آیا نظرات و رشته‌های توضیح حفظ می‌شوند؟

بله. رشته‌های توضیح سه‌قلو (`"""…"""`) و نظرات درون خطی `#` حفظ می‌شوند. فرمت‌کننده ممکن است آن‌ها را بازچینش کند یا فاصله‌های سفید اطراف را تنظیم کند اما عمداً آن‌ها را حذف نمی‌کند.

آیا کد 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