fast-flow-transform؛ پاکسازی سریع سینتکس Flow
خلاصهٔ کاملتر
fast-flow-transform که کوتاهشدهش میشه fft، یه ابزار نیتیوـه که روی موتور Hermes ساخته شده و کارش اینه که سینتکس Flow رو از کد جاوااسکریپت مدرن حذف کنه. تو توضیحات پروژه اومده که این ابزار قبل از اینکه بقیهٔ پایپلاین کد رو ببینه، تایپهای Flow رو پاک میکنه و در عین حال JSX رو دستنخورده نگه میداره.
به گفتهٔ سازنده، خیلی از ابزارها هنوز انتظار جاوااسکریپت ساده رو دارن، نه سینتکس Flow. برای همین fft خیلی زود تایپها رو پاک میکنه تا ابزارهای بعدی بتونن کارشون رو ادامه بدن، بدون اینکه مجبور باشی فقط برای پاککردن تایپها هزینهٔ سنگین Babel رو بدی.
fft برای بیشتر بستهبندهای مطرح آداپتر آماده داره: webpack، rspack، rsbuild، Parcel، Vite، Rollup، Rolldown و esbuild. یه API برنامهنویسی هم داره که وقتی بخوای همین حذف Flow رو یکباره داخل ابزار بیلد یا اسکریپت خودت انجام بدی بهدردت میخوره؛ ضمناً بهصورت پیشفرض ایمپورتهای فقط-تایپ رو حذف میکنه که بهشکل ایمپورت جانبی تو زمان اجرا باقی نمونن.
import transform from 'fast-flow-transform';
const result = await transform({
filename: '/abs/path/input.js',
source: 'const answer: number = 42;',
sourcemap: true,
});
console.log(result.code);همونطور که بالا میبینی، کافیه اسم فایل و سورس رو بدی تا کد تبدیلشده رو تحویل بگیری و اگه بخوای سورسمپ هم میده. یه رابط خطفرمان (CLI) هم داره که همین تبدیل رو روی فایل ورودی اجرا میکنه و خروجی و سورسمپ رو مینویسه.
مهمترین ادعای پروژه سرعتشه: تو بنچمارکی که در برابر Babel گرفته، fft تبدیلها رو حدود ۲۰ برابر سریعتر انجام میده. این ابزار به Node نسخهٔ ۱۸ به بالا نیاز داره، روی Hermes Juno ساخته شده و با لایسنس MIT منتشر میشه.
نکات کلیدی:
- fft سینتکس Flow رو با موتور نیتیو Hermes حذف میکنه و JSX رو دست نمیزنه.
- برای webpack، rspack، rsbuild، Parcel، Vite، Rollup، Rolldown و esbuild آداپتر داره.
- هم API برنامهنویسی داره هم CLI، و ایمپورتهای فقط-تایپ رو پیشفرض حذف میکنه.
- طبق بنچمارک خودش حدود ۲۰ برابر سریعتر از Babel ـه و به Node ۱۸ به بالا نیاز داره.




