fix: avoid using window in module exports #477
Merged
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.
CDX-1593 🚀
Proposed changes:
dist/browser.mjs
is the exported file inmodule
.The module can be imported by both NodeJS & browsers alike nowadays and as a library.
For example, we recently encountered an issue consuming the library after migrating Headless to an ESM-first package, as we export both ESM for NodeJS and browsers.
To solve that non-breakingly, I propose using the isomorphic way to access the global object instead of runtime specific, such as window or process.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis
From our experience in Headless, this is 'good enough', even if other places of the code uses
window
How to test
Checklist: