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.

      foo://example.com:8042/over/there?name=ferret#nose
      \_/   \______________/\_________/ \_________/ \__/
       |           |            |            |        |
    scheme     authority       path        query   fragment
       |   _____________________|__
      / \ /                        \
      urn:example:animal:ferret:nose

Implements

  • UriComponents

Constructors

  • Internal

    Parameters

    • scheme: string
    • Optionalauthority: string
    • Optionalpath: string
    • Optionalquery: string
    • Optionalfragment: string
    • Optional_strict: boolean

    Returns URI

  • Internal

    Parameters

    • components: UriComponents

    Returns URI

Properties

authority: string

authority is the 'www.example.com' part of 'http://www.example.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.example.com/some/path?query#fragment'.

path: string

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

query: string

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

scheme: string

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

Accessors

  • get 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).

    Returns string

Methods

  • Returns UriComponents

  • Creates a string representation 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.

    Parameters

    • OptionalskipEncoding: boolean

      Do not encode the result, default is false

    Returns string

  • Parameters

    • change: {
          authority?: null | string;
          fragment?: null | string;
          path?: null | string;
          query?: null | string;
          scheme?: string;
      }
      • Optionalauthority?: null | string
      • Optionalfragment?: null | string
      • Optionalpath?: null | string
      • Optionalquery?: null | string
      • Optionalscheme?: string

    Returns 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';

    Parameters

    • path: string

      A file system path (see URI#fsPath)

    Returns URI

  • Parameters

    • components: {
          authority?: string;
          fragment?: string;
          path?: string;
          query?: string;
          scheme: string;
      }
      • Optionalauthority?: string
      • Optionalfragment?: string
      • Optionalpath?: string
      • Optionalquery?: string
      • scheme: string

    Returns URI

  • Parameters

    • thing: any

    Returns thing is URI

  • Creates a new URI from a string, e.g. http://www.example.com/some/path, file:///usr/home, or scheme:with/path.

    Parameters

    • value: string

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

    • Optional_strict: boolean

    Returns URI

  • Parameters

    • data: URI | UriComponents

    Returns URI

  • Parameters

    • data: undefined | URI | UriComponents

    Returns undefined | URI

  • Parameters

    • data: null | URI | UriComponents

    Returns null | URI

  • Parameters

    • data:
          | undefined
          | null
          | URI
          | UriComponents

    Returns undefined | null | URI