aboutsummaryrefslogtreecommitdiffstats
path: root/src/features/serviceProxy
diff options
context:
space:
mode:
authorLibravatar Stefan Malzner <stefan@adlk.io>2018-12-02 00:43:00 +0100
committerLibravatar Stefan Malzner <stefan@adlk.io>2018-12-02 00:43:00 +0100
commit0157d083a257522ec65a003a962984bac83044ca (patch)
tree33eaeaef1acf177ab25211258f2ff6c64b3fd171 /src/features/serviceProxy
parentSimplify spellchecker feature init (diff)
downloadferdium-app-0157d083a257522ec65a003a962984bac83044ca.tar.gz
ferdium-app-0157d083a257522ec65a003a962984bac83044ca.tar.zst
ferdium-app-0157d083a257522ec65a003a962984bac83044ca.zip
Simplify service proxy feature init
Diffstat (limited to 'src/features/serviceProxy')
-rw-r--r--src/features/serviceProxy/index.js54
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
15export default function init(stores) { 15export 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