isRelativePath

Test if a value is a relative path.

Usage

var isRelativePath = require( '@stdlib/assert/is-relative-path' );

isRelativePath( value )

Tests if a value is a relative path.

var IS_WINDOWS = require( '@stdlib/assert/is-windows' );

var bool;
if ( IS_WINDOWS ) {
    bool = isRelativePath( 'foo\\bar\\baz' );
    // returns true

    bool = isRelativePath( 'C:\\foo\\..\\bar\\baz' );
    // returns false
} else {
    bool = isRelativePath( './foo/bar/baz' );
    // returns true

    bool = isRelativePath( '/foo/../bar/baz' );
    // returns false
}

isRelativePath.posix( value )

Tests if a value is a POSIX relative path.

var bool = isRelativePath.posix( './foo/bar/baz' );
// returns true

bool = isRelativePath.posix( '/foo/../bar/baz' );
// returns false

isRelativePath.win32( value )

Tests if a value is a Windows relative path.

var bool = isRelativePath.win32( 'foo\\bar\\baz' );
// returns true

bool = isRelativePath.win32( 'C:\\foo\\..\\bar\\baz' );
// returns false

Notes

  • isRelativePath() is platform-specific. On Windows platforms, the function is equal to isRelativePath.win32(). On POSIX platforms, the function is equal to isRelativePath.posix().

Examples

var isRelativePath = require( '@stdlib/assert/is-relative-path' );

var bool = isRelativePath.posix( 'foo/' );
// returns true

bool = isRelativePath.posix( 'foo' );
// returns true

bool = isRelativePath.posix( '.' );
// returns true

bool = isRelativePath.posix( '' );
// returns true

bool = isRelativePath.posix( '/foo/bar/baz' );
// returns false

bool = isRelativePath.posix( '/foo/..' );
// returns false

bool = isRelativePath.win32( 'foo\\bar\\baz' );
// returns true

bool = isRelativePath.win32( 'foo/bar/baz' );
// returns true

bool = isRelativePath.win32( 'foo/..' );
// returns true

bool = isRelativePath.win32( '.' );
// returns true

bool = isRelativePath.win32( '' );
// returns true

bool = isRelativePath.win32( 'C:\\foo\\bar\\baz' );
// returns false

bool = isRelativePath.win32( '//server' );
// returns false

bool = isRelativePath.win32( '\\\\server' );
// returns false

bool = isRelativePath.win32( 'C:/foo/bar/baz' );
// returns false

bool = isRelativePath.win32( '/foo/..' );
// returns false

CLI

Usage

Usage: is-relative-path [options] [<path>]

Options:

  -h,    --help                Print this message.
  -V,    --version             Print the package version.
         --platform name       Platform: 'win32' or 'posix'.
         --split sep           Delimiter for stdin data. Default: '/\\r?\\n/'.

Notes

  • If the split separator is a regular expression, ensure that the split option is either properly escaped or enclosed in quotes.

    # Not escaped...
    $ echo -n $'/foo/bar/baz\n./docs/repl.txt' | is-relative-path --split /\r?\n/
    
    # Escaped...
    $ echo -n $'/foo/bar/baz\n./docs/repl.txt' | is-relative-path --split /\\r?\\n/
    
  • The implementation ignores trailing delimiters.

Examples

$ is-relative-path ./foo/bar/baz --platform=posix
true

To use as a standard stream,

$ echo -n './docs/repl.txt' | is-relative-path
true

By default, when used as a standard stream, the implementation assumes newline-delimited data. To specify an alternative delimiter, set the split option.

$ echo -n '/foo/bar/baz\t./docs/repl.txt' | is-relative-path --platform=posix --split '\t'
false
true
Did you find this page helpful?