Uniform Resource Identifier Builder
JavaScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
LICENSE
index.js
package.json
readme.md
scheme.js

readme.md

SCHEME.js

Rick Ross - Stay Schemin

Installation

npm install scheme

Synopsys

This was created originally to help construct request URI's, by building each part of the URI separately I could easily have variables in the URI. This helps for oAuth.

Build from object / json

var build = scheme.build({
    scheme: 'http',
    host: 'localhost',
    port: '3000',
    path: [ 'application', 'login' ],
    query: { user: 'github' }
});
console.log(build);

Return

http://localhost:3000/application/login?user=github

Synonyms

I realize that a lot of people (including myself) struggle with the names of each piece of a URI, knowing this, I made multiple things map to the same, using synonyms.

["url","uri"],
["scheme","protocol"],
["username","user"],
["password","pass"],
["domain","host","domains","hostname"],
["port"],
["path","pathname","paths","pathnames"],
["query","parameters","queries","search"],
["hash","fragment","anchor"]

These only work for the input object, the output object is bound by the parse_url function from php.js.

["scheme","host","user","pass","path","query","fragment"]

Build from string

var build = scheme.build("http://localhost:3000/application/login?user=github");
console.log(build);	

Return

{
  scheme: 'http',
  host: 'localhost',
  port: '3000',
  path: [
    'application',
    'login'
  ],
  query: {
    user: 'github'
  }
}

Nesting

var build = scheme.build({
    "scheme": "https://",
    "domain": "domain.com",
    "path": "/login",
    "query":{
        "user":"thomasreggi",
        "from":scheme.build({
            "scheme": "https://",
            "domain": "redirect.com",
            "path": "/funstuff",
        }),
    }
});
console.log(build);

Return

https://domain.com/login?user=thomasreggi&from=https%3A%2F%2Fredirect.com%2Ffunstuff

Origin