Skip to content

Latest commit

 

History

History
120 lines (85 loc) · 2.62 KB

README.md

File metadata and controls

120 lines (85 loc) · 2.62 KB

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 http://tomasz.gorka.org.pl

License

© 2018 Tomasz Górka

MIT licensed.