From 76325cbb56b0c26096c56e229091fe60ea6d91cc Mon Sep 17 00:00:00 2001 From: Seth Archambault Date: Thu, 17 Jun 2021 14:38:22 -0400 Subject: [PATCH] try catch for writeStagedState serialize Even though there was ".catch" on this line, it only caught errors from setItem, so an error from serialize would be completely unhandled. --- src/createPersistoid.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/createPersistoid.js b/src/createPersistoid.js index 349b7b819..34ff6f123 100644 --- a/src/createPersistoid.js +++ b/src/createPersistoid.js @@ -101,9 +101,17 @@ export default function createPersistoid(config: PersistConfig): Persistoid { delete stagedState[key] } }) - + let serializedState + try { + serializedState = serialize(stagedState) + } catch (err) { + console.error( + 'redux-persist/createPersistoid: error serializing state', + err + ) + } writePromise = storage - .setItem(storageKey, serialize(stagedState)) + .setItem(storageKey, serializedState) .catch(onWriteFail) }