fix(analytics): change method return types from void to Promise<void>#2409
Open
muhammedaksam wants to merge 1 commit into
Open
fix(analytics): change method return types from void to Promise<void>#2409muhammedaksam wants to merge 1 commit into
muhammedaksam wants to merge 1 commit 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. |
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