urlapi
v1.0.4
Published
Url api for serialize from object to string and parse string to object
Readme
Urlapi
This module contains methods for working with url:
- serialize from object to string (
serialize({ })); - parse string to object (
parse(' ')).
Good abilities for working with queries and authentication in object types.
Installation
In your cmd/terminal
npm install urlapi
then add module to your project
var urlapi = require('urlapi');
or for ES2015 use
import * as urlapi from 'urlapi';
urlapi.serialize({ })
Takes object with next attributes and return string
protocol: protocol with or without colon-slash-slash, colon (example:http,http://,mailto:) -string;auth: authentication data (example:user:password,{ login: 'user', password: 'password'}) -string or object;host: hostname and port if exist (example:site_name.com:3333,site_name.com,localhost) -string;hostname: hostname (example:site_name.com) -string;port: port (example:3333) -string or number;path: full path with search and queries (with or without leading slash) (example:path/inner/page?ref=1&close=false) -string;pathname: path without search and queries (with or without leading slash) (example:path/inner/page) -string;search: part of path with leading question mark (with or without question mark) (example:?ref=1&close=false) -string;query: part of path with parameters (example:ref=1&close=false,{ref: '1', close: 'false'}) -string or object;hash: part of url with pound-sign (with or without pound-sign) (example:#g=where&a=find,{g: 'where', a: 'find'}) -string or object;
Additionaly:
- None attribute is required but add to object
protocolandhostis good idea. - If
hostexisthostnameandportwill not touch. - If
pathexistpathname,search,querywill not touch.
Example
import * as urlapi from 'urlapi';
let preparedObject = {
protocol: 'http',
auth: {
login : 'user',
password: 'password'
},
host: 'site_name.com:3333',
hostname: 'site_name.com',
port: 3333,
path: 'path/inner/page?ref=1&close=false',
pathname: 'path/inner/page',
search: '?ref=1&close=false',
query: {
ref: '1',
close: 'false'
},
hash: {
g: 'where',
a: 'find'
}
};
console.log(urlapi.serialize(preparedObject));
return -->
http://user:password@site_name.com:3333/path/inner/page?ref=1&close=false#g=where&a=findurlapi.parse(' ')
Takes string and return object
Additionaly:
- None attribute is required but add to object
protocolandhostis good idea.
Example
import * as urlapi from 'urlapi';
let stringParse = 'http://user:password@site_name.com:3333/path/inner/page?ref=1&close=false#g=where&a=find';
console.log(urlapi.parse(stringParse));
return -->
{
protocol: 'http',
auth: {
login : 'user',
password: 'password'
},
host: 'site_name.com:3333',
hostname: 'site_name.com',
port: 3333,
path: 'path/inner/page?ref=1&close=false',
pathname: 'path/inner/page',
search: '?ref=1&close=false',
query: {
ref: '1',
close: 'false'
},
hash: {
g: 'where',
a: 'find'
}
}Finally
You can find this documentation and a little bit more (example project with es2015 original code, tests and etc.) on GitHub.
