153dabe496417ddb2efc4204fbf97e44.json
18.8 KB
{"ast":null,"code":"'use strict';\n\nvar utils = require('./utils');\n\nvar formats = require('./formats');\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n // eslint-disable-line func-name-matching\n return prefix + '[]';\n },\n indices: function indices(prefix, key) {\n // eslint-disable-line func-name-matching\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n // eslint-disable-line func-name-matching\n return prefix;\n }\n};\nvar toISO = Date.prototype.toISOString;\nvar defaults = {\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n serializeDate: function serializeDate(date) {\n // eslint-disable-line func-name-matching\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar stringify = function stringify( // eslint-disable-line func-name-matching\nobject, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly) {\n var obj = object;\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix;\n }\n\n obj = '';\n }\n\n if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))];\n }\n\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n\n if (Array.isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n if (Array.isArray(obj)) {\n values = values.concat(stringify(obj[key], generateArrayPrefix(prefix, key), generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly));\n } else {\n values = values.concat(stringify(obj[key], prefix + (allowDots ? '.' + key : '[' + key + ']'), generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly));\n }\n }\n\n return values;\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;\n var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;\n var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;\n var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder;\n var sort = typeof options.sort === 'function' ? options.sort : null;\n var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;\n var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate;\n var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly;\n\n if (typeof options.format === 'undefined') {\n options.format = formats['default'];\n } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n\n var formatter = formats.formatters[options.format];\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (Array.isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n\n if (options.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = options.arrayFormat;\n } else if ('indices' in options) {\n arrayFormat = options.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (sort) {\n objKeys.sort(sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n keys = keys.concat(stringify(obj[key], key, generateArrayPrefix, strictNullHandling, skipNulls, encode ? encoder : null, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly));\n }\n\n var joined = keys.join(delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n return joined.length > 0 ? prefix + joined : '';\n};","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/qs/lib/stringify.js"],"names":["utils","require","formats","arrayPrefixGenerators","brackets","prefix","indices","key","repeat","toISO","Date","prototype","toISOString","defaults","delimiter","encode","encoder","encodeValuesOnly","serializeDate","date","call","skipNulls","strictNullHandling","stringify","object","generateArrayPrefix","filter","sort","allowDots","formatter","obj","isBuffer","keyValue","String","values","objKeys","Array","isArray","keys","Object","i","length","concat","module","exports","opts","options","assign","undefined","TypeError","format","hasOwnProperty","formatters","arrayFormat","joined","join","addQueryPrefix"],"mappings":"AAAA;;AAEA,IAAIA,KAAK,GAAGC,OAAO,CAAC,SAAD,CAAnB;;AACA,IAAIC,OAAO,GAAGD,OAAO,CAAC,WAAD,CAArB;;AAEA,IAAIE,qBAAqB,GAAG;AACxBC,EAAAA,QAAQ,EAAE,SAASA,QAAT,CAAkBC,MAAlB,EAA0B;AAAE;AAClC,WAAOA,MAAM,GAAG,IAAhB;AACH,GAHuB;AAIxBC,EAAAA,OAAO,EAAE,SAASA,OAAT,CAAiBD,MAAjB,EAAyBE,GAAzB,EAA8B;AAAE;AACrC,WAAOF,MAAM,GAAG,GAAT,GAAeE,GAAf,GAAqB,GAA5B;AACH,GANuB;AAOxBC,EAAAA,MAAM,EAAE,SAASA,MAAT,CAAgBH,MAAhB,EAAwB;AAAE;AAC9B,WAAOA,MAAP;AACH;AATuB,CAA5B;AAYA,IAAII,KAAK,GAAGC,IAAI,CAACC,SAAL,CAAeC,WAA3B;AAEA,IAAIC,QAAQ,GAAG;AACXC,EAAAA,SAAS,EAAE,GADA;AAEXC,EAAAA,MAAM,EAAE,IAFG;AAGXC,EAAAA,OAAO,EAAEhB,KAAK,CAACe,MAHJ;AAIXE,EAAAA,gBAAgB,EAAE,KAJP;AAKXC,EAAAA,aAAa,EAAE,SAASA,aAAT,CAAuBC,IAAvB,EAA6B;AAAE;AAC1C,WAAOV,KAAK,CAACW,IAAN,CAAWD,IAAX,CAAP;AACH,GAPU;AAQXE,EAAAA,SAAS,EAAE,KARA;AASXC,EAAAA,kBAAkB,EAAE;AATT,CAAf;;AAYA,IAAIC,SAAS,GAAG,SAASA,SAAT,EAAoB;AAChCC,MADY,EAEZnB,MAFY,EAGZoB,mBAHY,EAIZH,kBAJY,EAKZD,SALY,EAMZL,OANY,EAOZU,MAPY,EAQZC,IARY,EASZC,SATY,EAUZV,aAVY,EAWZW,SAXY,EAYZZ,gBAZY,EAad;AACE,MAAIa,GAAG,GAAGN,MAAV;;AACA,MAAI,OAAOE,MAAP,KAAkB,UAAtB,EAAkC;AAC9BI,IAAAA,GAAG,GAAGJ,MAAM,CAACrB,MAAD,EAASyB,GAAT,CAAZ;AACH,GAFD,MAEO,IAAIA,GAAG,YAAYpB,IAAnB,EAAyB;AAC5BoB,IAAAA,GAAG,GAAGZ,aAAa,CAACY,GAAD,CAAnB;AACH,GAFM,MAEA,IAAIA,GAAG,KAAK,IAAZ,EAAkB;AACrB,QAAIR,kBAAJ,EAAwB;AACpB,aAAON,OAAO,IAAI,CAACC,gBAAZ,GAA+BD,OAAO,CAACX,MAAD,EAASQ,QAAQ,CAACG,OAAlB,CAAtC,GAAmEX,MAA1E;AACH;;AAEDyB,IAAAA,GAAG,GAAG,EAAN;AACH;;AAED,MAAI,OAAOA,GAAP,KAAe,QAAf,IAA2B,OAAOA,GAAP,KAAe,QAA1C,IAAsD,OAAOA,GAAP,KAAe,SAArE,IAAkF9B,KAAK,CAAC+B,QAAN,CAAeD,GAAf,CAAtF,EAA2G;AACvG,QAAId,OAAJ,EAAa;AACT,UAAIgB,QAAQ,GAAGf,gBAAgB,GAAGZ,MAAH,GAAYW,OAAO,CAACX,MAAD,EAASQ,QAAQ,CAACG,OAAlB,CAAlD;AACA,aAAO,CAACa,SAAS,CAACG,QAAD,CAAT,GAAsB,GAAtB,GAA4BH,SAAS,CAACb,OAAO,CAACc,GAAD,EAAMjB,QAAQ,CAACG,OAAf,CAAR,CAAtC,CAAP;AACH;;AACD,WAAO,CAACa,SAAS,CAACxB,MAAD,CAAT,GAAoB,GAApB,GAA0BwB,SAAS,CAACI,MAAM,CAACH,GAAD,CAAP,CAApC,CAAP;AACH;;AAED,MAAII,MAAM,GAAG,EAAb;;AAEA,MAAI,OAAOJ,GAAP,KAAe,WAAnB,EAAgC;AAC5B,WAAOI,MAAP;AACH;;AAED,MAAIC,OAAJ;;AACA,MAAIC,KAAK,CAACC,OAAN,CAAcX,MAAd,CAAJ,EAA2B;AACvBS,IAAAA,OAAO,GAAGT,MAAV;AACH,GAFD,MAEO;AACH,QAAIY,IAAI,GAAGC,MAAM,CAACD,IAAP,CAAYR,GAAZ,CAAX;AACAK,IAAAA,OAAO,GAAGR,IAAI,GAAGW,IAAI,CAACX,IAAL,CAAUA,IAAV,CAAH,GAAqBW,IAAnC;AACH;;AAED,OAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGL,OAAO,CAACM,MAA5B,EAAoC,EAAED,CAAtC,EAAyC;AACrC,QAAIjC,GAAG,GAAG4B,OAAO,CAACK,CAAD,CAAjB;;AAEA,QAAInB,SAAS,IAAIS,GAAG,CAACvB,GAAD,CAAH,KAAa,IAA9B,EAAoC;AAChC;AACH;;AAED,QAAI6B,KAAK,CAACC,OAAN,CAAcP,GAAd,CAAJ,EAAwB;AACpBI,MAAAA,MAAM,GAAGA,MAAM,CAACQ,MAAP,CAAcnB,SAAS,CAC5BO,GAAG,CAACvB,GAAD,CADyB,EAE5BkB,mBAAmB,CAACpB,MAAD,EAASE,GAAT,CAFS,EAG5BkB,mBAH4B,EAI5BH,kBAJ4B,EAK5BD,SAL4B,EAM5BL,OAN4B,EAO5BU,MAP4B,EAQ5BC,IAR4B,EAS5BC,SAT4B,EAU5BV,aAV4B,EAW5BW,SAX4B,EAY5BZ,gBAZ4B,CAAvB,CAAT;AAcH,KAfD,MAeO;AACHiB,MAAAA,MAAM,GAAGA,MAAM,CAACQ,MAAP,CAAcnB,SAAS,CAC5BO,GAAG,CAACvB,GAAD,CADyB,EAE5BF,MAAM,IAAIuB,SAAS,GAAG,MAAMrB,GAAT,GAAe,MAAMA,GAAN,GAAY,GAAxC,CAFsB,EAG5BkB,mBAH4B,EAI5BH,kBAJ4B,EAK5BD,SAL4B,EAM5BL,OAN4B,EAO5BU,MAP4B,EAQ5BC,IAR4B,EAS5BC,SAT4B,EAU5BV,aAV4B,EAW5BW,SAX4B,EAY5BZ,gBAZ4B,CAAvB,CAAT;AAcH;AACJ;;AAED,SAAOiB,MAAP;AACH,CA1FD;;AA4FAS,MAAM,CAACC,OAAP,GAAiB,UAAUpB,MAAV,EAAkBqB,IAAlB,EAAwB;AACrC,MAAIf,GAAG,GAAGN,MAAV;AACA,MAAIsB,OAAO,GAAGD,IAAI,GAAG7C,KAAK,CAAC+C,MAAN,CAAa,EAAb,EAAiBF,IAAjB,CAAH,GAA4B,EAA9C;;AAEA,MAAIC,OAAO,CAAC9B,OAAR,KAAoB,IAApB,IAA4B8B,OAAO,CAAC9B,OAAR,KAAoBgC,SAAhD,IAA6D,OAAOF,OAAO,CAAC9B,OAAf,KAA2B,UAA5F,EAAwG;AACpG,UAAM,IAAIiC,SAAJ,CAAc,+BAAd,CAAN;AACH;;AAED,MAAInC,SAAS,GAAG,OAAOgC,OAAO,CAAChC,SAAf,KAA6B,WAA7B,GAA2CD,QAAQ,CAACC,SAApD,GAAgEgC,OAAO,CAAChC,SAAxF;AACA,MAAIQ,kBAAkB,GAAG,OAAOwB,OAAO,CAACxB,kBAAf,KAAsC,SAAtC,GAAkDwB,OAAO,CAACxB,kBAA1D,GAA+ET,QAAQ,CAACS,kBAAjH;AACA,MAAID,SAAS,GAAG,OAAOyB,OAAO,CAACzB,SAAf,KAA6B,SAA7B,GAAyCyB,OAAO,CAACzB,SAAjD,GAA6DR,QAAQ,CAACQ,SAAtF;AACA,MAAIN,MAAM,GAAG,OAAO+B,OAAO,CAAC/B,MAAf,KAA0B,SAA1B,GAAsC+B,OAAO,CAAC/B,MAA9C,GAAuDF,QAAQ,CAACE,MAA7E;AACA,MAAIC,OAAO,GAAG,OAAO8B,OAAO,CAAC9B,OAAf,KAA2B,UAA3B,GAAwC8B,OAAO,CAAC9B,OAAhD,GAA0DH,QAAQ,CAACG,OAAjF;AACA,MAAIW,IAAI,GAAG,OAAOmB,OAAO,CAACnB,IAAf,KAAwB,UAAxB,GAAqCmB,OAAO,CAACnB,IAA7C,GAAoD,IAA/D;AACA,MAAIC,SAAS,GAAG,OAAOkB,OAAO,CAAClB,SAAf,KAA6B,WAA7B,GAA2C,KAA3C,GAAmDkB,OAAO,CAAClB,SAA3E;AACA,MAAIV,aAAa,GAAG,OAAO4B,OAAO,CAAC5B,aAAf,KAAiC,UAAjC,GAA8C4B,OAAO,CAAC5B,aAAtD,GAAsEL,QAAQ,CAACK,aAAnG;AACA,MAAID,gBAAgB,GAAG,OAAO6B,OAAO,CAAC7B,gBAAf,KAAoC,SAApC,GAAgD6B,OAAO,CAAC7B,gBAAxD,GAA2EJ,QAAQ,CAACI,gBAA3G;;AACA,MAAI,OAAO6B,OAAO,CAACI,MAAf,KAA0B,WAA9B,EAA2C;AACvCJ,IAAAA,OAAO,CAACI,MAAR,GAAiBhD,OAAO,CAAC,SAAD,CAAxB;AACH,GAFD,MAEO,IAAI,CAACqC,MAAM,CAAC5B,SAAP,CAAiBwC,cAAjB,CAAgC/B,IAAhC,CAAqClB,OAAO,CAACkD,UAA7C,EAAyDN,OAAO,CAACI,MAAjE,CAAL,EAA+E;AAClF,UAAM,IAAID,SAAJ,CAAc,iCAAd,CAAN;AACH;;AACD,MAAIpB,SAAS,GAAG3B,OAAO,CAACkD,UAAR,CAAmBN,OAAO,CAACI,MAA3B,CAAhB;AACA,MAAIf,OAAJ;AACA,MAAIT,MAAJ;;AAEA,MAAI,OAAOoB,OAAO,CAACpB,MAAf,KAA0B,UAA9B,EAA0C;AACtCA,IAAAA,MAAM,GAAGoB,OAAO,CAACpB,MAAjB;AACAI,IAAAA,GAAG,GAAGJ,MAAM,CAAC,EAAD,EAAKI,GAAL,CAAZ;AACH,GAHD,MAGO,IAAIM,KAAK,CAACC,OAAN,CAAcS,OAAO,CAACpB,MAAtB,CAAJ,EAAmC;AACtCA,IAAAA,MAAM,GAAGoB,OAAO,CAACpB,MAAjB;AACAS,IAAAA,OAAO,GAAGT,MAAV;AACH;;AAED,MAAIY,IAAI,GAAG,EAAX;;AAEA,MAAI,OAAOR,GAAP,KAAe,QAAf,IAA2BA,GAAG,KAAK,IAAvC,EAA6C;AACzC,WAAO,EAAP;AACH;;AAED,MAAIuB,WAAJ;;AACA,MAAIP,OAAO,CAACO,WAAR,IAAuBlD,qBAA3B,EAAkD;AAC9CkD,IAAAA,WAAW,GAAGP,OAAO,CAACO,WAAtB;AACH,GAFD,MAEO,IAAI,aAAaP,OAAjB,EAA0B;AAC7BO,IAAAA,WAAW,GAAGP,OAAO,CAACxC,OAAR,GAAkB,SAAlB,GAA8B,QAA5C;AACH,GAFM,MAEA;AACH+C,IAAAA,WAAW,GAAG,SAAd;AACH;;AAED,MAAI5B,mBAAmB,GAAGtB,qBAAqB,CAACkD,WAAD,CAA/C;;AAEA,MAAI,CAAClB,OAAL,EAAc;AACVA,IAAAA,OAAO,GAAGI,MAAM,CAACD,IAAP,CAAYR,GAAZ,CAAV;AACH;;AAED,MAAIH,IAAJ,EAAU;AACNQ,IAAAA,OAAO,CAACR,IAAR,CAAaA,IAAb;AACH;;AAED,OAAK,IAAIa,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGL,OAAO,CAACM,MAA5B,EAAoC,EAAED,CAAtC,EAAyC;AACrC,QAAIjC,GAAG,GAAG4B,OAAO,CAACK,CAAD,CAAjB;;AAEA,QAAInB,SAAS,IAAIS,GAAG,CAACvB,GAAD,CAAH,KAAa,IAA9B,EAAoC;AAChC;AACH;;AAED+B,IAAAA,IAAI,GAAGA,IAAI,CAACI,MAAL,CAAYnB,SAAS,CACxBO,GAAG,CAACvB,GAAD,CADqB,EAExBA,GAFwB,EAGxBkB,mBAHwB,EAIxBH,kBAJwB,EAKxBD,SALwB,EAMxBN,MAAM,GAAGC,OAAH,GAAa,IANK,EAOxBU,MAPwB,EAQxBC,IARwB,EASxBC,SATwB,EAUxBV,aAVwB,EAWxBW,SAXwB,EAYxBZ,gBAZwB,CAArB,CAAP;AAcH;;AAED,MAAIqC,MAAM,GAAGhB,IAAI,CAACiB,IAAL,CAAUzC,SAAV,CAAb;AACA,MAAIT,MAAM,GAAGyC,OAAO,CAACU,cAAR,KAA2B,IAA3B,GAAkC,GAAlC,GAAwC,EAArD;AAEA,SAAOF,MAAM,CAACb,MAAP,GAAgB,CAAhB,GAAoBpC,MAAM,GAAGiD,MAA7B,GAAsC,EAA7C;AACH,CAtFD","sourcesContent":["'use strict';\n\nvar utils = require('./utils');\nvar formats = require('./formats');\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) { // eslint-disable-line func-name-matching\n return prefix + '[]';\n },\n indices: function indices(prefix, key) { // eslint-disable-line func-name-matching\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) { // eslint-disable-line func-name-matching\n return prefix;\n }\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaults = {\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar stringify = function stringify( // eslint-disable-line func-name-matching\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n) {\n var obj = object;\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix;\n }\n\n obj = '';\n }\n\n if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (Array.isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n if (Array.isArray(obj)) {\n values = values.concat(stringify(\n obj[key],\n generateArrayPrefix(prefix, key),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n } else {\n values = values.concat(stringify(\n obj[key],\n prefix + (allowDots ? '.' + key : '[' + key + ']'),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n }\n\n return values;\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;\n var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;\n var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;\n var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder;\n var sort = typeof options.sort === 'function' ? options.sort : null;\n var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;\n var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate;\n var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly;\n if (typeof options.format === 'undefined') {\n options.format = formats['default'];\n } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n var formatter = formats.formatters[options.format];\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (Array.isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (options.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = options.arrayFormat;\n } else if ('indices' in options) {\n arrayFormat = options.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (sort) {\n objKeys.sort(sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n keys = keys.concat(stringify(\n obj[key],\n key,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encode ? encoder : null,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n\n var joined = keys.join(delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n return joined.length > 0 ? prefix + joined : '';\n};\n"]},"metadata":{},"sourceType":"script"}