1
0
mirror of https://github.com/BoostIo/Boostnote synced 2025-12-17 19:51:42 +00:00

Merge pull request #787 from asmsuechan/fix-configmanager

Fix configmanager
This commit is contained in:
SuenagaRyota
2017-08-11 00:41:16 +09:00
committed by GitHub
2 changed files with 12 additions and 14 deletions

View File

@@ -20,7 +20,7 @@
"codeBlockTheme": "dracula", "codeBlockTheme": "dracula",
"fontFamily": "Lato", "fontFamily": "Lato",
"fontSize": "14", "fontSize": "14",
"lineNumber": true, "lineNumber": true
}, },
"sortBy": "UPDATED_AT", "sortBy": "UPDATED_AT",
"ui": { "ui": {

View File

@@ -60,19 +60,17 @@ function _save (config) {
} }
function get () { function get () {
let config = window.localStorage.getItem('config') const rawStoredConfig = window.localStorage.getItem('config')
const storedConfig = Object.assign({}, DEFAULT_CONFIG, JSON.parse(rawStoredConfig))
let config = storedConfig
try { try {
const boostnotercConfig = RcParser.parse() const boostnotercConfig = RcParser.parse()
config = assignConfigValues(storedConfig, boostnotercConfig)
config = Object.assign({}, DEFAULT_CONFIG, JSON.parse(config))
config = Object.assign({}, DEFAULT_CONFIG, boostnotercConfig)
config = assignConfigValues(config, boostnotercConfig, config)
if (!validate(config)) throw new Error('INVALID CONFIG') if (!validate(config)) throw new Error('INVALID CONFIG')
} catch (err) { } catch (err) {
console.warn('Boostnote resets the malformed configuration.') console.warn('Boostnote resets the invalid configuration.')
config = DEFAULT_CONFIG config = DEFAULT_CONFIG
_save(config) _save(config)
} }
@@ -131,12 +129,12 @@ function set (updates) {
}) })
} }
function assignConfigValues (config, rcConfig, originalConfig) { function assignConfigValues (originalConfig, rcConfig) {
config = Object.assign({}, DEFAULT_CONFIG, rcConfig, originalConfig) let config = Object.assign({}, DEFAULT_CONFIG, originalConfig, rcConfig)
config.hotkey = Object.assign({}, DEFAULT_CONFIG.hotkey, rcConfig.hotkey, originalConfig.hotkey) config.hotkey = Object.assign({}, DEFAULT_CONFIG.hotkey, originalConfig.hotkey, rcConfig.hotkey)
config.ui = Object.assign({}, DEFAULT_CONFIG.ui, rcConfig.ui, originalConfig.ui) config.ui = Object.assign({}, DEFAULT_CONFIG.ui, originalConfig.ui, rcConfig.ui)
config.editor = Object.assign({}, DEFAULT_CONFIG.editor, rcConfig.editor, originalConfig.editor) config.editor = Object.assign({}, DEFAULT_CONFIG.editor, originalConfig.editor, rcConfig.editor)
config.preview = Object.assign({}, DEFAULT_CONFIG.preview, rcConfig.preview, originalConfig.preview) config.preview = Object.assign({}, DEFAULT_CONFIG.preview, originalConfig.preview, rcConfig.preview)
return config return config
} }