Notoriously Psychedelic Modules

    relative-url-interface
    TypeScript icon, indicating that this package has built-in type declarations

    0.2.0 • Public • Published

    RelativeURL

    RelativeURL creates fully compatible URL interfaces, without requiring a base URL. 1 2 3

    npm install relative-url-interface
    const kitten_image = new RelativeURL('../assets/kitten.jpg')
    
    String(kitten_image) // "../assets/kitten.jpg"

    The RelativeURL interface extends URL and can be used as a drop-in replacement. It is powered by spec-url and is ideal for server-side code, pre-compiled code, or any situation where an absolute URL may not be known.

    const puppy_page = new RelativeURL('file://path/to/site/src/pages/puppy.astro')
    
    const absolute_kitten = new RelativeURL(kitten_image, puppy_page)
    
    fs.readFile(absolute_kitten, 'utf8') // reads "file://path/to/site/src/assets/kitten.jpg"

    Features

    hash

    The hash property is a string representing the fragment identifier of the URL. When present, it is preceeded by a number sign (#).

    host

    The host property is a string representing the domain and port of the URL. When present, the port is preceeded by a colon (:).

    hostname

    The hostname property is a string representing the domain of the URL.

    href

    The href property is a string representing the whole URL, including any search parameters and fragment identifiers.

    origin

    The origin property is a string representing the scheme, domain, and port of the URL. When present, the port is preceeded by a colon (:).

    password

    The password property is a string representing the password of the URL.

    pathname

    The pathname property is a string representing the path of the URL, which does not include the origin, search parameters, or fragment identifiers.

    port

    The port property is a string representing the port of the URL.

    protocol

    The protocol property is a string representing the scheme of the URL, including the colon (:) that proceeds it.

    search

    The search property is a string representing the search parameters of the URL. When present, it is preceeded by a question mark (?).

    searchParams

    The searchParams property is a URLSearchParams object representing the parsed search parameters of the URL.

    username

    The username property is a string representing the username of the URL.

    segments

    The segments property is an array of strings representing the path segments of the URL.

    Methods

    toString

    The toString method returns the whole URL as a string. It is a synonym for the href getter property.

    new RelativeURL('../assets/kitten.jpg').toString() // "../assets/kitten.jpg"

    toJSON

    The toJSON method returns the whole URL as a string. It is a synonym for the href getter property.

    new RelativeURL('../assets/kitten.jpg').toJSON() // "../assets/kitten.jpg"

    to

    The to method returns a new URL resolved by the current URL.

    const kitten = new RelativeURL('../assets/kitten.jpg')
    
    String(kitten.to('puppy.jpg')) // "../assets/puppy.jpg"

    License

    Code original to this project is licensed under the CC0-1.0 License.

    Code from spec-url is licensed under the The MIT License (MIT), Copyright Alwin Blok.

    Install

    npm i relative-url-interface

    DownloadsWeekly Downloads

    1

    Version

    0.2.0

    License

    (CC0-1.0 AND MIT)

    Unpacked Size

    122 kB

    Total Files

    5

    Last publish

    Collaborators

    • jonathantneal