From 852d01dc55a9e3d93668c68545723a9195fe3640 Mon Sep 17 00:00:00 2001 From: Stanislav A Date: Wed, 9 Nov 2022 16:38:56 +0300 Subject: [PATCH] improve setItem helper to setStorageItem --- src/helpers/index.js | 2 +- src/helpers/local-storage-utils.js | 16 ---------------- src/helpers/storage-utils.js | 19 +++++++++++++++++++ src/scriptlets/set-local-storage-item.js | 7 ++++--- src/scriptlets/set-session-storage-item.js | 16 ++++------------ .../trusted-set-local-storage-item.js | 7 ++++--- 6 files changed, 32 insertions(+), 35 deletions(-) delete mode 100644 src/helpers/local-storage-utils.js create mode 100644 src/helpers/storage-utils.js diff --git a/src/helpers/index.js b/src/helpers/index.js index be894189..3a13ce95 100644 --- a/src/helpers/index.js +++ b/src/helpers/index.js @@ -27,5 +27,5 @@ export * from './random-response'; export * from './get-descriptor-addon'; export * from './parse-flags'; export * from './match-request-props'; -export * from './local-storage-utils'; +export * from './storage-utils'; export * from './parse-keyword-value'; diff --git a/src/helpers/local-storage-utils.js b/src/helpers/local-storage-utils.js deleted file mode 100644 index 6cef49aa..00000000 --- a/src/helpers/local-storage-utils.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Set local storage item - * @param {string} key - * @param {string} value - */ -export const setItem = (key, value) => { - // eslint-disable-next-line no-console - const log = console.log.bind(console); - const { localStorage } = window; - // setItem() may throw an exception if the storage is full. - try { - localStorage.setItem(key, value); - } catch (e) { - log(`Unable to set localStorage item due to: ${e.message}`); - } -}; diff --git a/src/helpers/storage-utils.js b/src/helpers/storage-utils.js new file mode 100644 index 00000000..79220f51 --- /dev/null +++ b/src/helpers/storage-utils.js @@ -0,0 +1,19 @@ +/** + * Set item to a specified storage + * @param {Object} storage Storage instance to set item into + * @param {string} key + * @param {string} value + * @param {boolean} shouldLog + */ +export const setStorageItem = (storage, key, value, shouldLog) => { + // eslint-disable-next-line no-console + const log = console.log.bind(console); + // setItem() may throw an exception if the storage is full. + try { + storage.setItem(key, value); + } catch (e) { + if (shouldLog) { + log(`Unable to set sessionStorage item due to: ${e.message}`); + } + } +}; diff --git a/src/scriptlets/set-local-storage-item.js b/src/scriptlets/set-local-storage-item.js index d5366646..9614b5cb 100644 --- a/src/scriptlets/set-local-storage-item.js +++ b/src/scriptlets/set-local-storage-item.js @@ -1,7 +1,7 @@ import { hit, nativeIsNaN, - setItem, + setStorageItem, } from '../helpers/index'; /* eslint-disable max-len */ @@ -85,7 +85,8 @@ export function setLocalStorageItem(source, key, value) { return; } - setItem(key, keyValue); + const { localStorage } = window; + setStorageItem(localStorage, key, keyValue, source.verbose); hit(source); } @@ -96,5 +97,5 @@ setLocalStorageItem.names = [ setLocalStorageItem.injections = [ hit, nativeIsNaN, - setItem, + setStorageItem, ]; diff --git a/src/scriptlets/set-session-storage-item.js b/src/scriptlets/set-session-storage-item.js index db24cf1d..faf5a018 100644 --- a/src/scriptlets/set-session-storage-item.js +++ b/src/scriptlets/set-session-storage-item.js @@ -1,6 +1,7 @@ import { hit, nativeIsNaN, + setStorageItem, } from '../helpers/index'; /* eslint-disable max-len */ @@ -84,18 +85,8 @@ export function setSessionStorageItem(source, key, value) { return; } - const setItem = (key, value) => { - const { sessionStorage } = window; - // setItem() may throw an exception if the storage is full. - try { - sessionStorage.setItem(key, value); - hit(source); - } catch (e) { - log(`Was unable to set sessionStorage item due to: ${e.message}`); - } - }; - - setItem(key, keyValue); + const { sessionStorage } = window; + setStorageItem(sessionStorage, key, keyValue, source.verbose); } setSessionStorageItem.names = [ @@ -105,4 +96,5 @@ setSessionStorageItem.names = [ setSessionStorageItem.injections = [ hit, nativeIsNaN, + setStorageItem, ]; diff --git a/src/scriptlets/trusted-set-local-storage-item.js b/src/scriptlets/trusted-set-local-storage-item.js index cf351be1..9cd74cd9 100644 --- a/src/scriptlets/trusted-set-local-storage-item.js +++ b/src/scriptlets/trusted-set-local-storage-item.js @@ -1,7 +1,7 @@ import { hit, nativeIsNaN, - setItem, + setStorageItem, parseKeywordValue, } from '../helpers/index'; @@ -69,7 +69,8 @@ export function trustedSetLocalStorageItem(source, key, value) { const parsedValue = parseKeywordValue(value); - setItem(key, parsedValue); + const { localStorage } = window; + setStorageItem(localStorage, key, parsedValue, source.verbose); hit(source); } @@ -81,6 +82,6 @@ trustedSetLocalStorageItem.names = [ trustedSetLocalStorageItem.injections = [ hit, nativeIsNaN, - setItem, + setStorageItem, parseKeywordValue, ];