From 64f1ca4c2369c7b565208eab135f08d0f2baf6ca Mon Sep 17 00:00:00 2001 From: Chris Glein <26607885+chrisglein@users.noreply.github.com> Date: Thu, 20 Aug 2020 16:11:56 -0700 Subject: [PATCH] Fix errors reported from getAllKeys/clear `getAllKeys` was reporting the correct results, but also an empty array error. Unlike the multi* methods, these expect a single error, not an array of errors. The fix is to change the type sent by the windows implementation from an array to a single object. That object is also just a null value, since there are no errors being reported currently by the windows implementation. --- windows/ReactNativeAsyncStorage/DBStorage.cpp | 4 ++-- windows/ReactNativeAsyncStorage/RNCAsyncStorage.h | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/windows/ReactNativeAsyncStorage/DBStorage.cpp b/windows/ReactNativeAsyncStorage/DBStorage.cpp index 84ee605d..ac18d8af 100644 --- a/windows/ReactNativeAsyncStorage/DBStorage.cpp +++ b/windows/ReactNativeAsyncStorage/DBStorage.cpp @@ -469,7 +469,7 @@ void DBStorage::DBTask::getAllKeys(sqlite3* db) { auto writer = winrt::MakeJSValueTreeWriter(); result.WriteTo(writer); std::vector callbackParams; - callbackParams.push_back(winrt::JSValueArray()); + callbackParams.push_back(nullptr); callbackParams.push_back(winrt::TakeJSValue(writer)); m_callback(callbackParams); } @@ -478,7 +478,7 @@ void DBStorage::DBTask::getAllKeys(sqlite3* db) { void DBStorage::DBTask::clear(sqlite3* db) { if (Exec(db, m_callback, u8"DELETE FROM AsyncLocalStorage")) { std::vector callbackParams; - callbackParams.push_back(winrt::JSValueArray()); + callbackParams.push_back(nullptr); m_callback(callbackParams); } } diff --git a/windows/ReactNativeAsyncStorage/RNCAsyncStorage.h b/windows/ReactNativeAsyncStorage/RNCAsyncStorage.h index 5e80a445..eba01af7 100644 --- a/windows/ReactNativeAsyncStorage/RNCAsyncStorage.h +++ b/windows/ReactNativeAsyncStorage/RNCAsyncStorage.h @@ -105,28 +105,28 @@ namespace winrt::ReactNativeAsyncStorage::implementation } REACT_METHOD(getAllKeys); - void getAllKeys(std::function&& callback) noexcept { + void getAllKeys(std::function&& callback) noexcept { dbStorage.AddTask(DBStorage::DBTask::Type::getAllKeys, [callback{ std::move(callback) }](std::vector const& callbackParams) { if (callbackParams.size() > 0) { - auto& errors = callbackParams[0].AsArray(); + auto& error = callbackParams[0]; if (callbackParams.size() > 1) { - callback(errors, callbackParams[1].AsArray()); + callback(error, callbackParams[1].AsArray()); } else { - callback(errors, {}); + callback(error, {}); } } }); } REACT_METHOD(clear); - void clear(std::function&& callback) noexcept { + void clear(std::function&& callback) noexcept { dbStorage.AddTask(DBStorage::DBTask::Type::clear, [callback{ std::move(callback) }](std::vector const& callbackParams) { if (callbackParams.size() > 0) { - auto& errors = callbackParams[0].AsArray(); - callback(errors); + auto& error = callbackParams[0]; + callback(error); } }); }