or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

index.md
tile.json

tessl/npm-global

Cross-platform utilities for accessing global variables in JavaScript environments

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/global@4.4.x

To install, run

npx @tessl/cli install tessl/npm-global@4.4.0

index.mddocs/

Global

Global is a JavaScript utility library that provides cross-platform access to global variables in different JavaScript environments. It offers consistent interfaces for accessing window, document, console, and process objects across browser, Node.js, Web Workers, and other JavaScript runtime environments.

Package Information

  • Package Name: global
  • Package Type: npm
  • Language: JavaScript
  • Installation: npm install global

Core Imports

// Main module - loads window.js (package.json main entry)
const global = require("global");           // Same as require("global/window")

// Explicit module paths for clarity
const window = require("global/window");     // Explicit window module
const document = require("global/document"); // Document with fallbacks
const console = require("global/console");   // Global console object
const process = require("global/process");   // Node.js process object

Basic Usage

// Access global window/global object across environments
const global = require("global");
console.log(typeof global); // "object"

// Access document object (with fallback)
const document = require("global/document");
document.createElement("div"); // Works in browsers and Node.js

// Access console object
const console = require("global/console");
console.log("Hello, world!");

// Access process object (Node.js compatibility)
const process = require("global/process");
console.log(process.version);

Architecture

Global provides four separate modules, each handling a specific global object:

  • Window Module: Returns window (browser), global (Node.js), self (Web Workers), or empty object
  • Document Module: Returns native document (browser) or min-document fallback (Node.js)
  • Console Module: Returns the global console object directly
  • Process Module: Returns the Node.js process object via the process package

All modules provide consistent APIs across different JavaScript environments through intelligent environment detection and fallbacks.

Capabilities

Window Object Access

Cross-platform access to the global window/global object with environment-specific fallbacks.

/**
 * Main module export - returns the appropriate global object for the current environment.
 * Equivalent to require("global/window"). Uses environment detection to determine
 * which global object to return: window (browser), global (Node.js), self (Web Workers).
 */
const global = require("global");
// Returns: Window | typeof globalThis | WorkerGlobalScope | {}

// Alternative explicit import
const window = require("global/window");
// Returns: Window | typeof globalThis | WorkerGlobalScope | {}

Environment Detection Logic:

  • Browser: Returns window object (when typeof window !== "undefined")
  • Node.js: Returns global object (when typeof global !== "undefined")
  • Web Workers: Returns self object (when typeof self !== "undefined")
  • Other/Fallback: Returns empty object {} (when none of the above are available)

Usage Examples:

// Main module import (loads window.js via package.json main field)
const global = require("global");

// Environment detection example
if (typeof global.document !== 'undefined') {
  console.log("Running in browser");
} else if (typeof global.process !== 'undefined') {
  console.log("Running in Node.js");
}

// Set and access global variables safely across environments
global.myGlobalVar = "Hello World";
console.log(global.myGlobalVar);

// Alternative: use explicit window module for clarity
const windowObj = require("global/window");
windowObj.myGlobalVar = "Hello from explicit import";

Document Object Access

Cross-platform document object with intelligent fallback for non-browser environments.

/**
 * Returns native document object in browsers or min-document fallback in Node.js.
 * Uses global caching (__GLOBAL_DOCUMENT_CACHE@4) to ensure singleton behavior
 * for min-document instances across requires.
 */
const document = require("global/document");
// Returns: Document | MinDocument

Environment Behavior:

  • Browser: Returns native document object
  • Node.js: Returns min-document instance (cached globally)
  • Other: Returns min-document instance

Usage Examples:

const document = require("global/document");

// Create DOM elements (works everywhere)
const div = document.createElement("div");
div.innerHTML = "Hello World";

// Access document properties
console.log(document.documentElement);

Console Object Access

Direct access to the global console object.

/**
 * Returns the global console object
 */
const console = require("global/console");
// Returns: Console

Usage Examples:

const console = require("global/console");

console.log("Standard logging");
console.error("Error logging");
console.warn("Warning logging");

Process Object Access

Access to Node.js process object across environments.

/**
 * Returns the Node.js process object via the process package
 */
const process = require("global/process");
// Returns: NodeJS.Process

Usage Examples:

const process = require("global/process");

// Access process information
console.log(process.version);
console.log(process.platform);

// Handle process events
process.on('exit', (code) => {
  console.log(`Process exiting with code: ${code}`);
});

Types

// Window module returns one of these types based on environment
type WindowObject = Window | typeof globalThis | WorkerGlobalScope | {};

// Document module returns one of these types
type DocumentObject = Document | MinDocumentImplementation;

// Console module returns the standard console interface
interface Console {
  log(...args: any[]): void;
  error(...args: any[]): void;
  warn(...args: any[]): void;
  info(...args: any[]): void;
  // ... other console methods
}

// Process module returns Node.js process object
interface NodeJSProcess {
  version: string;
  platform: string;
  env: { [key: string]: string | undefined };
  exit(code?: number): never;
  on(event: string, listener: Function): this;
  // ... other process properties and methods
}

Environment Compatibility

ModuleBrowserNode.jsWeb WorkersOther
global/windowwindowglobalself{}
global/documentdocumentmin-documentmin-documentmin-document
global/consoleconsoleconsoleconsoleconsole
global/process⚠️ polyfillprocess⚠️ polyfill⚠️ polyfill

Dependencies

  • min-document (v2.19.0): Provides document-like interface for non-browser environments
  • process (v0.11.10): Provides Node.js process object for all environments