diff options
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) |
