From cf472b71183143c727fd5b0fd2c57844b8ae19ed Mon Sep 17 00:00:00 2001 From: "shuwen.wu" Date: Wed, 2 Sep 2026 18:04:25 +0800 Subject: [PATCH] fix: resolve logic bug and mutable default argument in getUserDataForFid - Remove redundant else branch that was overwriting acc[type] with the same value - Fix mutable default argument by creating requestOptions object fresh each time - Properly merge user-provided hubRequestOptions with default api_key header --- packages/frames.js/src/getUserDataForFid.ts | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/frames.js/src/getUserDataForFid.ts b/packages/frames.js/src/getUserDataForFid.ts index 9d0af3b4..993791c4 100644 --- a/packages/frames.js/src/getUserDataForFid.ts +++ b/packages/frames.js/src/getUserDataForFid.ts @@ -16,16 +16,22 @@ export async function getUserDataForFid< }): Promise { const { hubHttpUrl = DEFAULT_HUB_API_URL, - hubRequestOptions = { - headers: { - api_key: DEFAULT_HUB_API_KEY, - }, - }, + hubRequestOptions = {}, } = options; + const requestHeaders = { + ...(hubRequestOptions.headers ?? {}), + api_key: DEFAULT_HUB_API_KEY, + }; + + const requestOptions = { + ...hubRequestOptions, + headers: requestHeaders, + }; + const userDataResponse = await fetch( `${hubHttpUrl}/v1/userDataByFid?fid=${fid}`, - hubRequestOptions + requestOptions ); const { messages } = (await userDataResponse @@ -61,8 +67,6 @@ export async function getUserDataForFid< if (foundValue && foundValue.timestamp < timestamp) { acc[type] = { value, timestamp }; - } else { - acc[type] = { value, timestamp }; } } catch (error) { // eslint-disable-next-line no-console -- provide feedback to user