From ef35a092bee4c17ab3ada7b84157e2e3101d3c3c Mon Sep 17 00:00:00 2001 From: Romain Vigier Date: Sun, 24 Nov 2019 10:20:57 +0100 Subject: [PATCH] Move variants guessing to a separate class --- src/extension.js | 54 ++++++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/src/extension.js b/src/extension.js index 2ca1c94..7559663 100644 --- a/src/extension.js +++ b/src/extension.js @@ -28,7 +28,7 @@ class Switcher { enable() { this.theme = new Themer(); - this.variants = this._guess_theme_variants_from(this.theme.current); + this.variants = Variants.guess_from(this.theme.current); this.theme.listen(this._on_theme_change.bind(this)); this.nightlight = new Nightlighter(); @@ -65,30 +65,6 @@ class Switcher { this._apply_theme_variant(); } - _guess_theme_variants_from(name) { - const variants = {}; - variants.original = name; - - if ( name.includes('HighContrast') ) { - variants.day = 'HighContrast'; - variants.night = 'HighContrastInverse'; - } - else if ( name.match(/Materia.*-compact/g) ) { - variants.day = name.replace(/-dark(?!er)/g, ''); - variants.night = variants.day.replace(/(-light)?-compact/g, '-dark-compact'); - } - else if ( name.includes('Arc') ) { - variants.day = name.replace(/-Dark(?!er)/g, ''); - variants.night = variants.day.replace('-Darker', '') + '-Dark'; - } - else { - variants.day = name.replace(/-dark(?!er)/g, ''); - variants.night = variants.day.replace(/(-light)?(-darker)?/g, '') + '-dark'; - } - - return variants; - } - } @@ -171,6 +147,34 @@ class Nightlighter { } +class Variants { + + static guess_from(name) { + const variants = {}; + variants.original = name; + + if ( name.includes('HighContrast') ) { + variants.day = 'HighContrast'; + variants.night = 'HighContrastInverse'; + } + else if ( name.match(/Materia.*-compact/g) ) { + variants.day = name.replace(/-dark(?!er)/g, ''); + variants.night = variants.day.replace(/(-light)?-compact/g, '-dark-compact'); + } + else if ( name.includes('Arc') ) { + variants.day = name.replace(/-Dark(?!er)/g, ''); + variants.night = variants.day.replace('-Darker', '') + '-Dark'; + } + else { + variants.day = name.replace(/-dark(?!er)/g, ''); + variants.night = variants.day.replace(/(-light)?(-darker)?/g, '') + '-dark'; + } + + return variants; + } + +} + function init() { return new Switcher();