# global-object

> just the global object

Latest version **1.0.0** (published 2015-04-17) · WTFPL license · 0 weekly downloads

## Install

```sh
npm install global-object
pnpm add global-object
yarn add global-object
bun add global-object
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2015-04-17 |
| First published | 2015-04-17 |
| Weekly downloads | 0 |
| License | WTFPL |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 5 |
| Author | Andrea Giammarchi |
| Maintainers | webreflection |
| Keywords | global |

## Links

- npm: https://www.npmjs.com/package/global-object
- Repository: https://github.com/WebReflection/global-object
- Issues: https://github.com/WebReflection/global-object/issues
- npm.io page: https://npm.io/package/global-object

## Recent versions

- 1.0.0 (latest) — 2015-04-17

## README

# 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
```html
<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:
```html
var global=global||this;
```
Forget about `self` or `typeof window` checks, we've got `global`!


### As anything else
ES6, node itself, whatever ... 
```js
// ES6
import global from 'global-object';

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

// browser
script.src = 'global-object.js';
```
Just use [global-object](global-object.js)


### 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:
```html
<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!

---
_Source: https://npm.io/package/global-object · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
