Skip to content
This repository has been archived by the owner on Dec 21, 2020. It is now read-only.

edward-hsu-1994/uriBuilder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

uriBuilder

npm version Build Status Downloads license

URI parser and builder

Install

npm install uribuilder

Getting Started

// import module
import { UriBuilder } from 'uribuilder';

const testURI = 'https://www.google.com/search?q=wiki';

// Create Builder from current URI
const builder = UriBuilder.parse(testURI);

// Set Query Param
builder.query.q = 'newKeyword';

// Log builder result, result: 'https://www.google.com/search?q=newKeyword'
console.log(builder.toString());

// Set Fragment
builder.fragment = 'hash';

// Log builder result, result: 'https://www.google.com/search?q=newKeyword#hash'
console.log(builder.toString());

// Delete Query Param
delete builder.query.q;

// Log builder result, result: 'https://www.google.com/search#hash'
console.log(builder.toString());

// Update input URI Query
const updatedURI = UriBuilder.updateQuery(testURI, {
  q: 'test',
  hw: ['a', 'b'] //Query Param: Array
});

// Log updated URI, result: 'https://www.google.com/search?q=test&hw=a&hw=b'
console.log(updatedURI);

// Create UriBuilder
const emptyBuilder = new UriBuilder();
emptyBuilder.schema = 'http';
emptyBuilder.host = 'example';
emptyBuilder.setPath('/home/index');
emptyBuilder.fragment = 'top';
emptyBuilder.setAuthority('guest');
emptyBuilder.query.action = 'back';
emptyBuilder.query.chinese = '中文';

// Log builder result, result: http:https://guest@example/home/index?action=back&chinese=%E4%B8%AD%E6%96%87#top
console.log(emptyBuilder.toString());

// Relative path
const relativeBuilder = UriBuilder.parse('./home/exam?id=0');
relativeBuilder.query.id = 1;
// Log builder result, result: ./home/exam?id=1
console.assert(relativeBuilder.toString());