https://github.com/hustcc/uri-parse
:link: Mini data-uri parser for nodejs and browser. No dependencies!
https://github.com/hustcc/uri-parse
data-uri uri uri-parse uri-parser url-parser
Last synced: about 1 month ago
JSON representation
:link: Mini data-uri parser for nodejs and browser. No dependencies!
- Host: GitHub
- URL: https://github.com/hustcc/uri-parse
- Owner: hustcc
- License: mit
- Created: 2017-11-14T03:40:43.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2020-06-13T07:44:47.000Z (almost 5 years ago)
- Last Synced: 2025-02-28T19:12:04.262Z (about 2 months ago)
- Topics: data-uri, uri, uri-parse, uri-parser, url-parser
- Language: JavaScript
- Homepage: https://git.hust.cc/uri-parse
- Size: 10.7 KB
- Stars: 10
- Watchers: 4
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# uri-parse
> Mini data-uri parser for nodejs and browser. No dependencies! 一个简单的无依赖 uri 解析库。
[](https://www.npmjs.com/package/uri-parse) [](https://travis-ci.org/hustcc/uri-parse) [](https://coveralls.io/github/hustcc/uri-parse) [](https://www.npmjs.com/package/uri-parse)
```
/*
* 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.
```js
import URI from 'uri-parse'; // ES6
var URI = require('uri-parse'); // ES5 with npm
```## 2. Usage
- `uri.all()`: parse uri information.
```js
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.
```js
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 inpm run test
```## License
MIT@[hustcc](https://github.com/hustcc).