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

edward-hsu-1994/uriBuilder

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://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());

About

URI parser and builder

Resources

License

Stars

Watchers

Forks

Packages

No packages published