Convert Path

    Convert between POSIX and Windows paths.

    Usage

    var convertPath = require( '@stdlib/utils/convert-path' );
    

    convertPath( from, to )

    Converts between POSIX and Windows paths.

    var p = convertPath( 'C:\\foo\\bar', 'posix' );
    // returns '/c/foo/bar'
    

    The following output path conventions are supported:

    • win32: Windows path convention; e.g., `C:\foo\bar'.
    • mixed: mixed path convention (Windows volume convention and POSIX path separator); e.g., C:/foo/bar.
    • posix: POSIX path convention; e.g., /c/foo/bar.

    Notes

    • A Windows extended-length path cannot be converted to either a mixed or posix path convention, as forward slashes cannot be used as path separators.
    • If a POSIX path begins with /[A-Za-z]/ (e.g., /c/), the path is assumed to begin with a volume name.
    • The function makes no attempt to verify that a provided path is valid.

    Examples

    var convertPath = require( '@stdlib/utils/convert-path' );
    
    var p1;
    var p2;
    
    p1 = '/c/foo/bar/beep.c';
    p2 = convertPath( p1, 'win32' );
    // returns 'c:\\foo\\bar\\beep.c'
    
    p1 = '/c/foo/bar/beep.c';
    p2 = convertPath( p1, 'mixed' );
    // returns 'c:/foo/bar/beep.c'
    
    p1 = '/c/foo/bar/beep.c';
    p2 = convertPath( p1, 'posix' );
    // returns '/c/foo/bar/beep.c'
    
    p1 = 'C:\\\\foo\\bar\\beep.c';
    p2 = convertPath( p1, 'win32' );
    // returns 'C:\\\\foo\\bar\\beep.c'
    
    p1 = 'C:\\\\foo\\bar\\beep.c';
    p2 = convertPath( p1, 'mixed' );
    // returns 'C:/foo/bar/beep.c'
    
    p1 = 'C:\\\\foo\\bar\\beep.c';
    p2 = convertPath( p1, 'posix' );
    // returns '/c/foo/bar/beep.c'
    

    CLI

    Usage

    Usage: convert-path [options] [<path>] --out=<output>
    
    Options:
    
      -h,    --help                Print this message.
      -V,    --version             Print the package version.
      -o,    --out output          Output path convention.
    

    Examples

    $ convert-path /c/foo/bar --out=mixed
    c:/foo/bar
    

    To use as a standard stream,

    $ echo -n '/c/foo/bar' | convert-path --out=win32
    c:\foo\bar