Passed
Push — develop ( ebd0be...8e0eb9 )
by Daniel
58s queued 10s
created

src/javascript/configuration/configuration.ts   A

Complexity

Total Complexity 4
Complexity/F 2

Size

Lines of Code 48
Function Count 2

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 38
dl 0
loc 48
rs 10
c 0
b 0
f 0
wmc 4
mnd 2
bc 2
fnc 2
bpm 1
cpm 2
noi 0

2 Functions

Rating   Name   Duplication   Size   Complexity  
A configuration.ts ➔ getGlobalConfiguration 0 7 2
A Configuration.getProperty 0 9 2
1
import { ConfigurationStorageBooleanCallback, getGlobalStorageProvider } from "../browserApi/storageProvider";
2
import { assigned } from "../utils/helpers";
3
4
// website
5
export const SETTINGS_websiteDisplayQuickSearch = 'websiteDisplayQuickSearch';
6
export const SETTINGS_websiteAutoTimeConversion = 'websiteAutoTimeConversion';
7
export const SETTINGS_websiteShowNotificationsCountInTab = 'websiteShowNotificationsCountInTab';
8
export const SETTINGS_websiteHideUnusedTabs = 'websiteHideUnusedTabs';
9
export const SETTINGS_websiteOptimizeListAppearance = 'websiteOptimizeListAppearance';
10
export const SETTINGS_websiteOptimizeFontColors = 'websiteOptimizeFontColors';
11
// anime
12
export const SETTINGS_animeLanguageDisplay = 'animeLanguageDisplay';
13
// requests 
14
export const SETTINGS_requestBeautifyPage = 'requestBeautifyPage';
15
// player
16
export const SETTINGS_playerAutoplayAfterScreenshot = 'playerAutoplayAfterScreenshot';
17
// w2g
18
export const SETTINGS_w2gDisplayCharacterCounter = 'w2gDisplayCharacterCounter';
19
class Configuration {
20
    settingsCache: Map<string, boolean>;
21
22
    constructor() {
23
        this.settingsCache = new Map();
24
    }
25
26
    getProperty(key: string, callback: ConfigurationStorageBooleanCallback): void {
27
        if (this.settingsCache.has(key)) {
28
            callback(this.settingsCache.get(key));
29
        }
30
        else {
31
            getGlobalStorageProvider().getDataAsBoolean(key, true, value => {
32
                this.settingsCache.set(key, value);
33
                callback(value);
34
            });
35
        }
36
    }
37
}
38
39
let __globalConfig: Configuration;
40
41
export function getGlobalConfiguration() {
42
    if (!assigned(__globalConfig)) {
43
        __globalConfig = new Configuration();
44
    }
45
46
    return __globalConfig;
47
}
48