﻿interface IUrl
{
    Append(urlPart: string): IUrl;
    AppendArgs(args: Object): IUrl;
    Url: string;
}

class Url
{
    // Attributes
    private _url: string = "";

    // Constructor
    constructor()
    {
        throw new Error("Error: Url is a static class");
    }

    // Properties

    // Methods
    static Create(url?: string): IUrl 
    {
        return {
            Url: url ? url : "",

            Append(urlPart: string): IUrl
            {
                if(this.Url != "") this.Url += "/";
                this.Url += urlPart;
                return this;
            },

            AppendArgs(args: Object): IUrl
            {
                this.Url += "?" + HTMLPairsConvertor.ConvertObjToPairs(args);
                return this;
            }
        };
    }
}
