autoft-qris
Version:
Package untuk generate QRIS dengan 2 tema (Biru & Hijau) dan cek payment status secara realtime dengan API OrderKuota
62 lines (53 loc) • 1.84 kB
JavaScript
const QRISGeneratorTheme1 = require('./qr-generator.cjs');
const QRISGeneratorTheme2 = require('./qr-generator2.cjs');
const PaymentChecker = require('./payment-checker.cjs');
const ReceiptGenerator = require('./receipt-generator.cjs');
const DeprecationWarning = require('./deprecation-warning.cjs');
// Show non-blocking deprecation/update notice in non-production environments
try { DeprecationWarning.checkAndShowWarning(); } catch (_) {}
class QRISGenerator {
constructor(config, theme = 'theme1') {
this.theme = theme;
if (theme === 'theme2') {
this.generator = new QRISGeneratorTheme2(config);
} else {
this.generator = new QRISGeneratorTheme1(config);
}
}
async generateQRWithLogo(qrString) {
return await this.generator.generateQRWithLogo(qrString);
}
generateQrString(amount) {
return this.generator.generateQrString(amount);
}
calculateCRC16(str) {
return this.generator.calculateCRC16(str);
}
setTheme(theme) {
if (theme !== this.theme) {
this.theme = theme;
if (theme === 'theme2') {
this.generator = new QRISGeneratorTheme2(this.generator.config);
} else {
this.generator = new QRISGeneratorTheme1(this.generator.config);
}
}
}
getCurrentTheme() {
return this.theme;
}
static getAvailableThemes() {
return [
{ id: 'theme1', name: 'Tema (Default)', description: 'QRIS default' },
{ id: 'theme2', name: 'Tema Dengan style Meta', description: 'QRIS dengan aksen style meta' }
];
}
}
module.exports = {
QRISGenerator,
QRISGeneratorTheme1,
QRISGeneratorTheme2,
PaymentChecker,
ReceiptGenerator,
default: QRISGenerator
};