path-meta-utils
v1.0.0
Published
Small utility to handle ESM directory paths and output formatting.
Readme
path-meta-utils
A lightweight utility module that provides ESM-compatible equivalents for CommonJS __dirname and __filename variables, along with standardized output formatting for file content.
Parameters Section
getMetaPaths(importMetaUrl)
Required parameter: importMetaUrl (string)
Description: Pass import.meta.url from the calling file to get ESM-compatible directory and file paths.
Returns: An object with two properties:
__filename(string): The absolute file path of the calling module__dirname(string): The absolute directory path of the calling module
Usage Examples
Basic Usage
import { getMetaPaths } from 'path-meta-utils';
const { __filename, __dirname } = getMetaPaths(import.meta.url);
console.log('Current file:', __filename);
console.log('Current directory:', __dirname);Real-world Example
// In file: /projects/my-app/src/utils/config.js
import { getMetaPaths } from 'path-meta-utils';
import { readFileSync } from 'fs';
import { join } from 'path';
const { __dirname } = getMetaPaths(import.meta.url);
// Load a config file relative to current module
const configPath = join(__dirname, 'config.json');
const config = JSON.parse(readFileSync(configPath, 'utf-8'));
console.log('Config loaded from:', configPath);Detailed Information
Why This Utility Exists
In ECMAScript Modules (ESM), the traditional CommonJS __dirname and __filename variables are not available. This utility provides a clean, standardized way to access these paths in ESM environments.
Implementation Details
The module uses Node.js built-in modules:
url.fileURLToPath(): Converts a file URL to a path stringpath.dirname(): Extracts the directory name from a path
Package Configuration
- Module Type: ESM (
"type": "module"in package.json) - Entry Point:
index.js - License: ISC
Installation
npm install path-meta-utilsRequirements
- Node.js 14.8.0 or higher (for
import.meta.urlsupport) - ESM module system
Notes
- This utility is particularly useful when working with file operations, configuration loading, or any scenario where you need to reference files relative to the current module
- The function is pure and has no side effects
- All paths returned are absolute paths
Related Utilities
For output formatting with file pointer annotations (as shown in the context), you would typically implement additional utilities following the same pattern.
