Socket
Socket
Sign inDemoInstall

global-object

Package Overview
Dependencies
0
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    global-object

just the global object


Version published
Maintainers
1
Install size
2.87 kB
Created

Readme

Source

global-object

There are at least 3 different ways to reference the global object mentioned in ES6/2015

  • window historically on HTML pages
  • self in Workers, and historically on HTML pages too
  • global in basically all server side implementation of JavaScript

If we search in Github, the summed amount of typeof window or typeof global checks, mostly to understand which one is available, is about 23 millions of times.

This is madness, and since there's no reason at all to prefer anything different from global for an object defined indeed as the global object in the global scope, I've decided to create this page in order to put an end to all this.


Forget about window and self in Workers, normalize your work-flow once for all and with or without browserify in place!

As first script in your page

This is the most straight forward way to have it defined everywhere as such

<script>var global=global||this;</script>

No need to disturb the network, no need to ever update the script even if a browser will eventually expose global reference. It goes there to stay.

As first script in your Worker

Same goes with Web Workers and others, the code is exactly the same, without the node:

var global=global||this;

Forget about self or typeof window checks, we've got global!

As anything else

ES6, node itself, whatever ...

// ES6
import global from 'global-object';

// npm require
var global = require('global-object');

// browser
script.src = 'global-object.js';

Just use global-object

Strict compatible!

Yes, the this reference in the global scope is always the global object. In HTML pages like in workers, it will work everywhere even after "use strict" directive!

Content Security Policy Compatible

Using this meta will solve all problems:

<meta http-equiv="Content-Security-Policy" content="script-src 'unsafe-inline' 'self' 'sha1-WWQNP0ydesPxK1yAm94nH5bQoIo=' 'sha256-5rMu52Es8MMWNrCqRkunbIAeVDz8iJ63wD0rPm57xi4='">

Great, no network request required, and global available under CSP too!

License

Nope, nothing ... do what you want, literally!

Keywords

FAQs

Last updated on 17 Apr 2015

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc