aboutsummaryrefslogtreecommitdiff
path: root/src/modules/config.js
diff options
context:
space:
mode:
authorHenry Jameson <me@hjkos.com>2019-09-29 22:33:15 +0300
committerHenry Jameson <me@hjkos.com>2019-09-29 22:33:15 +0300
commit979e170bd6880d0ee85bf0dd8898cf53d91055b5 (patch)
tree27e080d1ecc85cfeaa2a23cdc16b8b10994cce8f /src/modules/config.js
parentaadd36f3ec2d5131deae43a4e8042455a90ca16f (diff)
created mergedConfig getter to avoid obnoxious checks for undefined everywhere
Diffstat (limited to 'src/modules/config.js')
-rw-r--r--src/modules/config.js19
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)