Wondering what’s next for npm?Check out our public roadmap! »

    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

    Install

    npm i window-or-global

    DownloadsWeekly Downloads

    101,196

    Version

    1.0.1

    License

    MIT

    Last publish

    Collaborators

    • avatar
    • avatar