diff --git a/lib/utils.js b/lib/utils.js index 06cae2f0..8775a327 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -34,7 +34,7 @@ var compactQueue = function compactQueue(queue) { return obj; }; -exports.arrayToObject = function arrayToObject(source, options) { +var arrayToObject = function arrayToObject(source, options) { var obj = options && options.plainObjects ? Object.create(null) : {}; for (var i = 0; i < source.length; ++i) { if (typeof source[i] !== 'undefined') { @@ -45,7 +45,7 @@ exports.arrayToObject = function arrayToObject(source, options) { return obj; }; -exports.merge = function merge(target, source, options) { +var merge = function merge(target, source, options) { if (!source) { return target; } @@ -70,14 +70,14 @@ exports.merge = function merge(target, source, options) { var mergeTarget = target; if (Array.isArray(target) && !Array.isArray(source)) { - mergeTarget = exports.arrayToObject(target, options); + mergeTarget = arrayToObject(target, options); } if (Array.isArray(target) && Array.isArray(source)) { source.forEach(function (item, i) { if (has.call(target, i)) { if (target[i] && typeof target[i] === 'object') { - target[i] = exports.merge(target[i], item, options); + target[i] = merge(target[i], item, options); } else { target.push(item); } @@ -92,7 +92,7 @@ exports.merge = function merge(target, source, options) { var value = source[key]; if (has.call(acc, key)) { - acc[key] = exports.merge(acc[key], value, options); + acc[key] = merge(acc[key], value, options); } else { acc[key] = value; } @@ -100,14 +100,14 @@ exports.merge = function merge(target, source, options) { }, mergeTarget); }; -exports.assign = function assignSingleSource(target, source) { +var assign = function assignSingleSource(target, source) { return Object.keys(source).reduce(function (acc, key) { acc[key] = source[key]; return acc; }, target); }; -exports.decode = function (str) { +var decode = function (str) { try { return decodeURIComponent(str.replace(/\+/g, ' ')); } catch (e) { @@ -115,7 +115,7 @@ exports.decode = function (str) { } }; -exports.encode = function encode(str) { +var encode = function encode(str) { // This code was originally written by Brian White (mscdex) for the io.js core querystring library. // It has been adapted here for stricter adherence to RFC 3986 if (str.length === 0) { @@ -167,7 +167,7 @@ exports.encode = function encode(str) { return out; }; -exports.compact = function compact(value) { +var compact = function compact(value) { var queue = [{ obj: { o: value }, prop: 'o' }]; var refs = []; @@ -189,14 +189,25 @@ exports.compact = function compact(value) { return compactQueue(queue); }; -exports.isRegExp = function isRegExp(obj) { +var isRegExp = function isRegExp(obj) { return Object.prototype.toString.call(obj) === '[object RegExp]'; }; -exports.isBuffer = function isBuffer(obj) { +var isBuffer = function isBuffer(obj) { if (obj === null || typeof obj === 'undefined') { return false; } return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); }; + +module.exports = { + arrayToObject: arrayToObject, + assign: assign, + compact: compact, + decode: decode, + encode: encode, + isBuffer: isBuffer, + isRegExp: isRegExp, + merge: merge +};