fix(partysocket): add React Native environment detection for dispatchEvent #294
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.
Summary
Fixes #257
React Native/Expo users experience
TypeError: Failed to execute 'dispatchEvent' on 'EventTarget': parameter 1 is not of type 'Event'when using partysocket.Root Cause
The environment detection logic incorrectly identifies React Native as a browser environment because:
processanddocumentpolyfilledprocess.versions.nodeisNode = false, selecting browser-style event cloninginstanceof Eventchecks inevent-target-polyfillSolution
Added explicit React Native environment detection using the standard
navigator.product === "ReactNative"check:Changes
packages/partysocket/src/ws.ts- Added React Native environment detectionpackages/partysocket/src/tests/react-native.test.ts- Added test coverageTest Plan