jstd-web/node_modules/ssr-window
liang.chao ae9cf31198 Initial commit 2025-11-25 15:23:22 +08:00
..
types Initial commit 2025-11-25 15:23:22 +08:00
LICENSE Initial commit 2025-11-25 15:23:22 +08:00
README.md Initial commit 2025-11-25 15:23:22 +08:00
package.json Initial commit 2025-11-25 15:23:22 +08:00
ssr-window.esm.js Initial commit 2025-11-25 15:23:22 +08:00
ssr-window.umd.js Initial commit 2025-11-25 15:23:22 +08:00
ssr-window.umd.js.map Initial commit 2025-11-25 15:23:22 +08:00
ssr-window.umd.min.js Initial commit 2025-11-25 15:23:22 +08:00
ssr-window.umd.min.js.map Initial commit 2025-11-25 15:23:22 +08:00

README.md

SSR Window

Better handling for window and documentt 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.