1.0.1 • Published 9 years ago

window-or-global v1.0.1

Weekly downloads
120,538
License
MIT
Repository
github
Last release
9 years ago

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

behtarino@carbon/ibmdotcom-react@carbon/ibmdotcom-services@carbon/ibmdotcom-utilities@carbon/ibmdotcom-web-components@everymundo/em-cmp-lib-pricescarbon-addons-boomerang-react@ceed/components-react@smallstack/data@infinitebrahmanuniverse/nolb-windmaycur-business@everything-registry/sub-chunk-3148react-haptic-buttonserverrequests-webclientstewie-editorem-cmp-lib-prototypeseonin-clienteonin-sharedreact-mailto.js@d-cat/mocks-google-analytics-jestcycle-canvasredux-hydration-examplereact-twitch-embed-videosofologyfabricreact-imgprocan-promisecarbon-react-agavecarbon-components-react-fork-brcarbon-ailinkedlaw-react@bebraw/react-over-scrollccr-with-types@carbon/ibmdotcom-patterns-react@carbon/ibmdotcom-vanilla@carbon/reactcloudinary-mobx-responsive-image@chaingun/sear@convector/convector-core-controller@convector/convector-core-model@convector/convector-core-storage@boomerang-io/gatsby-theme-boomerang@burst/js-utils@apex-pub/convector-core-model@apex-pub/convector-core-storage@apex-org/convector-core-storage@apex-pub/convector-core-controller@apex-org/convector-core-controller@apex-org/convector-core-model@april9/stack9-ui@april9/stack9-react@department-of-veterans-affairs/jean-pants@devniel/carbon-components-reactqry-businessreact-canvas-stats@amazingandyyy/next-decknosmokesunduksubmesh-treadmillfabrictestsfabricbuildfabric_newnewthig@justeat/f-logger@grafite/helpers@hauxir/react-twitch-embed-video@evkj/x-site-ui-server@evkj/x-site-core@hieuquang2212/form@ibmdotcom/react@ibmdotcom/services@ibmdotcom/utilities@idn/identity@fang-w-shen/storybook@jimpick/ipfs-provider@kennylam/ibmdotcom-react@kennylam/ibmdotcom-services@plasmicapp/host@pulkit21/aidummy@pubcore/redux-browser-history@rocketsoftware/carbon-components-react@justeat/f-services@mosanic/host@mrpt/mrpt-web@notabug/gun-searguld-ledger@mskcc/carbon-react@loopmode/events@sugar-ai/abcd@sugar-ai/copilot-one-js@wfp/react@wfp/uinestjs-testnestjs-clientnestjs-core@worldsibu/convector-core-controller@worldsibu/convector-core-model@worldsibu/convector-core-storagenb-vue-utils@thetrg/tamedmath3d-component@thecore/fullpage-react
1.0.1

9 years ago

1.0.0

9 years ago