This module helps to encode different URL components and expose utility methods to percent-encode a given string using an EncodeSet.
Examples
const encoder = require('postman-url-encoder/encoder')
// returns 'xn--48jwgn17gdel797d.com'
encoder.encodeHost('郵便屋さん.com')
Using EncodeSet
var EncodeSet = require('postman-url-encoder/encoder').EncodeSet
var fragmentEncodeSet = new EncodeSet([' ', '"', '<', '>', '`'])
// returns false
fragmentEncodeSet.has('['.charCodeAt(0))
// returns true
fragmentEncodeSet.has('<'.charCodeAt(0))
Members
(static) EncodeSet :EncodeSet
Type:
- Source:
Methods
(inner) encodeFragment(fragment) → {String}
Encodes URL fragment identifier or hash.
Parameters:
Name | Type | Description |
---|---|---|
fragment |
String | Hash or fragment identifier to encode |
- Source:
Returns:
Percent-encoded fragment
- Type
- String
Example
// returns 'fragment#%20%22%3C%3E%60'
encodeHash('fragment# "<>`')
(inner) encodeHost(hostName) → {String}
Returns the Punycode ASCII serialization of the domain.
Parameters:
Name | Type | Description |
---|---|---|
hostName |
String | Array.<String> | host or domain name |
- Source:
Returns:
Punycode-encoded hostname
- Type
- String
Example
// returns 'xn--fiq228c.com'
encodeHost('中文.com')
// returns 'xn--48jwgn17gdel797d.com'
encodeHost(['郵便屋さん', 'com'])
// returns '127.0.0.1'
encodeHost('127.1')
// returns 'xn--iñvalid.com'
encodeHost('xn--iñvalid.com')
(inner) encodePath(path) → {String}
Encodes URL path or individual path segments.
Parameters:
Name | Type | Description |
---|---|---|
path |
String | Array.<String> | Path or path segments |
- Source:
Returns:
Percent-encoded path
- Type
- String
Example
// returns 'foo/bar&baz'
encodePath('foo/bar&baz')
// returns 'foo/bar/%20%22%3C%3E%60%23%3F%7B%7D'
encodePath(['foo', 'bar', ' "<>\`#?{}'])
(inner) encodeQueryParam(param) → {String}
Encodes single query parameter and returns as a string.
Parameters:
Name | Type | Description |
---|---|---|
param |
Object | String | Query param to encode |
- Source:
Returns:
Percent-encoded query param
- Type
- String
Example
// returns 'param%20%22%23%27%3C%3E'
encodeQueryParam('param "#\'<>')
// returns 'foo=bar'
encodeQueryParam({ key: 'foo', value: 'bar' })
(inner) encodeQueryParams(params) → {String}
Encodes list of query parameters and returns encoded query string.
Parameters:
Name | Type | Description |
---|---|---|
params |
Object | Array.<Object> | Query params to encode |
- Source:
Returns:
Percent-encoded query string
- Type
- String
Example
// returns 'foo=bar&=foo%26bar'
encodeQueryParams([{ key: 'foo', value: 'bar' }, { value: 'foo&bar' }])
// returns 'q1=foo&q2=bar&q2=baz'
encodeQueryParams({ q1: 'foo', q2: ['bar', 'baz'] })
(inner) encodeUserInfo(param) → {String}
Encodes URL userinfo (username / password) fields.
Parameters:
Name | Type | Description |
---|---|---|
param |
String | Parameter to encode |
- Source:
Returns:
Percent-encoded parameter
- Type
- String
Example
// returns 'info~%20%22%3C%3E%60%23%3F%7B%7D%2F%3A%3B%3D%40%5B%5C%5D%5E%7C'
encodeAuth('info~ "<>`#?{}/:;=@[\\]^|')
(inner) percentEncode(value, encodeSetopt) → {String}
Percent-encode the given string with the given EncodeSet.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
value |
String | String to percent-encode |
||
encodeSet |
EncodeSet |
<optional> |
C0_CONTROL_ENCODE_SET | EncodeSet to use for encoding |
- Source:
Returns:
Percent-encoded string
- Type
- String
Examples
Defaults to C0_CONTROL_ENCODE_SET
// returns 'foo %00 bar'
percentEncode('foo \u0000 bar')
Encode literal @ using custom EncodeSet
// returns 'foo%40bar'
percentEncode('foo@bar', new EncodeSet(['@']))
(inner) percentEncodeCharCode(code) → {String}
Percent encode a character with given code.
Parameters:
Name | Type | Description |
---|---|---|
code |
Number | Character code |
- Source:
Returns:
Percent-encoded character
- Type
- String
Example
// returns '%20'
percentEncodeCharCode(32)