fix(analytics): change method return types from void to Promise<void>#2409
Open
muhammedaksam wants to merge 5 commits into
Open
fix(analytics): change method return types from void to Promise<void>#2409muhammedaksam wants to merge 5 commits into
muhammedaksam wants to merge 5 commits into
Conversation
The Analytics interface declared track(), page(), identify(), and setEnabled() as returning void. The background implementation returns Promise<void> (async functions), which is assignable to void. But users calling await analytics.track() get TS80007 since the declared type is void. Changed the interface return types to Promise<void> and updated the MethodForwarder type and implementation accordingly.
✅ Deploy Preview for creative-fairy-df92c4 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
PatrykKuniczak
approved these changes
Jun 18, 2026
PatrykKuniczak
left a comment
Collaborator
There was a problem hiding this comment.
Nice catch.
Thanks
@wxt-dev/analytics
@wxt-dev/auto-icons
@wxt-dev/browser
@wxt-dev/i18n
@wxt-dev/is-background
@wxt-dev/module-react
@wxt-dev/module-solid
@wxt-dev/module-svelte
@wxt-dev/module-vue
@wxt-dev/runner
@wxt-dev/storage
@wxt-dev/unocss
@wxt-dev/webextension-polyfill
wxt
commit: |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2409 +/- ##
==========================================
+ Coverage 78.41% 78.49% +0.07%
==========================================
Files 133 133
Lines 3882 3882
Branches 875 875
==========================================
+ Hits 3044 3047 +3
+ Misses 749 747 -2
+ Partials 89 88 -1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
The
Analyticsinterface declaredtrack(),page(),identify(), andsetEnabled()as returningvoid. The background implementation isasyncso it actually returnsPromise<void>, but the frontend implementation returnsvoid. TypeScript allowsPromise<void>to be assigned tovoid(no error on the background side), but users callingawait analytics.track()see TS80007 because the declared return type isvoid.Changed the interface return types to
Promise<void>and updated theMethodForwardertype and frontend implementation accordingly.Manual Testing
await analytics.track(...),await analytics.page(...),await analytics.identify(...), orawait analytics.setEnabled(...)in a WXT project using this analytics module — TS80007 should no longer appearawait— they should still work in both background and frontend contextsbun run --filter @wxt-dev/analytics buildRelated Issue
This PR closes #2408