node-self
v1.0.2
Published
self property in Node.js
Downloads
15,378
Readme
node-self
🤙 self property in Node.js
Table of contents
What is this?
You can use self
property in Node.js via this module.
// In Browser (Window context)
console.log(self); // Window { ... }
// In Browser (Dedicate worker context)
console.log(self); // DedicatedWorkerGlobalScope { ... }
// But, in Node.js
console.log(self); // ReferenceError: self is not defined
Why?:
self
property is not implemented in Node.js.
Features
You can use self
property in Node.js.
- Super lightweight
- Pure Javascript
- Zero dependencies
Compatibility
Both Browser and Node.js.
How to use?
Just use self
. It's returns appropriate Global Object
(Context Dependent)
Import index.js
// CommonJS
require('node-self');
// ES6+
import 'node-self';
or paste this code on the top
void !function () {
typeof self == 'undefined'
&& typeof global == 'object'
&& (global.self = global);
}();
There are can be self
(Global Object)
- Browser
- Window
- WorkerGlobalScope
- DedicatedWorkerGlobalScope
- SharedWorkerGlobalScope
- ServiceWorkerGlobalScope
- Node.js
- global
self;
// Browser
self === window; // true
// Node.js
self === global; // true
How it works?
This project using typeof
operator trickly.
typeof
operator always return a string.
Even with undeclared identifiers, it will return 'undefined'
instead of throwing an error.
undeclared; // ReferenceError: undeclared is not defined
typeof undeclared; // 'undefined'
typeof self == 'undefined'
: Check existingself
identifier (should be undefined)typeof global == 'object'
: Check current context is Node.jsglobal.self = global
: Defineself
and assign reference of global object