summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/request/node_modules/qs/lib/stringify.js
diff options
context:
space:
mode:
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.js52
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
));
}