@flex-development/pathe
v4.0.1
Published
Universal drop-in replacement for node:path
Downloads
622
Maintainers
Readme
pathe
Universal drop-in replacement for node:path
Contents
What is this?
This package is a universal drop-in replacement for Node.js' path
module.
It enforces consistency between POSIX and Windows operating systems and also provides additional utilities for working with file URLs, paths, and extensions.
When should I use this?
For historical reasons, Windows followed MS-DOS and used backslashes (\
) to separate path
components, as opposed to the forwardslashes (/
) used by POSIX operating systems. Even though Windows operating
systems now support both separators, there are still discrepancies between operating systems when using Node.js' path
module:
The default operation of the
node:path
module varies based on the operating system on which a Node.js application is running. Specifically, when running on a Windows operating system, thenode:path
module will assume that Windows-style paths are being used. – Windows vs. POSIX
This package enforces consistency between operating systems by ensuring paths are POSIX-compliant. With support for both
drive and UNC paths as well, platform-specific modules like
node:path/posix
and node:path/win32
are no longer needed.
~~To achieve consistent results when working with Windows file paths on any operating system, use
path.win32
.~~ ~~To achieve consistent results when working with POSIX file paths on any operating system, usepath.posix
.~~
To achieve consistent results when working with Windows file paths on any operating system, use pathe
. To achieve
consistent results when working with POSIX file paths on any operating system, use pathe
. :blush:
Install
This package is ESM only.
In Node.js (version 18+) with yarn:
yarn add @flex-development/pathe
In Deno with esm.sh
:
import { parse } from 'https://esm.sh/@flex-development/pathe'
In browsers with esm.sh
:
<script type="module">
import { parse } from 'https://esm.sh/@flex-development/pathe'
</script>
Use
import {
addExt,
basename,
changeExt,
cwd,
delimiter,
dirname,
dot,
extToValue,
extname,
fileURLToPath,
format,
formatExt,
isAbsolute,
isDeviceRoot,
isSep,
isURL,
join,
matchesGlob,
normalize,
parse,
pathToFileURL,
relative,
removeExt,
resolve,
resolveWith,
root,
sep,
toNamespacedPath,
toPath,
toPosix
} from '@flex-development/pathe'
API
This package exports the following identifiers:
addExt
basename
changeExt
cwd
delimiter
dirname
dot
extToValue
extname
extnames
fileURLToPath
formatExt
format
isAbsolute
isDeviceRoot
isSep
isURL
join
matchesGlob
normalize
parse
pathToFileURL
posix
relative
removeExt
resolveWith
resolve
root
sep
toNamespacedPath
toPath
toPosix
win32
The default export is pathe
.
Documentation website coming soon.
Types
This package is fully typed with TypeScript.
Cwd
Delimiter
DeviceRoot
Dot
DriveLetter
EmptyString
Ext
FormatInputPathObject
ParsedPath
Pathe
PlatformOptions
PlatformPath
PosixDelimiter
PosixPlatformPath
PosixSep
Sep
WindowsDelimiter
WindowsPlatformPath
WindowsSep
Contribute
See CONTRIBUTING.md
.
This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.