@brlt/globals
v0.1.0
Published
Polyfills globals like `__dirname` with modern ESM equivalents like `import.meta.dirname`
Downloads
5
Readme
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:
| Name | Value |
| ----------------- | ------------------------------------------------------------- |
| __dirname
| import.meta.dirname
, or path.dirname(import.meta.url)
[^1] |
| __filename
| import.meta.filename
, or import.meta.url
[^1] |
| require
| createRequire(import.meta.url)
|
| global
| globalThis
|
| process
| import("node:process").default
|
| console
| import("node:console").default
|
| Buffer
| import("node:buffer").Buffer
|
| URL
| import("node:url").URL
|
| URLSearchParams
| import("node:url").URLSearchParams
|
| setImmediate
| import("node:timers").setImmediate
|
| setInterval
| import("node:timers").setInterval
|
| setTimeout
| import("node:timers").setTimeout
|
| clearImmediate
| import("node:timers").clearImmediate
|
| clearInterval
| import("node:timers").clearInterval
|
| clearTimeout
| import("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.