@reysilvaa12/qris-ts
v2.0.4
Published
Make static QRIS to dynamic QRIS with TypeScript and BullMQ support
Maintainers
Readme
QRIS Static to QRIS Dynamic Generator (@reysilvaa12/qris-ts)
Library TypeScript/JavaScript untuk mengubah QRIS statis menjadi QRIS dinamis (dengan nominal dan biaya admin) serta menghasilkan gambar QRIS profesional menggunakan template. Proyek ini merupakan fork dari qris-dinamis oleh Rachma Azis.
Fitur Utama
- ✅ String Generator: Mengubah string QRIS statis ke dinamis dengan kalkulasi CRC16 otomatis.
- ✅ Image Generator: Menghasilkan gambar QRIS bergaya premium (Jimp + Canvas styled).
- ✅ Fee Support: Mendukung biaya admin tipe rupiah (fixed) maupun persentase.
- ✅ BullMQ Ready: Didesain aman untuk diproses di latar belakang (background jobs).
- ✅ TypeScript Support: Dilengkapi dengan definisi tipe data (types) yang lengkap.
Instalasi
Gunakan npm untuk menginstal paket ini:
npm i @reysilvaa12/qris-tsContoh Penggunaan
1. Membuat String QRIS Dinamis (Hanya Text)
Gunakan makeString jika kamu hanya membutuhkan output berupa string QRIS untuk diproses sendiri.
import { makeString } from '@reysilvaa12/qris-ts';
const qrisStatis = '00020101021126570011ID........';
const options = {
nominal: '50000',
taxtype: 'p', // 'p' untuk persentase, 'r' untuk nilai tetap/rupiah
fee: '1000' // Biaya admin
};
const qrisDinamis = makeString(qrisStatis, options);
console.log(qrisDinamis);2. Membuat Gambar QRIS (Output File/Base64)
Gunakan makeFile untuk menghasilkan file gambar .jpg lengkap dengan Nama Merchant, NMID, dan ID.
import { makeFile } from '@reysilvaa12/qris-ts';
const generateQR = async () => {
const qris = '00020101021126570011ID........';
// Output sebagai file JPG
const filePath = await makeFile(qris, {
nominal: '15000',
path: './output/tagihan-makan.jpg'
});
console.log('QRIS disimpan di:', filePath);
// Output sebagai Base64
const base64 = await makeFile(qris, {
nominal: '15000',
base64: true
});
console.log('Base64:', base64);
};
generateQR();Referensi API
makeString(qris, options)
| Parameter | Tipe | Wajib | Deskripsi |
| :--- | :--- | :--- | :--- |
| qris | string | Ya | String QRIS statis dasar. |
| options.nominal | string | Ya | Jumlah nominal pembayaran (cth: "5000"). |
| options.taxtype | 'p' \| 'r' | Tidak | p = Persentase, r = Nilai Tetap (Default: p). |
| options.fee | string | Tidak | Besar biaya admin (Default: "0"). |
makeFile(qris, options)
Selain opsi di atas, makeFile juga mendukung:
| Parameter | Tipe | Deskripsi |
| :--- | :--- | :--- |
| base64 | boolean | Jika true, mengembalikan string base64. Jika false, mengembalikan path file. |
| path | string | Path file output kustom (Default: folder output/). |
Prasyarat (Aset Gambar & Font)
Untuk menggunakan fitur makeFile, pastikan kamu memiliki folder assets di root project kamu dengan struktur berikut:
/assets
├── template.png # Background QRIS
└── /font # Folder berisi font .fntLisensi
Distributed under the MIT License. See LICENSE for more information.
Penulis
- Maintained by: Reynald Silva (reysilvaa)
- Forked from: Rachma Azis (razisek.com)
