UNPKG

877 BJavaScriptView Raw
1/**
2 * @copyright Copyright (c) 2019 Maxim Khorin <maksimovichu@gmail.com>
3 */
4'use strict';
5
6const Base = require('../base/Base');
7
8module.exports = class MessageFormatter extends Base {
9
10 constructor (config) {
11 super({
12 formatter: 'formatter',
13 ...config
14 });
15 this.formatter = this.module.get(this.formatter);
16 }
17
18 format (message, params, language) {
19 if (!params) {
20 return message;
21 }
22 for (const key of Object.keys(params)) {
23 let value = params[key];
24 if (Array.isArray(value) && value[1] && this.formatter) {
25 value = this.formatter.format(value[0], value[1], {language, ...value[2]});
26 }
27 message = message.replace(new RegExp(`{${key}}`,'g'), value);
28 }
29 return message;
30 }
31};
\No newline at end of file