postman-url-encoder/encoder

This module helps to encode different URL components and expose utility methods to percent-encode a given string using an EncodeSet.

Source:
See:
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)