ng-forge: ساخت فرمهای داینامیک و type-safe تو انگولار
خلاصهٔ کاملتر
ng-forge یه کتابخونهٔ متنبازه که هدفش حذف کد تکراری فرمنویسی تو انگولاره. به گفتهٔ سازندهها، بهجای اینکه ساعتها برای هر فرم کد بنویسی، تو چند دقیقه فرمهای داینامیک و type-safe میسازی. نکتهٔ مهمش اینه که روی Signal Forms خود انگولار ساخته شده که از انگولار ۲۲ به بعد پایدار شده.
کل ایده اینه که ساختار فرم رو بهصورت یه آبجکت تنظیمات تعریف میکنی و TypeScript هم نوع مقدارهای فرم رو خودش استنتاج میکنه. مثلاً یه فرم ورود ساده این شکلیه:
config = {
fields: [
{ key: 'email', type: 'input', value: '', label: 'Email', required: true, email: true },
{ key: 'password', type: 'input', value: '', label: 'Password', required: true, minLength: 8, props: { type: 'password' } },
{ type: 'submit', key: 'submit', label: 'Sign In' },
],
} as const satisfies FormConfig;همونطور که میبینی هر فیلد با کلید، نوع، برچسب و قوانین اعتبارسنجی مثل required یا minLength تعریف میشه، و چون از satisfies FormConfig استفاده شده، نوع خروجی فرم (اینجا چیزی مثل ایمیل و پسورد از جنس رشته) بهصورت خودکار استنتاج میشه.
به گفتهٔ سازندهها، این کتابخونه UI-agnosticه؛ یعنی میتونی با Material، Bootstrap، PrimeNG، Ionic یا حتی کامپوننتهای خودت کار کنی. اعتبارسنجی شرطی، نمایش و مخفیکردن داینامیک فیلدها، فرمهای چندمرحلهای (wizard) و آمادگی برای i18n هم از ویژگیهاشه.
علاوه بر پکیج اصلی، بستههای جدا برای هر UI و حتی یه سرور MCP برای ساخت فرم با کمک هوش مصنوعی و یه ابزار ساخت فرم از روی OpenAPI هم داره. برای کسایی که از ngx-formly میان هم یه راهنمای مهاجرت مفهومبهمفهوم گذاشتن. کل پروژه با لایسنس MIT منتشر شده.
نکات کلیدی:
- ساخت فرمهای داینامیک و type-safe تو انگولار با یه آبجکت تنظیمات.
- روی Signal Forms خود انگولار ساخته شده که از انگولار ۲۲ پایدار شده.
- UI-agnosticه: Material، Bootstrap، PrimeNG، Ionic یا کامپوننت دلخواه.
- اعتبارسنجی شرطی، فرم چندمرحلهای و آمادگی i18n داره.
- بهعنوان جایگزین ngx-formly با راهنمای مهاجرت معرفی شده.




