Helper

Koleksi method bantuan guna keperluaan saat development

Inisiasi

Untuk inisiasi awal

const helper = lumpia.helper;

// atau

const Helper = lumpia.helper;

Silakan menggunakan huruf besar atau kecil untuk konstantanya, sesuaikan sendiri dengan kebiasaan masing-masing.

Helper

Koleksi method untuk membantu saat development.

clearHTML

membersihkan text dari tags html (meng-escape), sehingga tidak terjadi error saat berada pada parse_mode HTML.

Format:

clearHTML(text)
let text = 'Bilangan 12 < 23';

let pesan = helper.clearHTML(text);

clearMarkdown

membersihkan text dari tags markdown (meng-escape), sehingga tidak terjadi error saat berada pada parse_mode markdown.

Format:

clearMarkdown(text)
let text = 'Hitungan 2 * 3 adalah 6';

let pesan = helper.clearMarkdown(text);

forEach

seperti forEach pada javascript, namun bisa dipergunakan untuk objek (JSON).

Format:

forEach(object, callback);

callback memiliki 2 parameter:

  • contain
  • index
var data = [ 'satu', 'dua', 'tiga']; // contoh tipe array
var data = { satu: 1, dua: 2};  // contoh tipe json

helper.forEach(data, (isi, index) => {
    console.log(index, isi);
});

isIn

Memerika apakah suatu nilai terdapat pada sebuah array

Format:

isIn(list, index)
let admin = [ 123, 456 ];
let id = msg.from.id;

if (helper.isIn(admin, id)) {
    console.log('Dia adalah admin!');
}

random

membuat hasil acak untuk bilangan atau array.

Format:

random(list);
random(min, max);

params:

  • list bertipe array
  • min dan max bertipe integer
let list = ['aku', 'kamu', 'dia'];

helper.random(list) // hasil acakan dari aku, kamu, atau dia
helper.random(0,100) // hasil acakan antara angka 1 - 100

textBlob

membuat text bertipe blob

Format:

textBlob(namaFile, text)

params:

  • namaFile tanpa ekstensi, otomatis akan ditambahkan .txt
  • text bertipe string
let blob = helper.textBlob('namaFile', 'Hasanudin H Syafaat');

Output

Tipe output pada Google Apps Script dalam mode web app.

Secara umum dapat dipergunakan untuk merespon fungsi pada doPost(e).

Ada 3 yang tersedia:

  • outputText(text) menghasilkan keluaran bertipe text
  • outputJSON(data) menghasilkan keluaran bertipe JSON, biasanya cocok untuk pembuatan REST API
  • outputHTML(html) menghasilkan keluaran bertipe HTML, biasanya cocok untuk bertipe website biasa

nama

alias: name

menghasilkan format nama user, baik plain text ataupun html.

Format:

name(object);

return:

  • first
  • last
  • fullname
  • username
  • html
 let nama = helper.name(ctx.from);
 
 console.log(nama.fullname);

typeCheck

mengecek tipe suatu variable

Format:

typeCheck(data);
let data = [ 1, 2, 3];

let tipe = helper.typeCheck(data);

console.log(tipe) // result: array
if (tipe === 'array') console.log('Data bertipe Array!');

compactOptions

membersihkan objek dari null / undefined.

Format:

compactOptions(data);
let options = { satu: 1, kosong: null, tidak: undefined };

compactOptions(options);

hasProp

Memeriksa apakah objek tertentu memiliki properti dengan nama tertentu.

Format:

hasProp(object, key);
let obj = { 'foo': 'bar', 'baz': () => {} }

hasProp(obj, 'foo') // true
hasProp(obj, 'baz') // true
hasProp(obj, 'abc') // false

hasPropType

Checks if a given object has a property with a given name.

Furthermore performs a typeof check on the property if it exists

let obj = { 'foo': 'bar', 'baz': () => {} }

hasPropType(obj, 'foo', 'string') // true
hasPropType(obj, 'baz', 'function') // true
hasPropType(obj, 'abc', 'number') // false

Button

bantuan untuk pembuatan keyboard inline, kompabilitas Lib V1/2.

method params keterangan
text text, data, hide jika ditekan menghasilkan callback data
inline text, data, hide alias dari method text diatas
query text, data bounding ke switch_inline_query
jika ditekan, akan memilih jendala chat yang mana sebagai tujuan
queryChat text, data bounding ke switch_inline_query_current_chat
jika ditekan, pada text box memunculkan username dan text isian. Digunakan untuk bot inline
url text, url, hide jika ditekan akan menuju ke url

Default untuk hide adalah false.

Sample belum dibikin (lagi M 🤣)

Silakan tinggalkan komentar saja jika ingin membantu melengkapi dokumentasi…