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@everymundo/em-cmp-lib-pricescarbon-addons-boomerang-react@ceed/components-react@smallstack/data@infinitebrahmanuniverse/nolb-windmaycur-business@everything-registry/sub-chunk-3148with-globalxesto-wavexhipserverrequests-webclientsubmesh-treadmilltestfabricthigvue-di-kit@mosanic/hostmerchant-dashboardibm-dotcom-library-reactipfs-redux-bundleguld-git-configguld-keysguld-ledgerguld-ledger-grantguld-configguld-config-cliguld-fsguld-userguld-user-clihellostevengithub-profile-card-componentnb-vue-utilsmath3d-componentplasmic-supabase-shamsng-carbon-components-reactreact-canvas-statsnestjs-corenestjs-clientnestjs-testnosmokeqry-businessreact-mailto.jsreact-haptic-buttonreact-imgproredux-hydration-examplereact-twitch-embed-videosundukstewie-editorsofologyfabric@amazingandyyy/next-deck@apex-org/convector-core-model@apex-org/convector-core-storage@apex-org/convector-core-controller@apex-pub/convector-core-controller@apex-pub/convector-core-model@apex-pub/convector-core-storage@april9/stack9-react@april9/stack9-ui@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/sear@department-of-veterans-affairs/jean-pants@devniel/carbon-components-react@convector/convector-core-controller@convector/convector-core-model@convector/convector-core-storageyodata-actions@hauxir/react-twitch-embed-video@ibmdotcom/react@ibmdotcom/services@ibmdotcom/utilities@idn/identity@grafite/helpers@loopmode/events@mskcc/carbon-react@mrpt/mrpt-web@evkj/x-site-core@evkj/x-site-ui-server@fang-w-shen/storybook@justeat/f-logger@justeat/f-services@jimpick/ipfs-provider@hieuquang2212/form@kennylam/ibmdotcom-react@kennylam/ibmdotcom-services@pulkit21/aidummy@pubcore/redux-browser-history@progressiveui/react@notabug/gun-sear@plasmicapp/host@sugar-ai/abcd@sugar-ai/copilot-one-js@sugar-ai/core
1.0.1

9 years ago

1.0.0

9 years ago