1.0.1 • Published 10 years ago

window-or-global v1.0.1

Weekly downloads
120,538
License
MIT
Repository
github
Last release
10 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@everymundo/em-cmp-lib-pricescarbon-addons-boomerang-react@ceed/components-react@smallstack/data@infinitebrahmanuniverse/nolb-windmaycur-business@everything-registry/sub-chunk-3148with-globalxesto-wavexhipsubmesh-treadmilltestfabricthigvue-di-kit@boomerang-io/gatsby-theme-boomerangipfs-redux-bundleibm-dotcom-library-reactguld-configguld-config-cliguld-fsguld-keysguld-ledgerguld-ledger-grantguld-userguld-user-cliguld-git-confighellostevenmath3d-component@wanmi/x-site-core@wanmi/x-site-ui-server@wfp/react@wfp/ui@worldsibu/convector-core-controller@worldsibu/convector-core-model@worldsibu/convector-core-storage@xlera/convector-core-controller@xlera/convector-core-model@xlera/xplor-core-controller@xlera/xplor-core-model@xlera/xplor-core-storage@xlera/convector-core-storage@un/react@thetrg/tamed@unitednations/react@telnyx/video@telnyx/video-react-native@thecore/fullpage-react@zingle/ui-componentsGitHub-Network-Graphaxios-react@grafite/helpers@edwin-coder-arquitech/carbon-react@edwin-coder-arquitech/react@convector/convector-core-controller@convector/convector-core-model@convector/convector-core-storage@hauxir/react-twitch-embed-video@amazingandyyy/next-deck@mosanic/hostmerchant-dashboardsundukstewie-editor@bebraw/react-over-scroll@burst/js-utils@carbon/ibmdotcom-web-components@carbon/ibmdotcom-utilities@carbon/react@carbon/ibmdotcom-vanilla@carbon/ibmdotcom-services@carbon/ibmdotcom-react@carbon/ibmdotcom-patterns-react@chaingun/searyodata-actions@loopmode/events@mskcc/carbon-react@mrpt/mrpt-web@pulkit21/aidummy@pubcore/redux-browser-history@progressiveui/react@plasmicapp/hostreact-mailto.jsreact-canvas-statsreact-imgproreact-haptic-buttonserverrequests-webclientnb-vue-utilsnestjs-coreng-carbon-components-reactnestjs-testnestjs-clientnosmokeplasmic-supabase-shamsredux-hydration-exampleqry-businessreact-twitch-embed-videosofologyfabricgithub-profile-card-componentcan-promisecarbon-react-agave
1.0.1

10 years ago

1.0.0

10 years ago