@flex-development/pathe v4.0.2
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:pathmodule varies based on the operating system on which a Node.js application is running. Specifically, when running on a Windows operating system, thenode:pathmodule 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, usepath.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/patheIn 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:
addExtbasenamechangeExtcwddelimiterdirnamedotextToValueextnameextnamesfileURLToPathformatExtformatisAbsoluteisDeviceRootisSepisURLjoinmatchesGlobnormalizeparsepathToFileURLposixrelativeremoveExtresolveWithresolverootseptoNamespacedPathtoPathtoPosixwin32
The default export is pathe.
Documentation website coming soon.
Types
This package is fully typed with TypeScript.
CwdDelimiterDeviceRootDotDriveLetterEmptyStringExtFormatInputPathObjectParsedPathPathePlatformOptionsPlatformPathPosixDelimiterPosixPlatformPathPosixSepSepWindowsDelimiterWindowsPlatformPathWindowsSep
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.