Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/request / src / deps / queryStringify.ts
Size: Mime:
import { toStringy } from './toStringy'
import querystring from 'query-string'

// 0
// replace all objects stringified
// Object.keys(params).forEach(key => {
//   const param = params[key]
//   if (isObj(param)) {
//     params[key] = querystring.stringify(param)
//   }
// })
// 1
// recurse(params).forEach((value, path, thisArg) => {
//   if (isPrimitive(value)) {
//     // dot.set(stringified, path, stringified)
//   }
//   else {
//   }
// })
// const encoded = encodeURIComponent(stringified)

function stringifyProperties(params: Object): Object {
  // const param = params[key]
  const stringified = {}
  // const stringParams = JSON.stringify(params)

  // const searchParams = new URLSearchParams('')
  // searchParams.set('item', stringParams)

  Object.keys(params).forEach(key => {
    const value = params[key]
    const stringifiedValue = toStringy(value)
    // searchParams.set(key, stringifiedValue)
    stringified[key] = stringifiedValue
  })

  return stringified
}

// 3
// form data, url-encoded
function stringifyParamsRecursively(params) {
  const stringified = stringifyProperties(params)

  // return querystring.stringify(stringified).replace(/\%22/gmi)
  return querystring.stringify(stringified)
  // return querystring.stringify(stringified)
  // return JSON.stringify(stringified)

  // 4
  // better, but only browser - @todo polyfil
  // return searchParams
}

export { stringifyProperties, stringifyParamsRecursively }
export default stringifyParamsRecursively