Bun (thử nghiệm)

Mục tiêu: chạy repo này với Bun (tùy chọn, không khuyên dùng cho WhatsApp/Telegram) mà không làm thay đổi workflow của pnpm.

⚠️ Không khuyên dùng cho Gateway runtime (có bug với WhatsApp/Telegram). Dùng Node cho production nhé.

Tình trạng hiện tại

  • Bun là runtime tùy chọn để chạy TypeScript trực tiếp (bun run …, bun --watch …).
  • pnpm vẫn là mặc định cho build và được hỗ trợ đầy đủ (một số công cụ docs vẫn dùng pnpm).
  • Bun không thể dùng pnpm-lock.yaml và sẽ bỏ qua file này.

Cài đặt

Mặc định:

bun install

Lưu ý: bun.lock/bun.lockb đã được gitignore, nên không ảnh hưởng gì đến repo. Nếu các bạn muốn không ghi lockfile:

bun install --no-save

Build / Test (Bun)

bun run build
bun run vitest run

Bun lifecycle scripts (bị chặn mặc định)

Bun có thể chặn các dependency lifecycle scripts trừ khi được trust rõ ràng (bun pm untrusted / bun pm trust). Với repo này, các script thường bị chặn không cần thiết:

  • @whiskeysockets/baileys preinstall: kiểm tra Node major >= 20 (mình đang chạy Node 22+).
  • protobufjs postinstall: hiện cảnh báo về version schemes không tương thích (không có build artifacts).

Nếu gặp vấn đề runtime thực sự cần các script này, trust chúng rõ ràng:

bun pm trust @whiskeysockets/baileys protobufjs

Lưu ý

  • Một số script vẫn hardcode pnpm (ví dụ docs:build, ui:*, protocol:check). Chạy các script đó qua pnpm nhé.