Uniform Resource Identifier (Uri) http://tools.ietf.org/html/rfc3986. This class is a simple parser which creates the basic component parts (http://tools.ietf.org/html/rfc3986#section-3) with minimal validation and encoding.

  \_/   \______________/\_________/ \_________/ \__/
   |           |            |            |        |
scheme     authority       path        query   fragment
   |   _____________________|__
  / \ /                        \


  • Uri





authority: string

authority is the 'www.msft.com' part of 'http://www.msft.com/some/path?query#fragment'. The part between the first double slashes and the next slash.


fragment: string

fragment is the 'fragment' part of 'http://www.msft.com/some/path?query#fragment'.


fsPath: string

Returns a string representing the corresponding file system path of this Uri. Will handle UNC paths, normalizes windows drive letters to lower-case, and uses the platform specific path separator.

  • Will not validate the path for invalid characters and semantics.
  • Will not look at the scheme of this Uri.
  • The result shall not be used for display purposes but for accessing a file on disk.

The difference to Uri#path is the use of the platform specific separator and the handling of UNC paths. See the below sample of a file-uri with an authority (UNC path).

const u = Uri.parse('file://server/c$/folder/file.txt')
u.authority === 'server'
u.path === '/shares/c$/file.txt'
u.fsPath === '\\server\c$\folder\file.txt'

Using Uri#path to read a file (using fs-apis) would not be enough because parts of the path, namely the server name, would be missing. Therefore Uri#fsPath exists - it's sugar to ease working with URIs that represent files on disk (file scheme).


path: string

path is the '/some/path' part of 'http://www.msft.com/some/path?query#fragment'.


query: string

query is the 'query' part of 'http://www.msft.com/some/path?query#fragment'.


scheme: string

scheme is the 'http' part of 'http://www.msft.com/some/path?query#fragment'. The part before the first colon.



  • toJSON(): object


  • toString(skipEncoding?: boolean): string
  • Creates a string presentation for this Uri. It's guaranteed that calling Uri.parse with the result of this function creates an Uri which is equal to this Uri.

    • The result shall not be used for display purposes but for externalization or transport.
    • The result will be encoded using the percentage encoding and encoding happens mostly ignore the scheme-specific encoding rules.


    • Optional skipEncoding: boolean

      Do not encode the result, default is false

    Returns string


  • with(change: object): Uri
  • Parameters

    • change: object
      • Optional authority?: string | null
      • Optional fragment?: string | null
      • Optional path?: string | null
      • Optional query?: string | null
      • Optional scheme?: string

    Returns Uri

Static file

  • file(path: string): Uri
  • Creates a new Uri from a file system path, e.g. c:\my\files, /usr/home, or \\server\share\some\path.

    The difference between Uri#parse and Uri#file is that the latter treats the argument as path, not as stringified-uri. E.g. Uri.file(path) is not the same as Uri.parse('file://' + path) because the path might contain characters that are interpreted (# and ?). See the following sample:

    const good = Uri.file('/coding/c#/project1');
    good.scheme === 'file';
    good.path === '/coding/c#/project1';
    good.fragment === '';
    const bad = Uri.parse('file://' + '/coding/c#/project1');
    bad.scheme === 'file';
    bad.path === '/coding/c'; // path is now broken
    bad.fragment === '/project1';


    • path: string

      A file system path (see Uri#fsPath)

    Returns Uri

Static from

  • from(components: object): Uri
  • Parameters

    • components: object
      • Optional authority?: string
      • Optional fragment?: string
      • Optional path?: string
      • Optional query?: string
      • scheme: string

    Returns Uri

Static isUri

  • isUri(thing: any): boolean

Static parse

  • parse(value: string): Uri
  • Creates a new Uri from a string, e.g. http://www.msft.com/some/path, file:///usr/home, or scheme:with/path.


    • value: string

      A string which represents an Uri (see Uri#toString).

    Returns Uri

Static revive