1 |
|
2 |
|
3 |
|
4 | 'use strict';
|
5 |
|
6 | const Base = require('../base/Base');
|
7 |
|
8 | module.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 |