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.
Yarn
yarn add node-window-polyfill
Npm
npm install node-window-polyfill
Minimum ES5.
To use it in different environment it's required to clone and build it with the proper flag.
import it in global file, or in evry file where the source code require 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 in old ES:
require('node-window-polyfill').register();
- usage of
window
in the code or libraries window.setTimeout
- defaultssetTimeout
node functionwindow.clearTimeout
- defaultcleatTimeout
node functionwindow.WebSocket
- version from global objectwindow.ArrayBuffer
- version from global object onlywindow.addEventListener
- empty void functionwindow.navigator
-{ onLine: true }
window.isNodeJS
- to check if polyfill were apliedwindow.localStorage
- in memory storageglobal.WebSocket
- using ws if the right flag is not set- if the above functions/properties are already set in the
global
then they will be taken into the account
To configure developlemnt 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
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
After configuring we can run tests.
yarn test
We can use debug information logging with setting up env variable
DEBUG=nodeWindowPolyfill-* yarn test
Tomasz Górka http://tomasz.gorka.org.pl
© 2018 Tomasz Górka
MIT licensed.