Formatter

Monster.Text. Formatter

Messages can be formatted with the formatter. To do this, an object with the values must be passed to the formatter. The message can then contain placeholders.

Look at the example below. The placeholders use the logic of Pipe.

You can call the method via the monster namespace new Monster.Text.Formatter().

<script type="module">
import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/text/formatter.js';
new Monster.Text.Formatter()
</script>

Alternatively, you can also integrate this function individually.

<script type="module">
import {Formatter} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/text/formatter.js';
new Formatter()
</script>

Marker in marker

Markers can be nested. Here, the inner marker is resolved first and then the outer marker.


Marker with parameter

A string can also bring its own values. These must then be separated from the key by a separator ::. The values themselves must be specified in key/value pairs. The key must be separated from the value by a separator =.

When using a pipe, you must pay attention to the separators.

Constructor

# new Formatter(object)

Default values for the markers are ${ and }

Parameters:
Name Type Description
object object
Since:
  • 1.12.0
Throws:

value is not a object

Type
TypeError
Example
import {Formatter} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/text/formatter.js';

new Formatter({
      a: {
          b: {
              c: "Hello"
          },
          d: "world",
      }
  }).format("${a.b.c} ${a.d | ucfirst}!");

// ↦ Hello World!

Methods

# format(text) → {string}

Parameters:
Name Type Description
text string
Throws:

value is not a string

Type
TypeError
Returns:
Type
string

# setMarker(open, close) → {Formatter}

Set new Marker

Default values for the markers are ${ and }

formatter.setMarker('#'); // open and close are both #
formatter.setMarker('[',']');
formatter.setMarker('i18n{','}');
Parameters:
Name Type Description
open string
close string
Since:
  • 1.12.0
Throws:

value is not a string

Type
TypeError
Returns:
Type
Formatter

# setParameterChars(delimiter, assignment) → {Formatter}

Set new Parameter Character

Default values for the chars are :: and =

formatter.setParameterChars('#');
formatter.setParameterChars('[',']');
formatter.setParameterChars('i18n{','}');
Parameters:
Name Type Description
delimiter string
assignment string
Since:
  • 1.24.0
Throws:

value is not a string

Type
TypeError
Returns:
Type
Formatter