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 / fromParamsToStringified.ts
Size: Mime:
import querystring from 'query-string'
import { cloneJSON } from 'chain-able-lego'
import { Params } from '../typings'
import { toStringy } from './toStringy'

export interface SemiSerialized {
  [key: string]: string
  [key: number]: string
}

export function stringifyProperties(params: any): SemiSerialized {
  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
}

// form data, url-encoded
export function stringifyParamsRecursively(params: any) {
  const stringified = stringifyProperties(params)
  // https://stackoverflow.com/a/49646940
  return querystring.stringify(stringified)
}

export function fromParamsToStringified(paramArg: Params = undefined): string {
  const cloned = cloneJSON(paramArg)
  const stringified = stringifyParamsRecursively(cloned)
  return stringified
}