window-or-global
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/window-or-global package

1.0.1 • Public • Published

window-or-global

Use this module to get the global object both on server and client side. No more window is not defined errors just peace and flowers.

Advantages:

  • You can easily mock it by mockery or proxyquire in your tests
  • It's really useful in case of universal (or isomorphic) code, for example, when you'd like to render a React component both on client and server side

Install

$ npm i window-or-global

Usage

import root from 'window-or-global'

React example

components/my-component.jsx:

import React, { Component } from 'react'
// in node, you'll get the global object instead of crashing by an error
import root from 'window-or-global'
 
class MyComponent extends Component {
 
  // this method is only invoked in the browser environment
  componentDidMount() {
    root.addEventListener(/*...*/)
  }
 
  componentWillUnmount() {
    root.addEventListener(/*...*/)
  }
 
  render() {}
 
}
 
// Voilà. Enjoy your universal react component! ;)
// No more 'window is not defined' errors when you render your component
// on server side.
 

Unit-testing example

You can find a complete test example here. The test passes of course, just type

$ npm test

in your terminal.

License

MIT © Purpose Industries

Package Sidebar

Install

npm i window-or-global

Weekly Downloads

121,185

Version

1.0.1

License

MIT

Last publish

Collaborators

  • oroce
  • ruffle1986