From 0157d083a257522ec65a003a962984bac83044ca Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Sun, 2 Dec 2018 00:43:00 +0100 Subject: Simplify service proxy feature init --- src/features/serviceProxy/index.js | 54 ++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 32 deletions(-) (limited to 'src/features/serviceProxy') 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({ }); export default function init(stores) { - reaction( - () => stores.features.features.isServiceProxyEnabled, - (enabled, r) => { - if (enabled) { - debug('Initializing `serviceProxy` feature'); + debug('Initializing `serviceProxy` feature'); - // Dispose the reaction to run this only once - r.dispose(); + autorun(() => { + const { isServiceProxyEnabled, isServiceProxyPremiumFeature } = stores.features.features; - const { isServiceProxyEnabled, isServiceProxyPremiumFeature } = stores.features.features; + config.isEnabled = isServiceProxyEnabled !== undefined ? isServiceProxyEnabled : DEFAULT_FEATURES_CONFIG.isServiceProxyEnabled; + config.isPremium = isServiceProxyPremiumFeature !== undefined ? isServiceProxyPremiumFeature : DEFAULT_FEATURES_CONFIG.isServiceProxyPremiumFeature; - config.isEnabled = isServiceProxyEnabled !== undefined ? isServiceProxyEnabled : DEFAULT_FEATURES_CONFIG.isServiceProxyEnabled; - config.isPremium = isServiceProxyPremiumFeature !== undefined ? isServiceProxyPremiumFeature : DEFAULT_FEATURES_CONFIG.isServiceProxyPremiumFeature; + const services = stores.services.all; + const isPremiumUser = stores.user.data.isPremium; - autorun(() => { - const services = stores.services.all; - const isPremiumUser = stores.user.isPremium; + services.forEach((service) => { + const s = session.fromPartition(`persist:service-${service.id}`); + let proxyHost = 'direct://'; - if (config.isPremium && !isPremiumUser) return; - - services.forEach((service) => { - const s = session.fromPartition(`persist:service-${service.id}`); - let proxyHost = 'direct://'; - - const serviceProxyConfig = stores.settings.proxy[service.id]; - - if (serviceProxyConfig && serviceProxyConfig.isEnabled && serviceProxyConfig.host) { - proxyHost = serviceProxyConfig.host; - } - - s.setProxy({ proxyRules: proxyHost }, (e) => { - debug(`Using proxy "${proxyHost}" for "${service.name}" (${service.id})`, e); - }); - }); - }); + if (config.isEnabled && (isPremiumUser || !config.isPremium)) { + const serviceProxyConfig = stores.settings.proxy[service.id]; + + if (serviceProxyConfig && serviceProxyConfig.isEnabled && serviceProxyConfig.host) { + proxyHost = serviceProxyConfig.host; + } } - }, - ); + + s.setProxy({ proxyRules: proxyHost }, (e) => { + debug(`Using proxy "${proxyHost}" for "${service.name}" (${service.id})`, e); + }); + }); + }); } -- cgit v1.2.3-54-g00ecf