uri-parse

1.0.0 • Public • Published

uri-parse

Mini data-uri parser for nodejs and browser. No dependencies! 一个简单的无依赖 uri 解析库。

Ver Build Status Coverage Status npm download

/*
 * parse url like this
 *
 * schema://username:password@host:port/path?key=value#fragment;key=value
 * \____/   \______/ \______/ \__/ \__/ \__/ \_______/ \______/ \______/
 *   |         |        |       |    |    |      |         |       |
 * schema      |     password   |   port  |    query    fragment   |
 *          username          host      path                     extension
 *
 * note:
 *   - username, password, port, path, query, fragment, extension is optional.
 *   - scheme, host must be setting.
 *   - username and password must be paired.
 */

1. Install

npm i --save uri-parse

Then import it.

import URI from 'uri-parse'; // ES6
var URI = require('uri-parse'); // ES5 with npm

2. Usage

  • uri.all(): parse uri information.
import URI from 'uri-parse';
 
const u = 'scheme://username:password@host:port/path?name=hustcc#fragment;ext=hello';
 
const uri = new URI(u);
 
const { schema, username, password, host, port, path, query, fragment, extension } = uri.all();
 
/*
{
  schema: 'scheme',
  username: 'username',
  password: 'password',
  host: 'host',
  port: 'port',
  path: 'path',
  query: {
    name: 'hustcc'
  },
  fragment: 'fragment',
  extension: {
    ext: 'hello'
  }
}
*/
 
// or get the properties of the instance.
const schema = url.schema;
  • uri.toURI(): modify and generate uri string.
import URI from 'uri-parse';
 
const u = 'https://atool.vip/path?name=hustcc#fragment;ext=hello';
 
const uri = new URI(u);
 
// also you can update the uri.
uri.query = {
  ...uri.query,
  p: 'testQuery', // add a query parameter.
};
 
// get the new url
const uriString = uri.toURI();
// got 'https://atool.vip/path?name=hustcc&p=testQuery#fragment;ext=hello';

3. Test & Perf

npm i

npm run test

License

MIT@hustcc.

Package Sidebar

Install

npm i uri-parse

Weekly Downloads

329

Version

1.0.0

License

MIT

Unpacked Size

8.35 kB

Total Files

4

Last publish

Collaborators

  • atool