@gilangf3000/bailis
v7.0.0-rc.10
Published
Bailis: a lightweight WebSockets library for interacting with WhatsApp Web (forked from Baileys)
Readme
Bailis
Bailis adalah library WebSocket ringan untuk berinteraksi dengan WhatsApp Web (fork dari Baileys). Dokumentasi ini versi Bahasa Indonesia dan berfokus pada penggunaan praktis yang paling sering dipakai.
Instalasi
Dengan npm:
npm i @gilangf3000/bailisDengan yarn:
yarn add @gilangf3000/bailisQuick Start
import makeWASocket, {
DisconnectReason,
fetchLatestBaileysVersion,
useMultiFileAuthState
} from '@gilangf3000/bailis'
const startSock = async () => {
const { state, saveCreds } = await useMultiFileAuthState('auth')
const { version } = await fetchLatestBaileysVersion()
const sock = makeWASocket({
version,
auth: state,
})
sock.ev.on('connection.update', ({ connection, lastDisconnect }) => {
if (connection === 'close') {
const statusCode = (lastDisconnect?.error as any)?.output?.statusCode
if (statusCode !== DisconnectReason.loggedOut) {
startSock()
}
}
})
sock.ev.on('creds.update', saveCreds)
}
startSock()Autentikasi
Gunakan useMultiFileAuthState untuk menyimpan kredensial secara aman dan mudah:
import { useMultiFileAuthState } from '@gilangf3000/bailis'
const { state, saveCreds } = await useMultiFileAuthState('auth')In-Memory Store
Bailis menyediakan store in-memory (mirip Baileys upstream) untuk menyimpan chat, kontak, pesan, metadata grup, label, dll.
import makeWASocket, { makeInMemoryStore } from '@gilangf3000/bailis'
const store = makeInMemoryStore({})
store.readFromFile('./baileys_store.json')
setInterval(() => {
store.writeToFile('./baileys_store.json')
}, 10_000)
const sock = makeWASocket({ /* config */ })
store.bind(sock.ev)Catatan penting
- Store hanya menyimpan data yang pernah diterima oleh socket atau dibaca dari file.
- Untuk history lengkap, pastikan
syncFullHistory: truedanshouldSyncHistoryMessage: () => true.
History Sync
History akan masuk lewat event messaging-history.set.
const sock = makeWASocket({
// ...
syncFullHistory: true,
shouldSyncHistoryMessage: () => true,
})Kirim Pesan
await sock.sendMessage('[email protected]', { text: 'Halo!' })Ambil Pesan dari Store
const msgs = await store.loadMessages('[email protected]', 25)
console.log(msgs)Event Penting
connection.updatecreds.updatemessaging-history.setmessages.upsertmessages.updatemessages.deletechats.upsert,chats.update,chats.deletecontacts.upsert,contacts.updatepresence.updatemessages.reactionmessage-receipt.update
Media
Untuk upload/download media, gunakan helper di Utils. Contoh umum:
import { downloadMediaMessage } from '@gilangf3000/bailis'
const buffer = await downloadMediaMessage(msg, 'buffer')Troubleshooting
- Jika login gagal, hapus folder auth lalu login ulang.
- Jika sering disconnect, gunakan
fetchLatestBaileysVersion()dan update versi. - Hindari menyimpan semua history di memori jika skala besar, gunakan database sendiri.
Build
npm run buildBailis menggunakan build ESM:
lib/index.js
Lisensi
MIT
