UNPKG

poe-i18n

Version:

i18n utility for Path of Exile

23 lines (20 loc) 610 B
import { ICUMessageSyntax } from '../types/intl'; export interface Arguments { [key: string]: any; } /** * * @param message - conforming to ICU message syntax * @param args - if the message requires arguments pass them in this object or an error is thrown */ export default function formatMessage( message: ICUMessageSyntax, args: Arguments = {} ) { return message.replace(/\{([^}]+)\}/g, (_: string, arg_name: string) => { if (args.hasOwnProperty(arg_name) === false) { throw new Error(`Message required '${arg_name}' to be present.`); } return String(args[arg_name]); }); }