diff options
author | Stefan Malzner <stefan@adlk.io> | 2018-12-02 00:43:00 +0100 |
---|---|---|
committer | Stefan Malzner <stefan@adlk.io> | 2018-12-02 00:43:00 +0100 |
commit | 0157d083a257522ec65a003a962984bac83044ca (patch) | |
tree | 33eaeaef1acf177ab25211258f2ff6c64b3fd171 /src/features | |
parent | Simplify spellchecker feature init (diff) | |
download | ferdium-app-0157d083a257522ec65a003a962984bac83044ca.tar.gz ferdium-app-0157d083a257522ec65a003a962984bac83044ca.tar.zst ferdium-app-0157d083a257522ec65a003a962984bac83044ca.zip |
Simplify service proxy feature init
Diffstat (limited to 'src/features')
-rw-r--r-- | src/features/serviceProxy/index.js | 54 |
1 files changed, 22 insertions, 32 deletions
diff --git a/src/features/serviceProxy/index.js b/src/features/serviceProxy/index.js index 50dea8c9b..5a74685a4 100644 --- a/src/features/serviceProxy/index.js +++ b/src/features/serviceProxy/index.js | |||
@@ -13,43 +13,33 @@ export const config = observable({ | |||
13 | }); | 13 | }); |
14 | 14 | ||
15 | export default function init(stores) { | 15 | export default function init(stores) { |
16 | reaction( | 16 | debug('Initializing `serviceProxy` feature'); |
17 | () => stores.features.features.isServiceProxyEnabled, | ||
18 | (enabled, r) => { | ||
19 | if (enabled) { | ||
20 | debug('Initializing `serviceProxy` feature'); | ||
21 | 17 | ||
22 | // Dispose the reaction to run this only once | 18 | autorun(() => { |
23 | r.dispose(); | 19 | const { isServiceProxyEnabled, isServiceProxyPremiumFeature } = stores.features.features; |
24 | 20 | ||
25 | const { isServiceProxyEnabled, isServiceProxyPremiumFeature } = stores.features.features; | 21 | config.isEnabled = isServiceProxyEnabled !== undefined ? isServiceProxyEnabled : DEFAULT_FEATURES_CONFIG.isServiceProxyEnabled; |
22 | config.isPremium = isServiceProxyPremiumFeature !== undefined ? isServiceProxyPremiumFeature : DEFAULT_FEATURES_CONFIG.isServiceProxyPremiumFeature; | ||
26 | 23 | ||
27 | config.isEnabled = isServiceProxyEnabled !== undefined ? isServiceProxyEnabled : DEFAULT_FEATURES_CONFIG.isServiceProxyEnabled; | 24 | const services = stores.services.all; |
28 | config.isPremium = isServiceProxyPremiumFeature !== undefined ? isServiceProxyPremiumFeature : DEFAULT_FEATURES_CONFIG.isServiceProxyPremiumFeature; | 25 | const isPremiumUser = stores.user.data.isPremium; |
29 | 26 | ||
30 | autorun(() => { | 27 | services.forEach((service) => { |
31 | const services = stores.services.all; | 28 | const s = session.fromPartition(`persist:service-${service.id}`); |
32 | const isPremiumUser = stores.user.isPremium; | 29 | let proxyHost = 'direct://'; |
33 | 30 | ||
34 | if (config.isPremium && !isPremiumUser) return; | 31 | if (config.isEnabled && (isPremiumUser || !config.isPremium)) { |
35 | 32 | const serviceProxyConfig = stores.settings.proxy[service.id]; | |
36 | services.forEach((service) => { | 33 | |
37 | const s = session.fromPartition(`persist:service-${service.id}`); | 34 | if (serviceProxyConfig && serviceProxyConfig.isEnabled && serviceProxyConfig.host) { |
38 | let proxyHost = 'direct://'; | 35 | proxyHost = serviceProxyConfig.host; |
39 | 36 | } | |
40 | const serviceProxyConfig = stores.settings.proxy[service.id]; | ||
41 | |||
42 | if (serviceProxyConfig && serviceProxyConfig.isEnabled && serviceProxyConfig.host) { | ||
43 | proxyHost = serviceProxyConfig.host; | ||
44 | } | ||
45 | |||
46 | s.setProxy({ proxyRules: proxyHost }, (e) => { | ||
47 | debug(`Using proxy "${proxyHost}" for "${service.name}" (${service.id})`, e); | ||
48 | }); | ||
49 | }); | ||
50 | }); | ||
51 | } | 37 | } |
52 | }, | 38 | |
53 | ); | 39 | s.setProxy({ proxyRules: proxyHost }, (e) => { |
40 | debug(`Using proxy "${proxyHost}" for "${service.name}" (${service.id})`, e); | ||
41 | }); | ||
42 | }); | ||
43 | }); | ||
54 | } | 44 | } |
55 | 45 | ||