node-window-polyfill

Polyfill for the problem `window is not defined` in node.js

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
node-window-polyfill
6111.0.22 years ago5 years agoMinified + gzip package size for node-window-polyfill in KB

Readme

node-window-polyfill
Version npm
Polyfill for the problem window is not defined in node.js. It's inserting window object on globals and inputing all needed sub-elements with requiring web sockets dependency.

Installation

Yarn
yarn add node-window-polyfill

Npm
npm install node-window-polyfill

Requirements

Minimum ES5.
To use it in different environment it's required to clone and build it with the proper flag.

Usage

Import it in global file, or in every file where the source code requires the window object.
import nodeWindowPolyfill from "node-window-polyfill";

nodeWindowPolyfill.register();

For shorter import that will call register directrly
import "node-window-polyfill/register";

If you don't want to import 'ws' module and just create empty objects:
import nodeWindowPolyfill from "node-window-polyfill";

nodeWindowPolyfill.register(false);

And the version previous ES versions:
require('node-window-polyfill').register();

What is polyfilled?

  • usage of window in the code or libraries
  • window.setTimeout - default setTimeout node function
  • window.clearTimeout - default clearTimeout node function
  • window.WebSocket - version from global object
  • window.ArrayBuffer - version from global object only
  • window.addEventListener - empty void function
  • window.navigator - { onLine: true }
  • window.isNodeJS - to check if polyfills were aplied
  • window.localStorage - in memory storage
  • window.Date - version from global object
  • global.WebSocket - using ws if the right flag is not set
  • if the above functions/properties are already set in the global object then they will be taken into the account

Configure

To configure development environment and run the tests, first clone the repository:
git clone https://github.com/tgorka/node-window-polyfill.git

then (once you have yarn and node installed) install dependencies
yarn

Build

To build the distribution and types
yarn build

The distribution is in the dist folder and types in the types folder.
To change defauld ES standard use --target flag. Ex.:
yarn build -target es3

Test

After configuring we can run tests.
yarn test

We can use debug information logging with setting up env variable
DEBUG=nodeWindowPolyfill-* yarn test

Author

Tomasz Górka

License

© 2018 Tomasz Górka
MIT licensed.