UNPKG

calculate-items

Version:

Items calculation template

46 lines (40 loc) 1.77 kB
import {ItemsResult, Summary} from "../types/types"; import NumberFormatter from "./NumberFormatter"; export default class ItemsFormatter { public static formatSummary(result: ItemsResult) { let str = '' if (result.summary.members.length > 1) { str += result.summary.members.reduce((sum, member, ind) => { sum += `${ind + 1}. ${member.username ? member.username + ': ' : ''} <b>${NumberFormatter.format(member.total)}</b> \n`; return sum; }, str); } else { str += result.summary.inputText || '' } str += `\n-------------\nJami: <b>${NumberFormatter.format(result.summary.total)}</b> `; if (result.summary.membersCount > 1) { str += `(${result.summary.membersCount} kishi)` } return str; } public static calcAndFormatMathJs(text: string) { const total = NumberFormatter.evaluateAndRound(text) const formattedInput = text.replace(/([+\-])/g, ' $1 ') return { total, formatted: `${formattedInput}\n-------------\nJami: <b>${NumberFormatter.format(total)}</b> ` } } public static formatDetailedSummary(summary: Summary, text: string) { let result = summary.members.reduce((sum, member, ind) => { sum += `${ind + 1}. ${member.username || ''} <b>${NumberFormatter.format(member.total)}</b> <code>${member.productNames?.join(', ')}</code>\n `; return sum; }, ''); result += `-------------\nJami: <b>${NumberFormatter.format(summary.total)}</b> (${summary.membersCount} kishi) \n\nOriginal text:\n<pre>${text}</pre> `; return result; } }