@brlt/globals v0.1.0
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:
moduleexports
^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: stringMIT © Nicholas Berlette. All rights reserved.
2 years ago