diff options
author | Alex Yatskov <alex@foosoft.net> | 2017-07-16 13:14:28 -0700 |
---|---|---|
committer | Alex Yatskov <alex@foosoft.net> | 2017-07-16 13:14:28 -0700 |
commit | 39f1f30dc9e9aaae8cbeac9afe120fbb5c2ecfd3 (patch) | |
tree | cffa791a8cc14fbe7375b54df77e94bd0d46d5ad /ext/bg/js/util.js | |
parent | 7dd75082abd31b725d9907a93ab97fe1434bab04 (diff) |
refactor bg/js/util.js
Diffstat (limited to 'ext/bg/js/util.js')
-rw-r--r-- | ext/bg/js/util.js | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/ext/bg/js/util.js b/ext/bg/js/util.js index 4d0aa27e..5d80fdb7 100644 --- a/ext/bg/js/util.js +++ b/ext/bg/js/util.js @@ -92,125 +92,6 @@ function fgOptionsSet(options) { /* - * Options - */ - -function optionsSetDefaults(options) { - const defaults = { - general: { - enable: true, - audioSource: 'jpod101', - audioVolume: 100, - groupResults: true, - debugInfo: false, - maxResults: 32, - showAdvanced: false, - popupWidth: 400, - popupHeight: 250, - popupOffset: 10, - showGuide: true - }, - - scanning: { - middleMouse: true, - selectText: true, - alphanumeric: true, - delay: 15, - length: 10, - modifier: 'shift' - }, - - dictionaries: {}, - - anki: { - enable: false, - server: 'http://127.0.0.1:8765', - tags: ['yomichan'], - htmlCards: true, - sentenceExt: 200, - terms: {deck: '', model: '', fields: {}}, - kanji: {deck: '', model: '', fields: {}} - } - }; - - const combine = (target, source) => { - for (const key in source) { - if (!target.hasOwnProperty(key)) { - target[key] = source[key]; - } - } - }; - - combine(options, defaults); - combine(options.general, defaults.general); - combine(options.scanning, defaults.scanning); - combine(options.anki, defaults.anki); - combine(options.anki.terms, defaults.anki.terms); - combine(options.anki.kanji, defaults.anki.kanji); - - return options; -} - -function optionsVersion(options) { - const fixups = [ - () => {}, - () => {}, - () => {}, - () => {}, - () => { - if (options.general.audioPlayback) { - options.general.audioSource = 'jpod101'; - } else { - options.general.audioSource = 'disabled'; - } - }, - () => { - options.general.showGuide = false; - }, - () => { - if (options.scanning.requireShift) { - options.scanning.modifier = 'shift'; - } else { - options.scanning.modifier = 'none'; - } - } - ]; - - optionsSetDefaults(options); - if (!options.hasOwnProperty('version')) { - options.version = fixups.length; - } - - while (options.version < fixups.length) { - fixups[options.version++](); - } - - return options; -} - -function optionsLoad() { - return new Promise((resolve, reject) => { - chrome.storage.local.get(null, store => resolve(store.options)); - }).then(optionsStr => { - return optionsStr ? JSON.parse(optionsStr) : {}; - }).catch(error => { - return {}; - }).then(options => { - return optionsVersion(options); - }); -} - -function optionsSave(options) { - return new Promise((resolve, reject) => { - chrome.storage.local.set({options: JSON.stringify(options)}, resolve); - }).then(() => { - instYomi().optionsSet(options); - fgOptionsSet(options); - }); -} - - -/* * Dictionary */ |