src/Language/Translator.ts   A
last analyzed

Complexity

Total Complexity 3
Complexity/F 3

Size

Lines of Code 29
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 3
eloc 20
mnd 2
bc 2
fnc 1
dl 0
loc 29
rs 10
bpm 2
cpm 3
noi 0
c 0
b 0
f 0
ccs 7
cts 7
cp 1

1 Function

Rating   Name   Duplication   Size   Complexity  
A Translator.translate 0 12 3
1
export interface ValueMap {
2
  [pattern: string]: string
3
}
4
5
export interface LanguageData {
6
  [key: string]: string
7
}
8
9
export default class Translator {
10
  language: LanguageData;
11
12
  constructor(languageData: LanguageData) {
13 14
    this.language = languageData;
14
  }
15
16
  public translate(key: string, valueMap: ValueMap = {}) {
17 3
    if (this.language.hasOwnProperty(key)) {
18 2
      let translated = String(this.language[key]);
19 2
      for (let pattern in valueMap) {
20 1
        translated = translated.replace(new RegExp('{' + pattern + '}', 'g'), valueMap[pattern]);
21
      }
22
23 2
      return translated;
24
    }
25
26 1
    return key;
27
  }
28
}
29