From deb16704f2340f81b6b42870bfb9e8f5cc5baeba Mon Sep 17 00:00:00 2001 From: EnixCoda Date: Wed, 20 Feb 2019 14:16:22 +0800 Subject: [PATCH] refactor: safer config --- src/driver/core/SideBar.ts | 2 +- src/utils/configHelper.ts | 6 +++--- src/utils/general.ts | 6 ++++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/driver/core/SideBar.ts b/src/driver/core/SideBar.ts index 37f3ae0..b9bc1dc 100644 --- a/src/driver/core/SideBar.ts +++ b/src/driver/core/SideBar.ts @@ -70,7 +70,7 @@ const init: MethodCreator = dispatch => async () => { compressSingletonFolder, copyFileButton, copySnippetButton, - } = await configHelper.get() + } = await configHelper.getAll() DOMHelper.decorateGitHubPageContent({ copyFileButton, copySnippetButton }) dispatch.set({ accessToken, diff --git a/src/utils/configHelper.ts b/src/utils/configHelper.ts index 92a902b..3cbf1a5 100644 --- a/src/utils/configHelper.ts +++ b/src/utils/configHelper.ts @@ -19,12 +19,12 @@ export enum config { const configKeys = Object.values(config) -function get(): any { +function getAll(): any { return storageHelper.get(configKeys) || {} } function getOne(key: keyof Config) { - return get()[key] + return getAll()[key] } function set(partialConfig: Partial) { @@ -38,7 +38,7 @@ function setOne(key: config, value: any) { } export default { - get, + getAll, getOne, set, setOne, diff --git a/src/utils/general.ts b/src/utils/general.ts index 2b03cea..34dee8b 100644 --- a/src/utils/general.ts +++ b/src/utils/general.ts @@ -2,10 +2,12 @@ export function pick(source: T, keys: string[]): Partial { if (keys && typeof keys === 'object') { return (Array.isArray(keys) ? keys : Object.keys(keys)).reduce( (copy, key) => { - copy[key as keyof T] = source[key as keyof T] + if (key in source) { + copy[key as keyof T] = source[key as keyof T] + } return copy }, - {} as Partial + {} as Partial, ) } return {} as Partial