Newer
Older
CVSS_3.0_GUI / dist / CVSS_3.0_Calc-1.0.0-linux-x64 / node_modules / nwjs-builder-phoenix / node_modules / request / node_modules / json-stringify-safe / stringify.js
root on 7 May 2019 907 bytes Initial commit
  1. exports = module.exports = stringify
  2. exports.getSerialize = serializer
  3.  
  4. function stringify(obj, replacer, spaces, cycleReplacer) {
  5. return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces)
  6. }
  7.  
  8. function serializer(replacer, cycleReplacer) {
  9. var stack = [], keys = []
  10.  
  11. if (cycleReplacer == null) cycleReplacer = function(key, value) {
  12. if (stack[0] === value) return "[Circular ~]"
  13. return "[Circular ~." + keys.slice(0, stack.indexOf(value)).join(".") + "]"
  14. }
  15.  
  16. return function(key, value) {
  17. if (stack.length > 0) {
  18. var thisPos = stack.indexOf(this)
  19. ~thisPos ? stack.splice(thisPos + 1) : stack.push(this)
  20. ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key)
  21. if (~stack.indexOf(value)) value = cycleReplacer.call(this, key, value)
  22. }
  23. else stack.push(value)
  24.  
  25. return replacer == null ? value : replacer.call(this, key, value)
  26. }
  27. }
Buy Me A Coffee