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":"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","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"}