0.1.0 • Published 1 year ago

@brlt/globals v0.1.0

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

globals

Polyfills globals like __dirname with modern ESM equivalents like import.meta.dirname, and augments the global types to include these new globals across the entire workspace it is used in.

Features

The following globals and values are contributed by this package:

NameValue
__dirnameimport.meta.dirname, or path.dirname(import.meta.url)^1
__filenameimport.meta.filename, or import.meta.url^1
requirecreateRequire(import.meta.url)
globalglobalThis
processimport("node:process").default
consoleimport("node:console").default
Bufferimport("node:buffer").Buffer
URLimport("node:url").URL
URLSearchParamsimport("node:url").URLSearchParams
setImmediateimport("node:timers").setImmediate
setIntervalimport("node:timers").setInterval
setTimeoutimport("node:timers").setTimeout
clearImmediateimport("node:timers").clearImmediate
clearIntervalimport("node:timers").clearInterval
clearTimeoutimport("node:timers").clearTimeout

Globals not included

This package does not include the following globals:

  • module
  • exports

^1: Fallback if the preferred value is unavailable in the current environment.

Motivation

This package is intended to be used in Deno and Node.js projects where certain globals (made popular in the CJS era) are not available. This package targets only ESM modules, since it serves no purpose in the CommonJS ecosystem.

For added convenience and compatibility, it also creates a global require function using the built-in createRequire function from node:module, with a base URL of import.meta.url.

Getting Started

This is a side-effects-based package that provides no exports. Simply import it and the changes will take effect, with the necessary type definitions being augmented into the global types of the workspace it is used in.

Install

npm i @brlt/globals

# or bun add @brlt/globals, pnpm add @brlt/globals, etc.

Usage

import "@brlt/globals";

console.log(__dirname);
//          ^? var __dirname: string

MIT © Nicholas Berlette. All rights reserved.