Skip to content

perf: faster cache #33518

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft

perf: faster cache #33518

wants to merge 2 commits into from

Conversation

davidmurdoch
Copy link
Contributor

@davidmurdoch davidmurdoch commented Jun 6, 2025

WIP. Needs migration to delete all old indexedb-cached files

Description

Open in GitHub Codespaces

Related issues

Fixes:

Manual testing steps

  1. Go to this page...

Screenshots/Recordings

Before

After

Pre-merge author checklist

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

Copy link
Contributor

github-actions bot commented Jun 6, 2025

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@metamaskbot metamaskbot added the team-extension-platform Extension Platform team label Jun 6, 2025
Comment on lines +74 to +85
const responseBytes =
response.status === 204 ? undefined : await response.bytes();
const cacheEntry: CacheEntry = {
cachedResponse: responseBytes,
cachedTime: currentTime,
};

await setStorageItem(cacheKey, cacheEntry);
return responseJson;
// fire and forget, no need to wait for the cache to be written
setStorageItem(cacheKey, cacheEntry);

// @ts-expect-error typescript's `JSON.parse` type is wrong; it does allow parsing of `Uint8Array` directly
return responseBytes ?? (JSON.parse(responseBytes) as R);
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: need to benchmark storing raw bytes vs JSON

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
team-extension-platform Extension Platform team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants