Mpath
Bun

Node.js module

path

The 'node:path' module provides utilities for working with file and directory paths, including join, resolve, basename, and dirname.

It normalizes path separators, handles relative paths, and provides platform-specific adjustments for POSIX and Windows paths.

Works in Bun

Fully implemented. 100% of Node.js's test suite passes.

Type definitions

    • interface FormatInputPathObject

      • base?: string

        The file name including extension (if any) such as 'index.html'

      • dir?: string

        The full directory path such as '/home/user/dir' or 'c:\path\dir'

      • ext?: string

        The file extension (if any) such as '.html'

      • name?: string

        The file name without extension (if any) such as 'index'

      • root?: string

        The root of the path such as '/' or 'c:'

    • interface ParsedPath

      A parsed path object generated by path.parse() or consumed by path.format().

      • base: string

        The file name including extension (if any) such as 'index.html'

      • dir: string

        The full directory path such as '/home/user/dir' or 'c:\path\dir'

      • ext: string

        The file extension (if any) such as '.html'

      • name: string

        The file name without extension (if any) such as 'index'

      • root: string

        The root of the path such as '/' or 'c:'

    • interface PlatformPath

      • readonly delimiter: ';' | ':'

        The platform-specific file delimiter. ';' or ':'.

      • readonly posix: PlatformPath

        Posix specific pathing. Same as parent object on posix.

      • readonly sep: '\' | '/'

        The platform-specific file separator. '\' or '/'.

      • readonly win32: PlatformPath

        Windows specific pathing. Same as parent object on windows

      • path: string,
        suffix?: string
        ): string;

        Return the last portion of a path. Similar to the Unix basename command. Often used to extract the file name from a fully qualified path.

        @param path

        the path to evaluate.

        @param suffix

        optionally, an extension to remove from the result.

      • path: string
        ): string;

        Return the directory name of a path. Similar to the Unix dirname command.

        @param path

        the path to evaluate.

      • path: string
        ): string;

        Return the extension of the path, from the last '.' to end of string in the last portion of the path. If there is no '.' in the last portion of the path or the first character of it is '.', then it returns an empty string.

        @param path

        the path to evaluate.

      • ): string;

        Returns a path string from an object - the opposite of parse().

        @param pathObject

        path to evaluate.

      • path: string
        ): boolean;

        Determines whether {path} is an absolute path. An absolute path will always resolve to the same location, regardless of the working directory.

        If the given {path} is a zero-length string, false will be returned.

        @param path

        path to test.

      • ...paths: string[]
        ): string;

        Join all arguments together and normalize the resulting path.

        @param paths

        paths to join.

      • path: string,
        pattern: string
        ): boolean;

        The path.matchesGlob() method determines if path matches the pattern.

        @param path

        The path to glob-match against.

        @param pattern

        The glob to check the path against.

        @returns

        Whether or not the path matched the pattern.

      • path: string
        ): string;

        Normalize a string path, reducing '..' and '.' parts. When multiple slashes are found, they're replaced by a single one; when the path contains a trailing slash, it is preserved. On Windows backslashes are used.

        @param path

        string path to normalize.

      • path: string

        Returns an object from a path string - the opposite of format().

        @param path

        path to evaluate.

      • from: string,
        to: string
        ): string;

        Solve the relative path from {from} to {to} based on the current working directory. At times we have two absolute paths, and we need to derive the relative path from one to the other. This is actually the reverse transform of path.resolve.

      • ...paths: string[]
        ): string;

        The right-most parameter is considered {to}. Other parameters are considered an array of {from}.

        Starting from leftmost {from} parameter, resolves {to} to an absolute path.

        If {to} isn't already absolute, {from} arguments are prepended in right to left order, until an absolute path is found. If after using all {from} paths still no absolute path is found, the current working directory is used as well. The resulting path is normalized, and trailing slashes are removed unless the path gets resolved to the root directory.

        @param paths

        A sequence of paths or path segments.

      • path: string
        ): string;

        On Windows systems only, returns an equivalent namespace-prefixed path for the given path. If path is not a string, path will be returned without modifications. This method is meaningful only on Windows system. On POSIX systems, the method is non-operational and always returns path without modifications.