diff options
Diffstat (limited to 'deps/npm/node_modules/request/node_modules/qs/lib/stringify.js')
-rw-r--r--[-rwxr-xr-x] | deps/npm/node_modules/request/node_modules/qs/lib/stringify.js | 52 |
1 files changed, 36 insertions, 16 deletions
diff --git a/deps/npm/node_modules/request/node_modules/qs/lib/stringify.js b/deps/npm/node_modules/request/node_modules/qs/lib/stringify.js index 88cd791064..7694988c09 100755..100644 --- a/deps/npm/node_modules/request/node_modules/qs/lib/stringify.js +++ b/deps/npm/node_modules/request/node_modules/qs/lib/stringify.js @@ -4,13 +4,13 @@ var utils = require('./utils'); var formats = require('./formats'); var arrayPrefixGenerators = { - brackets: function brackets(prefix) { + brackets: function brackets(prefix) { // eslint-disable-line func-name-matching return prefix + '[]'; }, - indices: function indices(prefix, key) { + indices: function indices(prefix, key) { // eslint-disable-line func-name-matching return prefix + '[' + key + ']'; }, - repeat: function repeat(prefix) { + repeat: function repeat(prefix) { // eslint-disable-line func-name-matching return prefix; } }; @@ -21,14 +21,28 @@ var defaults = { delimiter: '&', encode: true, encoder: utils.encode, - serializeDate: function serializeDate(date) { + encodeValuesOnly: false, + serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching return toISO.call(date); }, skipNulls: false, strictNullHandling: false }; -var stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter) { +var stringify = function stringify( // eslint-disable-line func-name-matching + object, + prefix, + generateArrayPrefix, + strictNullHandling, + skipNulls, + encoder, + filter, + sort, + allowDots, + serializeDate, + formatter, + encodeValuesOnly +) { var obj = object; if (typeof filter === 'function') { obj = filter(prefix, obj); @@ -36,7 +50,7 @@ var stringify = function stringify(object, prefix, generateArrayPrefix, strictNu obj = serializeDate(obj); } else if (obj === null) { if (strictNullHandling) { - return encoder ? encoder(prefix) : prefix; + return encoder && !encodeValuesOnly ? encoder(prefix) : prefix; } obj = ''; @@ -44,7 +58,8 @@ var stringify = function stringify(object, prefix, generateArrayPrefix, strictNu if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) { if (encoder) { - return [formatter(encoder(prefix)) + '=' + formatter(encoder(obj))]; + var keyValue = encodeValuesOnly ? prefix : encoder(prefix); + return [formatter(keyValue) + '=' + formatter(encoder(obj))]; } return [formatter(prefix) + '=' + formatter(String(obj))]; } @@ -82,7 +97,8 @@ var stringify = function stringify(object, prefix, generateArrayPrefix, strictNu sort, allowDots, serializeDate, - formatter + formatter, + encodeValuesOnly )); } else { values = values.concat(stringify( @@ -96,7 +112,8 @@ var stringify = function stringify(object, prefix, generateArrayPrefix, strictNu sort, allowDots, serializeDate, - formatter + formatter, + encodeValuesOnly )); } } @@ -107,14 +124,20 @@ var stringify = function stringify(object, prefix, generateArrayPrefix, strictNu module.exports = function (object, opts) { var obj = object; var options = opts || {}; + + if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') { + throw new TypeError('Encoder has to be a function.'); + } + var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter; var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling; var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls; var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode; - var encoder = encode ? (typeof options.encoder === 'function' ? options.encoder : defaults.encoder) : null; + var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder; var sort = typeof options.sort === 'function' ? options.sort : null; var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots; var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate; + var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly; if (typeof options.format === 'undefined') { options.format = formats.default; } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) { @@ -124,10 +147,6 @@ module.exports = function (object, opts) { var objKeys; var filter; - if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') { - throw new TypeError('Encoder has to be a function.'); - } - if (typeof options.filter === 'function') { filter = options.filter; obj = filter('', obj); @@ -174,12 +193,13 @@ module.exports = function (object, opts) { generateArrayPrefix, strictNullHandling, skipNulls, - encoder, + encode ? encoder : null, filter, sort, allowDots, serializeDate, - formatter + formatter, + encodeValuesOnly )); } |