export function processResultText(text: string): TransactionDetail { const extractValue = (regex: RegExp, txt: string) => regex.exec(txt)?.groups?.['value'] const amount = [ extractValue(/ETB(?[\d,]+\.\d+)/, text), extractValue(/Amount (?[\d,]+\.\d+) ETB/, text) ].find(it => it != undefined) const payer = extractValue(/Payer (?[\w ]+)/, text) const payerAccount = extractValue(/Payer [\w ]+\s*Account (?1\*+\d{3})/, text) const receiver = extractValue(/Receiver (?[\w ]+)/, text) const receiverAccount = extractValue(/Receiver [\w ]+\s*Account (?1\*+\d{3})/, text) const paymentDate = extractValue(/Payment Date \w+ (?[\w ]+)/, text) const reference = extractValue(/Reference No\. (?FT\w{10})/, text) const reason = extractValue(/Reason (?\w*)/, text) return { fullText: text, amount: amount ? Number.parseFloat(amount.replace(",","")) : undefined, payer, receiver, reference, payerAccount, receiverAccount, reason, date: paymentDate, } } export type TransactionDetail = { fullText: string, amount?: number, payer?: string, receiver?: string, reference?: string, payerAccount?: string, receiverAccount?: string, reason?: string, date?: string, }