@darkobits/fd-name
TypeScript icon, indicating that this package has built-in type declarations

0.1.7 • Public • Published

Backwards-compatible replacement for __filename / __dirname in ESM environments.

Install

npm install @darkobits/fd-name

This package is a hybrid module that exports ESM and CJS. If you are authoring ESM, CJS, or more likely authoring ESM-like syntax that is being transpiled to CJS, you can use this package today and transition to pure ESM in the future with no breaking changes.

Use

/foo/bar/unicorns.js

import { filename, dirname } from '@darkobits/fd-name';

filename() //=> '/foo/bar/unicorns.js'
dirname() //=> '/foo/bar'

This is a bit less awkward than:

import path from 'path';
import { fileURLToPath } from 'url';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

Which has to be repeated in every file you want to use these values in, as import.meta is specific to the local module.

⚠️ Note: This package removes the file:// protocol prefix from paths in ESM as most tooling does not play nicely with it, including the built-in path module.


Package Sidebar

Install

npm i @darkobits/fd-name

Weekly Downloads

23

Version

0.1.7

License

WTFPL

Unpacked Size

10.4 kB

Total Files

11

Last publish

Collaborators

  • darkobits