fix: make MediaPlayerFactory SSR-safe to prevent 'window is not defined' error #4929
+21
−17
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
This PR fixes the
ReferenceError: window is not definederror that occurs when importing dash.js in SSR (Server-Side Rendering) environments like Next.js.Problem
When using dash.js in a Next.js project with a simple import:
The following error is thrown during SSR:
This happens because
MediaPlayerFactory.jsexecutes code at module-level that accesseswindowAPIs (addEventListener,setInterval, etc.) without checking if running in a browser environment.Solution
Wrap all the auto-creation logic in
MediaPlayerFactory.jsinside a browser environment check:This is a minimal, non-breaking change that:
Test plan
Related issue
Fixes #4728