Konsep

Dasar pondasi atau flow lumpia

Lumpia dibangun atas 3 segment saat prosesi. Karena GAS tidak support async, maka ketiganya dipilih secara berurutan.

Misalkan middleware diletakkan pada codingan paling bawah, tetep dijalankan dibagian paling atas (didahulukan).

Bagan

.
shorthand
text, photo, cb inline, etc..
doPost
ctx
middleware
🤖 bot
context
broadcast
trigger
🍥 Lumpia
🧱 helper
🛠 markup
🕸 fetch
👥 user db
init
debug
✈️ telegram client
👤 user
update
👤 user

1. Middleware

Cakupan: use, middleware

Middleware ini bisa mengentikan proses. Misalnya:

bot.use(ctx => console.log('stop') );

Maka, proses akan terhenti tidak dilanjutkan pada event berikutnya.

2. Broadcast

Cakupan: on

Cek bagian update type

3. Trigger

Cakupan: cmd, command, hear, hears, action


Karakteristik

Broadcast dan triger berjalan bersamaan (didahulukan brodcast) ketika middleware sudah selesai diproses dan menghasilkan context

Keduanya tidak saling menghentikan.

Contoh:

bot.on('text' , ctx => ctx.reply('masuk 1'));
bot.cmd('start', ctx => ctx.reply('masuk 2'));

Pesan user yang berupa text dan trigger /start akan dieksekusi (ditangkap keduanya), yang didahulukan adalah jenis broadcast (bot.on), meskipun seandainya codingan diatas dibalik, diletakkan dibawahnya trigger (bot.cmd).

Bisa dianggap sebagai fitur, tapi juga bisa dianggap sebagai bugs juga.

Pandai-pandailah memanfaatkan setuasi-nya.