Change-Id: I066c0e7f8ce87ec00b1141a1b44430444a819b42 (cherry picked from commit 05907a1a42da82737090d55046974d401f8af057) |
||
---|---|---|
.. | ||
types | ||
LICENSE | ||
package.json | ||
README.md | ||
ssr-window.esm.js | ||
ssr-window.umd.js | ||
ssr-window.umd.js.map | ||
ssr-window.umd.min.js | ||
ssr-window.umd.min.js.map |
SSR Window
Better handling for window
and document
object in SSR environment.
This library doesn't implement the DOM (like JSDOM), it just patches (or creates window
and document
objects) to avoid them to fail (throw errors) during server-side rendering.
Was created for use in:
Installation
Library available on NPM:
npm i ssr-window
Usage
import { window, document } from 'ssr-window';
window.addEventListener('resize', () => {});
const div = document.querySelectorAll('div');
Extending
If you rely on some window/document properties which are not included here, you can use extend
helper to add them:
import { window, document, extend } from 'ssr-window';
// add window.navigator.language
extend(window, {
navigator: {
language: 'en',
},
});
// add document.body
extend(document, {
body: {
/* ... */
},
});
Contribution
Yes please! See the contributing guidelines for details.
Licence
This project is licensed under the terms of the MIT license.