src/Language/Container.ts   A
last analyzed

Complexity

Total Complexity 1
Complexity/F 1

Size

Lines of Code 45
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 38
dl 0
loc 45
ccs 10
cts 10
cp 1
rs 10
c 0
b 0
f 0
wmc 1
mnd 0
bc 0
fnc 1
bpm 0
cpm 1
noi 0

1 Function

Rating   Name   Duplication   Size   Complexity  
A Container.setupDefaults 0 3 1
1
import DataStorage from '@enbock/simple-storage/DataStorage';
2
import ListenerAdapter from '@enbock/state-value-observer/ListenerAdapter';
3
import ValueObserver from '@enbock/state-value-observer/ValueObserver';
4
import AjaxLoader from './Loader/Ajax';
5
import Manager from './Manager';
6
import ActiveTranslatorAdapter from './Manager/ActiveTranslatorAdapter';
7
import Translator from './Translator';
8
import TranslatorFactory from './Translator/Factory';
9
10
class Container {
11
  translatorFactory: TranslatorFactory;
12
  loader: AjaxLoader;
13
  manager: Manager;
14
  adapter: ListenerAdapter<string>;
15
  observer: ValueObserver<string>;
16
  activeTranslator: ValueObserver<Translator>;
17
  activeTranslatorAdapter: ActiveTranslatorAdapter;
18
  storage: DataStorage;
19
20
  constructor() {
21 1
    this.storage = new DataStorage('language', window.localStorage);
22
23 1
    this.translatorFactory = new TranslatorFactory();
24 1
    this.loader = new AjaxLoader();
25 1
    this.manager = new Manager(this.loader, this.translatorFactory);
26
27 1
    this.adapter = new ListenerAdapter<string>();
28 1
    this.activeTranslator = new ValueObserver<Translator>(
29
      new Translator({}),
30
      {onChange: (newValue: Translator): void => {}}
31
    );
32 1
    this.activeTranslatorAdapter = new ActiveTranslatorAdapter(this.adapter, this.manager, this.activeTranslator);
33 1
    this.observer =
34
      new ValueObserver<string>('', this.storage.attach<string>('languageSetup', this.activeTranslatorAdapter));
35
36 1
    this.setupDefaults();
37
  }
38
39
  protected setupDefaults(): void {
40 1
    this.observer.value = this.storage.loadData<string>('languageSetup', 'de-de');
41
  }
42
}
43
44
export default new Container();
45