diff options
| author | Henry Jameson <me@hjkos.com> | 2019-09-29 22:33:15 +0300 |
|---|---|---|
| committer | Henry Jameson <me@hjkos.com> | 2019-09-29 22:33:15 +0300 |
| commit | 979e170bd6880d0ee85bf0dd8898cf53d91055b5 (patch) | |
| tree | 27e080d1ecc85cfeaa2a23cdc16b8b10994cce8f /src/modules/config.js | |
| parent | aadd36f3ec2d5131deae43a4e8042455a90ca16f (diff) | |
created mergedConfig getter to avoid obnoxious checks for undefined everywhere
Diffstat (limited to 'src/modules/config.js')
| -rw-r--r-- | src/modules/config.js | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/modules/config.js b/src/modules/config.js index cf04d14f..5245308d 100644 --- a/src/modules/config.js +++ b/src/modules/config.js @@ -40,8 +40,27 @@ const defaultState = { minimalScopesMode: undefined // instance default } +// caching the instance default properties +export const instanceDefaultProperties = Object.entries(defaultState) + .filter(([key, value]) => value === undefined) + .map(([key, value]) => key) + const config = { state: defaultState, + getters: { + mergedConfig (state, getters, rootState, rootGetters) { + const { instance } = rootState + return { + ...state, + ...instanceDefaultProperties + .map(key => [key, state[key] === undefined + ? instance[key] + : state[key] + ]) + .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {}) + } + } + }, mutations: { setOption (state, { name, value }) { set(state, name, value) |
