picospinner؛ اسپینر خط فرمان بدون هیچ وابستگی
خلاصهٔ کاملتر
picospinner یه کتابخونهٔ کوچیکه برای نشون دادن اسپینر توی برنامههای خط فرمان Node، یعنی همون علامت چرخندهای که میگه «دارم کار میکنم، صبر کن». تو README اومده که هیچ وابستگیای نداره و کل کارش همینه. یه شیء Spinner میسازی، start میکنی، و آخرش با یکی از succeed، fail، warn، info یا stop تمومش میکنی.
import {Spinner} from 'picospinner';
const spinner = new Spinner('Loading...');
spinner.start();
setTimeout(() => spinner.succeed('Finished.'), 5000);یه نکتهٔ مهم برای آپگرید: از نسخهٔ ۳ این پکیج فقط به شکل ES Module منتشر میشه. Node نسخهٔ 20.17.0 به بالا میتونه ماژول ESM رو با require هم لود کنه، ولی اگه واقعاً به نسخهٔ CommonJS احتیاج داری باید picospinner@2 رو نصب کنی. سازندهها میگن نسخهٔ ۲ توی برنچ v2 نگهداری میشه اما فیچر جدید نمیگیره.
از نسخهٔ 3.0.0 رنگها پیشفرض روشنن و برای این کار از تابع styleText توی node:util استفاده میشه، که روی Node بالاتر از 22.0.0 یا 21.7.0 یا 20.12.0 وجود داره. اگه نبود، فقط رنگ نمایش داده نمیشه و چیزی نمیشکنه. با آپشن colors میشه کلاً خاموشش کرد یا برای هر بخش (متن، اسپینر، succeed و بقیه) رنگ دلخواه گذاشت.
اگه ترجیح میدی از picocolors یا chalk استفاده کنی، کافیه متن از قبل رنگشده رو بدی؛ برای سمبلها هم یه symbolFormatter هست که میتونه رنگ بزنه یا حتی پیشوند و پسوند اضافه کنه. آپشن stream هم خروجی رو مثلاً میبره روی process.stderr تا stdout برای خروجی ماشینخوان آزاد بمونه. فریمهای چرخش و سرعت تیک هم قابل تنظیمن.
نکات کلیدی:
- بدون هیچ وابستگی؛ فقط یه کلاس Spinner با start و پایاندهندههای succeed/fail/warn/info/stop
- نسخهٔ ۳ فقط ESM ـه؛ برای CommonJS باید picospinner@2 نصب بشه
- require(esm) روی Node نسخهٔ 20.17.0 به بالا کار میکنه
- رنگ پیشفرض از 3.0.0، بر پایهٔ styleText در node:util (Node 22.0.0+ یا 21.7.0+ یا 20.12.0+)
- آپشن stream خروجی رو به process.stderr میبره تا stdout تمیز بمونه
- سرعت چرخش با پاس دادن میلیثانیه به spinner.start() تنظیم میشه




